天天看點

Android 點選 App icon 發生了什麼?

  • ​​Gityuan – startActivity啟動過程分析​​
  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)在收到請求後,通過​

    ​handle​

    ​​ r向主線程發送​

    ​LAUNCH_ACTIVITY​

    ​消息;
  7. 主線程在收到​

    ​Message​

    ​​ 後,通過發射機制建立目标​

    ​Activity​

    ​​,并回調​

    ​Activity.onCreate()​

    ​ 等方法。

繼續閱讀