1. 程式人生 > >Android App啟動簡單流程

Android App啟動簡單流程

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/