簡(jiǎn)述流程如下:
- 硬件環(huán)境初始化,內(nèi)核被加載到內(nèi)存;
- 內(nèi)核引導(dǎo)階段, 初始化并啟動(dòng)用戶空間1號(hào)進(jìn)程(init);
- init 進(jìn)程解析 init.rc 文件, 然后創(chuàng)建Zygote進(jìn)程;
- Zygote創(chuàng)建java虛擬機(jī), 注冊(cè)JNI函數(shù), 然后開啟JAVA世界;
- Zygote進(jìn)行一次分裂(fork), 創(chuàng)建system_server子進(jìn)程;
- system_server 開啟 Binder 通信, 并啟動(dòng) Native 服務(wù)和 Java 服務(wù);
詳情見下圖(鏈接):

Android啟動(dòng)過(guò)程分析.png