App安裝后粹排,在桌面(Launcher)會出現(xiàn)App的圖標,用戶點擊App圖標后涩澡,App的第一個Activity是如何啟動起來的呢顽耳。
簡明總結如下:
Launcher 點擊App圖標,Activity啟動流程:
①Launcher響應用戶點擊,通知AMS(ActivityManagerService)需要啟動Activity【Launcher通過ActivitiyManagerProxy與AMS通信】射富。
②AMS通知Launcher進入Pause狀態(tài)【AMS通過調用ApplicationThread對象的遠程接口Binder與Launcher通信】膝迎。
③Launcher完成掛起后通知AMS【Launcher的ActivityThread處理頁面Paused,并再次通過ActivityManagerProxy與AMS通信】胰耗。
④AMS創(chuàng)建應用進程弄抬。【System進程通過fork創(chuàng)建應用進程宪郊,此進程會導入android.app.ActivityThread類,并執(zhí)行它的main函數(shù)拖陆,這也是每一個應用程序都有一個ActivityThread實例的原因】
⑤應用進程初始化完成后通知AMS【應用進程ApplicationThread類型的Binder對象與AMS通信的】弛槐。
⑥AMS完成Activity注冊并啟動Activity。
大家有什么看法依啰,歡迎留言討論乎串。