您好,登錄后才能下訂單哦!
這篇文章主要介紹“Android系統的啟動流程”,在日常操作中,相信很多人在Android系統的啟動流程問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”Android系統的啟動流程”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
啟動過程: Loader -> Kernel -> Native -> Framework -> App 。
2. Android 系統啟動過程
Loader
Loader 層執行過程分為兩步:
1. Android 設備上電以后,引導芯片執行固化在 Boot ROM 里的啟動引導代碼,加載 Boot Loader 代碼到內存;
2. Boot Loader 代碼開始執行,檢查 RAM ,完成硬件的初始化,加載Linux內核代碼到內存。
Kernel
Linux 內核開始啟動,初始化各種軟硬件環境,加載驅動程序,掛載根文件系統,執行init程序。
Native
1. init 進程 fork 出 logd 、 healthd 、 installd 、 adbd 等用戶守護進程;
2. 啟動 ServiceManager 和 MediaServer(本地服務);
3. fork 出 Zygote 進程,Zygote 進程是所有 Java 進程的父進程。
Framework
Framework 層由 C++ Framework 層和 Java Framework 層組成。
C++ Framework 層
C++ Framework 層主要運行本地服務,即 MediaServer 進程,它是由 init 進程 fork 而來,負責啟動和管理整個 C++ framework ,包含 AudioFlinger ,Camera Service 等服務。
Java Framework 層
Java Framework 層主要運行 SystemServer 進程,SystemServer 進程是 Zygote 進程 fork 出的第一個 Java 進程,SystemServer 負責啟動和管理 Java Framework ,主要管理 Android 服務,如 ActivityManagerService ,NotificationManagerService ,WindowManagerService 等,它們均以線程的方式運行在 SystemServer 進程中。
App
Zygote 進程 fork 出來的第一個 App 進程是 Launcher ,即桌面 App ,所有的 App 進程都是由 Zygote 進程 fork 生成的。
到此,關于“Android系統的啟動流程”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。