Android 啟動過程

來源:互聯網
上載者:User
1. Boot系統初始化, 具體過程參見(system\core\init\Init.c)中的main函數,這時候,手機或者模擬器出現的畫面是一個console,顯示“ANDROID”msg。

 

2. 初始化成功後,就開始mounting系統,具體參見(system\core\mountd\Mountd.c) 中的main函數。

 

3.接下來運行ndroidRuntime,並開始啟動java虛擬機器dalvikvm。

 

4. Java虛擬機器啟動成功後,開始系統初始化。系統初始的第一步是用JNI方式實現的,對應java代碼為(frameworks\base\services\java\com\android\server\SystemServer.java) init1(Native)函數,對應的JNI C++代碼為(frameworks\base\core\jni\server\com_android_server_SystemServer.cpp),而實現的C++代碼為

(frameworks\base\cmds\system_server\library\ System_init.cpp) 中的system_init()函數。

 

5. system_init調用SurfaceFlinger,SurfaceFlinger的readyToRun()函數用BootAnimation來實現開機動畫,這時候手機或者模擬器顯示是一副背景圖加一個動態小機器人。

 

6. 系統初始化的第二步,將啟動ServerThread進程,參見SystemServer.init2()。ServerThread將啟動各種系統服務,如Power Manager、Activity Manager等等,具體參見ServerThread的run函數,ServerThread同在SystemServer.java中。

 

7.這之後的事,應該就是進入系統了。(這部分沒有調查過)。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.