Android 應用編程基礎

1.Android系統是一個多用戶的Linux系統,默認情況下,Android系統給每一個app分配一個唯一的用戶ID;每一個app運行在自己的linux進程中,每一個進程都有屬於自己的VM。

2.Android的兩個app可以分享相同的User ID。擁有相同User ID的app可以運行在同一個進程中並共享分一個VM(這兩個app必須擁有相同的簽名)。

3.Activity代表一個獨立的屏幕用於和用戶交互;Service運行在後臺,執行耗時操作或者執行其他進程的遠程調用請求;ContentProvider提供了進程間數據分享的功能;廣播接收器通過接受系統或者用戶自定義的廣播,告知用戶某事件的發生。可以在廣播接收器中啓動Service,從而在後臺默默的做事情。

4.Android app中包含的每一個資源,Android SDK tool都會爲之生成一個唯一的id,可以在xml文件和代碼中通過這個id引用這個資源文件。

5.在安裝apk的時候,Android系統爲每一個apk分配了一個唯一的User id(PackagerManagerService做的工作),通過配置xml中的sharedUserId,可以讓兩個apk運行在同一個進程中,這連個apk必須要有相同的簽名。

6.一個應用程序一般由多個Activity組成,其中有一個稱爲main Activity,作爲第一次啓動的時候呈現給用戶的界面。每次啓動新的Activity,系統都會將之壓入一個後臺stack(後進先出),然後獲得用戶焦點。當用戶按下後退按鍵的時候,從stack中取出這個Activity然後銷燬,然後取出之前的Activity予以顯示。

7.當Activity的狀態發生了變化,通過callback函數通知用戶。Resumed狀態表示Activity位於前臺,並且擁有用戶的焦點;Paused表示另一個Activity位於前臺,但是本Activity仍然有部分可見;這個時候Activity的對象還存活着,並且還持有和window manager的聯繫。Stopped表示Activity位於後臺,但是內存中還保留着Activity的內存,但是沒有持有和window manager的聯繫了。在內存緊張的時候可以殺掉PausedStopped狀態的Activity。

8.Android系統將執行一個相同任務而創建的Activity稱之爲一個task,一個task對應一組後臺Activity stack。可以在manifest文件中指定Activity的lunch方式,或者在發送intent的時候指定相應的flag。這兩種方式都會影響啓動的Activity和當前task的關係。參考:http://developer.android.com/guide/components/tasks-and-back-stack.html#ActivityState

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章