1、點擊桌面App圖標,Launcher進程采用Binder IPC向system_server進程發起startActivity請求;
2、system_server進程接收到請求后,向zygote進程發送創建進程的請求;
3、Zygote進程fork出新的子進程,即App進程;
4、App進程,通過Binder IPC向sytem_server進程發起attachApplication請求;
5、system_server進程在收到請求后,進行一系列准備工作后,再通過binder IPC向App進程發送scheduleLaunchActivity請求;
6、App進程的binder線程(ApplicationThread)在收到請求后,通過handler向主線程發送LAUNCH_ACTIVITY消息;
7、主線程在收到Message后,通過發射機制創建目標Activity,並回調Activity.onCreate()等方法。
到此,App便正式啟動,開始進入Activity生命周期,執行完onCreate/onStart/onResume方法