Android App啟動簡單流程
阿新 • • 發佈:2018-11-02
Launcher響應我們產生的點選事件後,實際上就是啟動一個新的Activity。
Launcher將會通過App的快捷方式(ShortcutInfo)得到應用的Intent,並通過這個Intent啟動應用的“MainActivity”,從而啟動應用。
Launcher通過Binder通知ActivityManagerService啟動Activity。
1. Launcher通過Binder建立Launcher所在程序與system_server程序(ActivityManagerService所在程序)的通訊,通知ActivityManagerService即將要啟動一個Activity
2. ActivityManagerService通過Binder讓Launcher進入pause狀態
3. Launcher進入pause狀態後,通過Binder告知ActivityManagerService,隨後ActivityManagerService建立一個程序(將要開啟的應用程序)並啟動ActivityThread(應用的UI執行緒)
4. ActivityThread通過Binder將ApplicationThread型別的Binder物件傳遞給ActivityManagerService,方便ActivityManagerService後續與其的通訊
5. 準備工作完成後,ActivityManagerService通知ActivityThread啟動Activity
6. ActivityThread排程執行Activity的生命週期方法,完成啟動Activity的工作
詳情傳送門:http://cheelok.com/aosp/54/