Monday, August 24, 2020

Zygote启动流程

Zygote 本身是一個Native的應用程式,剛開始的進程名稱為「app_process」,運行過程中,通過調用 setArgv0 將名字改為 zygote 或者  zygote64 (根據作業系統而來),最後通過 runtime 的 start() 方法來真正的加載虛擬機並進入JAVA世界


1. 初始化DDMS

2. 注册Zygote进程的Socket

3. 加载class、resource、OpenGL、WebView等各种资源

4. fork出SystemServer进程

5. 启动SystemServer进程

6. 调用runSelectLoop()一直监听Socket信息

7. 收到创建应用程序Socket消息,调用ZygoteConnection#runOnce()。在runOnce()中调用Zygote#forkAndSpecialize()创建应用进程

8. 启动应用进程

No comments:

Post a Comment

n8n index

 【n8n免費本地端部署】Windows版|程式安裝x指令大補帖  【一鍵安裝 n8n】圖文教學,獲得無限額度自動化工具&限時免費升級企業版功能