安卓系統啟動流程
時間:2019-08-09 來源:重慶中心,段老師
安卓系統啟動流程
安卓系統,底層使用的是linux系統.在linux應用層至上實現了java環境和安卓系統需要的各種庫 組件等.下圖是安卓系統的框架:

我們發現整個安卓系統嚴重依賴于linux kernel,基于linux提供的app接口,實現了 java虛擬機,安卓各種庫文件. 基于這些庫,開發app,運行java程序.
所以應該從底層開始啟動,首先是 bootloader, kernel , java庫 jvm初始化, framework初始化,app初始化,由下往上依次進行.

bootloader,即引導程序,用于加載os,嵌入式上使用的是u-boot,手機上一般使用的是recovery. bootloader實現開機啟動,然后加載linux系統.linux系統往上繼續啟動.
linux在啟動過程中會開創第一個 進程init進程,init進程會根據/etc/init.d/rcS中的描述,加載一些應用程序,開機啟動. 我們可以將安卓啟動的命令安排在該腳本即可.
下圖是應用層的啟動過程:

上圖中,有C語言進入C++環境,cpp主要用于實現一些庫,比如音視頻算法 圖形庫 等.通過JNI的方式 和java語言進行通信.最終執行到java程序,啟動java服務.

