Android系統(tǒng)啟動(dòng)(一)-開篇

從這個(gè)篇章開始,簡(jiǎn)單總結(jié)下Android系統(tǒng)的啟動(dòng)流程,屬于framework學(xué)習(xí)的基礎(chǔ)總結(jié)。

先從如下圖了解下Android系統(tǒng)的分層:

from gityuan

圖解: Android系統(tǒng)啟動(dòng)過程由上圖從下往上的一個(gè)過程:Loader -> Kernel -> Native -> Framework -> App,接來下按從下到上的順序簡(jiǎn)要介紹下每層:

Loader層:激活Kernel。

  • 啟動(dòng)電源以及系統(tǒng)啟動(dòng):當(dāng)電源按下時(shí)引導(dǎo)芯片代碼將固化在ROM中的引程序Bootloader加載到RAM,然后執(zhí)行。
  • 引導(dǎo)程序Bootloader:它是Android操作系統(tǒng)開始運(yùn)行前的一個(gè)小程序,負(fù)責(zé)把系統(tǒng)OS拉起來并運(yùn)行。
  • linux內(nèi)核啟動(dòng):內(nèi)核啟動(dòng)時(shí),設(shè)置緩存、被保護(hù)存儲(chǔ)器、計(jì)劃列表,加載驅(qū)動(dòng)等,為最終調(diào)用系統(tǒng)內(nèi)核準(zhǔn)備好環(huán)境。

Kernel層:Android內(nèi)核空間,到這里才剛剛開始進(jìn)入Android系統(tǒng)。

Bootloader啟動(dòng)Kernel的swapper進(jìn)程(pid=0),它是內(nèi)核首個(gè)進(jìn)程,用于初始化進(jìn)程管理、內(nèi)存管理、加載各種驅(qū)動(dòng)。更重要的是啟動(dòng)如下兩個(gè)重要進(jìn)程:

  • init進(jìn)程(pid=1):用戶進(jìn)程的鼻祖
  • threadd進(jìn)程(pid=2):內(nèi)核進(jìn)程的鼻祖
    這層真正大主管是threadd進(jìn)程,會(huì)創(chuàng)建內(nèi)核工作線程kworkder,軟中斷線程ksoftirqd,thermal等內(nèi)核守護(hù)進(jìn)程。

Native層:進(jìn)入用戶空間。

這層init進(jìn)程(pid=1)是大主管。它負(fù)責(zé)孵化各種系統(tǒng)級(jí)服務(wù)、守護(hù)進(jìn)程等。最重要的是孵化出Zygote進(jìn)程:Java進(jìn)程的鼻祖。

  • Media Server進(jìn)程:負(fù)責(zé)啟動(dòng)和管理整個(gè)C++ framework,包含AudioFlinger,Camera Service等服務(wù)。

Framework層:在Native之上,也是用戶空間,主要給app層提供api以及系統(tǒng)服務(wù)。

這層大主管是 Zygote進(jìn)程。它負(fù)責(zé)注冊(cè)Zygote Socket服務(wù)端套接字,加載虛擬機(jī),preloadClasses和preloadResouces。

  • System Server進(jìn)程:負(fù)責(zé)啟動(dòng)和管理整個(gè)Java framework,包含AMS、WMS、PMS等服務(wù)。

App層:應(yīng)用程序。

所有的App進(jìn)程都是由Zygote進(jìn)程fork生成的。

參考:
http://gityuan.com/android/

系列文章:
Android系統(tǒng)啟動(dòng)(一)-開篇
Android系統(tǒng)啟動(dòng)(二)-Init篇
Android系統(tǒng)啟動(dòng)(三)-Zygote篇
Android系統(tǒng)啟動(dòng)(四)-SystemServer篇
Android系統(tǒng)啟動(dòng)(五)-ActivityManagerService篇
Android系統(tǒng)啟動(dòng)(六)-Launcher篇

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
禁止轉(zhuǎn)載,如需轉(zhuǎn)載請(qǐng)通過簡(jiǎn)信或評(píng)論聯(lián)系作者。

友情鏈接更多精彩內(nèi)容