1.前言
- 最近一直在看 《Android進(jìn)階解密》 的一本書(shū),這本書(shū)編寫(xiě)邏輯、流程都非常好丈咐,而且很容易看懂瑞眼,非常推薦大家去看看(沒(méi)有收廣告費(fèi),單純覺(jué)得作者寫(xiě)的很好)棵逊。
- 今天就將
應(yīng)用進(jìn)程啟動(dòng)過(guò)程
總結(jié)一下(基于Android 8.0 系統(tǒng))伤疙。 - 文章中實(shí)例 linhaojian的Github
2.應(yīng)用進(jìn)程啟動(dòng)過(guò)程
3.各部分說(shuō)明
3.1 ActivityManagerService:
- 準(zhǔn)備需要啟動(dòng)的應(yīng)用進(jìn)程相關(guān)信息與資源(進(jìn)程類名、進(jìn)程uid等等)辆影。
3.2 Process:
- 工具類徒像,管理OS系統(tǒng)所有進(jìn)程。
3.3 ZygotePrcess:
- 連接Zygote服務(wù)器Socket蛙讥;封裝與Zygote通訊的數(shù)據(jù)格式 & 發(fā)送至Zygote锯蛀。
3.4 ZygoteInit:
- 創(chuàng)建Binder線程池;創(chuàng)建應(yīng)用進(jìn)程實(shí)例次慢。
3.5 ZygoteServer:
- 注冊(cè)本地服務(wù)器Socket谬墙;輪詢Socket接收ActivityManagerService請(qǐng)求創(chuàng)建應(yīng)用進(jìn)程的數(shù)據(jù)。
3.6 ZygoteConnection:
- 接收 & 解析ActivityManagerService請(qǐng)求創(chuàng)建應(yīng)用進(jìn)程的數(shù)據(jù)经备。
3.7 Zygote:
- 根據(jù)解析的數(shù)據(jù)創(chuàng)建進(jìn)程。
3.8 RuntimeInit:
- 通過(guò)反射的方式調(diào)用ActivityThread的main方法部默。
3.9 ActivityThread:
- 代表一個(gè)應(yīng)用進(jìn)程侵蒙,負(fù)責(zé)所有的Activity管理、調(diào)度傅蹂、執(zhí)行與其他操作請(qǐng)求纷闺;
4.總結(jié)
- 到此,簡(jiǎn)單把應(yīng)用進(jìn)程啟動(dòng)過(guò)程介紹完畢份蝴。
- 如果喜歡我的分享犁功,可以點(diǎn)擊 關(guān)注 或者 贊,你們支持是我分享的最大動(dòng)力 婚夫。
- linhaojian的Github
歡迎關(guān)注linhaojian_CSDN博客或者linhaojian_簡(jiǎn)書(shū)浸卦!
不定期分享關(guān)于安卓開(kāi)發(fā)的干貨。
寫(xiě)技術(shù)文章初心
- 技術(shù)知識(shí)積累
- 技術(shù)知識(shí)鞏固
- 技術(shù)知識(shí)分享
- 技術(shù)知識(shí)交流