【原始碼解析】Launcher 8.0原始碼(3)---Launcher的啟動流程
上一篇我們講解了Launcher的基本知識點,本篇我們來學習一下Launcher的啟動流程
Launcher啟動流程分析
我們知道android系統是執行在Linux核心上,整個launcher的啟動流程如圖所示,接下來我們一步一步進行分析。

QQ圖片20181010223640.png
【init程序】
Linux核心啟動後巡行的第一個程序是init。這個程序是一個守護程序。生命週期貫穿整個Linux核心 執行的始終。
我們知道android系統是執行在Linux核心上的所以google實現了android系統的init程序。
init程序主要做了三件事:
- 建立一些資料夾並掛在裝置
- 初始化和啟動屬性服務
- 解析init.rc配置檔案並啟動zygote程序
【zygote孵化器】
建立JavaVm(java虛擬機器),應用程式程序,執行系統的關鍵服務,systemservice程序
它是通過fock(複製程序)的形式來建立應用程式和systemservice程序
sygote在啟動時會建立javaVm,所以fock建立的應用程序和systemserver程序內部可以獲取一個javaVm的例項拷貝。