Android進階(二): 應用程序啟動過程
阿新 • • 發佈:2018-12-03
1.前言
- 最近一直在看 《Android進階解密》 的一本書,這本書編寫邏輯、流程都非常好,而且很容易看懂,非常推薦大家去看看(沒有收廣告費,單純覺得作者寫的很好)。
- 今天就將
應用程序啟動過程
總結一下(基於Android 8.0 系統)。 - 文章中例項 linhaojian的Github
2.應用程序啟動過程
3.各部分說明
3.1 ActivityManagerService:
* 準備需要啟動的應用程序相關資訊與資源(程序類名、程序uid等等)。
3.2 Process:
* 工具類,管理OS系統所有程序。
3.3 ZygotePrcess:
* 連線Zygote伺服器Socket;封裝與Zygote通訊的資料格式 & 傳送至Zygote。
3.4 ZygoteInit:
* 建立Binder執行緒池;建立應用程序例項。
3.5 ZygoteServer:
* 註冊本地伺服器Socket;輪詢Socket接收ActivityManagerService請求建立應用程序的資料。
3.6 ZygoteConnection:
* 接收 & 解析ActivityManagerService請求建立應用程序的資料。
3.7 Zygote:
* 根據解析的資料建立程序。
3.8 RuntimeInit:
* 通過反射的方式呼叫ActivityThread的main方法。
3.9 ActivityThread:
* 代表一個應用程序,負責所有的Activity管理、排程、執行與其他操作請求;
4.總結
- 到此,簡單把應用程序啟動過程介紹完畢。
- 如果喜歡我的分享,可以點選 關注 或者 贊,你們支援是我分享的最大動力 。
- linhaojian的Github
歡迎關注linhaojian_CSDN部落格或者linhaojian_簡書!
不定期分享關於安卓開發的乾貨。
寫技術文章初心
- 技術知識積累
- 技術知識鞏固
- 技術知識分享
- 技術知識交流