當前位置:首頁 » 安卓系統 » amsandroid

amsandroid

發布時間: 2023-01-26 23:50:48

㈠ Android應用程序啟動流程總結

AMS主要功能:
AMS是Android中最核心的服務,主要負責系統中四大組件的啟動、切換、調度及應用進程的管理和調度等工作。還負責啟動或殺死應用程序的進程。

WMS主要功能:
為所有窗口分配Surface。
管理Surface的顯示順序、尺寸、位置。
管理窗口動畫。
輸入系統相關:WMS是派發系統按鍵和觸摸消息的最佳人選,當接收到一個觸摸事件,它需要尋找一個最合適的窗口來處理消息。

PWS主要功能:
PMS 用來管理跟蹤所有應用APK,包括安裝,卸載,解析,控制許可權等。

SystemServer也是一個進程,包括AMS、PMS、WMS等等。

zygote意為「受精卵「。Android是基於Linux系統的,而在Linux中,所有的進程都是由init進程直接或者是間接fork出來的,zygote進程也不例外。

App進程是用戶點擊桌面icon時,通過Launcher進程請求SystemServer,再調用Zygote孵化的。

①點擊啟動一個App,Launcher進程採用Binder IPC向ActivityManagerService發起startActivity請求;

②ActivityManagerService接收到請求後,向zygote進程發送創建進程的請求;

③Zygote進程fork出新的子進程,即App進程;

④App進程通過Binder IPC向sytem_server進程發起綁定Application請求;

⑤system_server進程在收到請求後,進行一系列准備工作後,再通過binder IPC向App進程發送scheleLaunchActivity請求;

⑥App進程的binder線程(ApplicationThread)在收到請求後,通過handler向主線程發送LAUNCH_ACTIVITY消息;

⑦主線程在收到Message後,通過發射機制創建目標Activity,並回調Activity.onCreate()等方法。

⑧到此,App便正式啟動,開始進入Activity生命周期,執行完onCreate/onStart/onResume方法,UI渲染結束後便可以看到App的主界面。

備註:
Launcher,PMS,Zygote,App進程是三個獨立的進程,相互通信就需要使用進程間通信機制。與Zygote通信是使用的socket通信,Launcher,PMS,App進程間使用的是Binder機制。

熱點內容
電腦怎麼解壓文件步驟 發布:2025-09-16 18:32:10 瀏覽:388
編譯器默認構造函數內聯 發布:2025-09-16 18:30:40 瀏覽:258
密碼忘了怎麼改 發布:2025-09-16 18:29:54 瀏覽:158
金盾加密視頻版本識別 發布:2025-09-16 18:22:02 瀏覽:549
二手車寶馬320li17年有哪些配置 發布:2025-09-16 17:59:32 瀏覽:888
c語言n次方怎麼輸入 發布:2025-09-16 17:51:17 瀏覽:909
完美國際密碼在哪裡改 發布:2025-09-16 17:43:44 瀏覽:907
網盤解壓包怎麼打開 發布:2025-09-16 16:59:19 瀏覽:817
紅火腳本 發布:2025-09-16 16:53:21 瀏覽:989
centosphp56 發布:2025-09-16 16:52:24 瀏覽:256