android啓動流程分析

0. 背景

因項目需要,作此分析,記錄於此,方便查閱。閒話少說,直接上一張android框架架構圖。


1. bootloader

鑑於本文旨在分析android啓動流程,在此不累述u-boot相關啓動流程,如需瞭解見u-boot分析。

2. kernel

鑑於本文旨在分析android啓動流程,在此不累述kernel相關啓動流程,如需瞭解見kernel分析。

3. init

代碼路徑:
android-4.4_r1/system/core/init/init.c
android-4.4_r1/device/samsung/smdk4412/init.rc

linux內核啓動之後,android系統起來的第一個進程就是init。init進程主要是用於文件夾建立,掛載,rc文件解析,屬性設置,啓動服務,執行動作,socket監聽等等。


4. zygote

代碼路徑:
android-4.4_r1/frameworks/base/cmds/app_process/app_main.cpp
android-4.4_r1/frameworks/base/core/jni/AndroidRuntime.cpp
android-4.4_r1/frameworks/base/core/java/com/android/internal/os/ZygoteInit.java

5. system server

代碼路徑:
android-4.4_r1/frameworks/base/services/java/com/android/server/SystemServer.java
android-4.4_r1/frameworks/base/services/jni/com_android_server_SystemServer.cpp

6. launcher

代碼路徑:

7. 解鎖

代碼路徑:

8. 開機自啓動的第三方應用程序

代碼路徑:

9. 總結

android的整個啓動流程如下圖所示:


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