Android系統啓動總結

Android系統啓動總結

  • init進程

    android系統中用戶空間第一個進程。當我們按下電源鍵,系統啓動會加載引導程序,引導程序會把linux內核啓動起來,linux內核加載完成後,第一件事就是要啓動init進程。

    總結:init進程中主要做的幾件事:

    1. 創建和掛載啓動所需的文件目錄

    2. 初始化和啓動屬性服務

      (windows平臺上有一個註冊表管理器,其內容採用鍵值對的形式記錄用戶、軟件的使用信息,即使系統和軟件重啓,還能夠根據之前註冊表中的記錄,進行相應初始化工作。Android中也提供了類似機制,叫屬性服務)

    3. 啓動zygote進程

  • zygote進程

    android中的虛擬機:DVM、ART和應用程序以及系統的關鍵服務SystemServer進程都是由Zygote進程創建的。

    總結:zygote進程中主要做了幾件事:

    1. 創建Java虛擬機並註冊JNI方法
    2. 通過JNI調用ZygoteInit的main函數進入Zygote的Java框架層
    3. 創建socket服務端,等待AMS的請求來創建新的應用程序進程
    4. 啓動SystemServer進程
  • system_server進程

    主要用於創建系統服務,比如熟知的AMS、WMS和PMS等。

    總結

    1. 啓動Binder線程池,這樣就可以與其他進程進行通信

    2. 創建SystemServiceManager,對系統服務進行創建、啓動等管理

    3. 啓動各種系統服務

  • Launcher(桌面程序)

    這個應用程序用來展示、打開、卸載系統中已安裝的應用程序

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章