android 系統的開機啓動流程源碼解析(從linux 內核到android Launcher 啓動)

android 系統的啓動流程源碼解析

最近在看Android 源碼,在看Android 系統的啓動流程這部分,Android 的啓動大致可以分爲以下幾個部分,後續我也會對其中的幾個重要的部分單獨在幾篇文章裏面介紹。

android 系統的啓動流程主要有以下幾個重要的過程:
1.啓動電源以及系統啓動

當電源按下時,引導芯片代碼從預定義的地方開始執行,加載引導程序BootLoader 到RAM 中,然後執行

2. 引導程序bootLoader

引導程序BootLoader 是在Android 系統中運行的第一個程序,相當於Windows 的BIOS,它主要作用是把系統拉起來並運行。當 Linux 內核啓動後會初始化各種軟硬件環境,加載驅動程序,掛載根文件系統,Linux 內核加載的最後階段會啓動並執行第一個用戶空間進程 init 進程。

3.Linux 內核啓動

都知道android 系統是基於linux 的基礎上來實現的。所以在android 系統啓動之前,會先啓linux 內核。當內核啓動時,設置緩存,加載驅動,在內核完成系統設置後,它會首先在啓動init 進程。

4. init 進程啓動

init進程是android 系統的頭號進程,因爲他PID號爲0,init 進程主要用來解析init.rc 文件,維護屬性服務property service。以及用來啓動Native 進程,例如,media,Zygote,surfaceflinger,servicemanager 進程。

5.啓動開機動畫

surfacefinger 進程啓動它來播放開機動畫

6.啓動Zygote 進程

init 進程啓動孵化進程 Zygote,Zygote進程如其名字一樣,會去孵化一些系統的關鍵進程和應用程序進程,如,SystemServer。同時也會創建DVM和ART。

7. 啓動Systemserver 進程

Zygote 孵化出Systemserver 進程,Systemserver又會創建出Android 系統java 層的核心服務,如AMS,PMS等。

8. 啓動Launcher

啓動主頁Launcher,AMS 去啓動主頁的Launcher 界面

9.停止開機動畫

當Launcher 啓動完成後,會關閉開機動畫,到此。android 系統也完全啓動了。

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