當前位置:首頁 » 安卓系統 » 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機制。

熱點內容
mysql資料庫被鎖 發布:2025-07-14 03:08:22 瀏覽:588
問道ios腳本輔助 發布:2025-07-14 02:54:40 瀏覽:716
安全的linux 發布:2025-07-14 02:48:39 瀏覽:91
我的世界好的極限生存伺服器 發布:2025-07-14 02:34:59 瀏覽:997
c語言格式錯誤 發布:2025-07-14 02:34:51 瀏覽:529
xp系統清理緩存文件夾 發布:2025-07-14 02:29:09 瀏覽:871
編譯並運行以下程序的結果是 發布:2025-07-14 02:28:22 瀏覽:591
java的業務流程 發布:2025-07-14 02:25:23 瀏覽:352
linuxprocess 發布:2025-07-14 02:24:36 瀏覽:808
手機版伺服器生存有什麼好玩的服務 發布:2025-07-14 01:49:45 瀏覽:210