在Android中的每一個App税产,都是獨(dú)立運(yùn)行在自己的進(jìn)程中的,Launcher是一個特殊的app,它主要作用是用來顯示widget和顯示已裝應(yīng)用的快捷圖標(biāo)到界面上辟拷。當(dāng)我們點(diǎn)擊Launcher上的快捷圖標(biāo)后撞羽,就能啟動app。
Image.jpg
1衫冻、Launcher 接收到點(diǎn)擊事件诀紊,獲取應(yīng)用的信息,向AMS發(fā)起啟動應(yīng)用的請求隅俘。
2邻奠、AMS請求 Launcher Pause (Launcher 需要保存狀態(tài)進(jìn)入后臺
3、Launcher Pause 为居, 向 AMS發(fā)送 Pause 完畢
4碌宴、AMS通過Socket向 Zygote 請求啟動一個新進(jìn)程(calculator)
5、Zygote fork 出新進(jìn)程 , 在新進(jìn)程中執(zhí)行 ActivityThread 類的 main 方法
6颜骤、應(yīng)用attach把本地binder傳給AMS
7唧喉、AMS bind調(diào)用應(yīng)用onCreate、