Android系统启动
Android系統啟動流程
Android系統架分為:
應用層,framework層,系統運行庫層(Native),Linux內核層
啟動按照一個流程:
Loader- >kernel->framework->Application來進行的
1.Bootloader引導
當電源按下時,引導芯片代碼 從 ROM (4G)開始執行。Bootloader引導程序把操作系統映像文件拷貝到RAM中 去,然后跳轉到它的入口處去執行,啟動Linux內核。
Linux kernel內核啟動,會做設置緩存,加載驅動等一些列操作
當內核啟動完成之后,啟動 init 進程,作為第一個系統進程, init 進程從內核態轉換成用戶態。
2.init進程啟動
fork 出 ServerManager 子進程。 ServerManager主要用于管理我們的系統服務,他內部存在一個server服務 列表,這個列表中存儲的就是那些已經注冊的系統服務。
解析 init.rc 配置文件并啟動 Zygote 進程
3.Zygote進程啟動
孵化其他應用程序進程,所有的應用的進程都是由zygote進程fork出來的。 通過創建服務端Socket,等待AMS的 請求來創建新的應用程序進程。 創建SystemServer進程,在Zygote進程啟動之后,會通過ZygoteInit的main方法fork出SystemServer進程
4.SystemServer進程啟動
創建SystemServiceManager,它用來對系統服務進行創建、啟動和生命周期管理。 ServerManager.startService啟動各種系統服務:WMS/PMS/AMS等,調用ServerManager的addService方, 將這些Service服務注冊到ServerManager里面
啟動桌面進程,這樣才能讓用戶見到手機的界面。
5.Launcher進程啟動
開啟系統Launcher程序來完成系統界面的加載與顯示。
總結
以上是生活随笔為你收集整理的Android系统启动的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 过拟合是什么 怎么解决?
- 下一篇: PMS解析AndroidManifest