一赡磅、概述
老李原本打算 十一假期期間把<Android插件化基礎(chǔ)4----APK安裝流程詳解>,寫(xiě)成一篇文章的宝与,結(jié)果寫(xiě)著寫(xiě)著就holder不住了焚廊,寫(xiě)著寫(xiě)著發(fā)現(xiàn)要補(bǔ)充一些知識(shí),一直在添東西习劫,所以最后一篇文章就變成了一個(gè)系列了咆瘟。~~~(>_<)~~~。最后導(dǎo)致這個(gè)APK安裝系列直到10月底才搞定诽里,整體上來(lái)說(shuō)袒餐,我花了我一個(gè)月的時(shí)間,整體上來(lái)說(shuō)谤狡,我對(duì)它并不是很滿意灸眼,不過(guò)后續(xù)如果有時(shí)間,我會(huì)重新寫(xiě)一遍墓懂。但是我通過(guò)這一個(gè)月的學(xué)習(xí)幢炸,我對(duì)APK的安裝有了一個(gè)大明顯的提升。我也希望這一些列文章能幫助大家拒贱。
源代碼基于Android 6.0
二、結(jié)構(gòu)
我這一系列主要分為幾個(gè)部分:
- 1 基礎(chǔ)知識(shí)部分
- 2 流程講解
- 3 流程講解補(bǔ)充
- 4 總結(jié)
補(bǔ)充:
- 如果想在后面更好的了解APK的裝載流程佛嬉,就必須要掌握一些基礎(chǔ)知識(shí)逻澳,所以"基礎(chǔ)知識(shí)部分",大家最好先看一遍暖呕。
- 在講解過(guò)程中斜做,我是按照 “流程 優(yōu)先級(jí)高于 細(xì)節(jié)” 的思路來(lái)的,所以其中 APK安裝流程詳解6——PackageManagerService的啟動(dòng)流程(上)湾揽、APK安裝流程詳解7——PackageManagerService的啟動(dòng)流程(下)瓤逼、 APK安裝流程詳解12——PackageManagerService中的新安裝流程上(拷貝)、 APK安裝流程詳解13——PackageManagerService中的新安裝流程下(裝載)中均會(huì)涉及PacakgeParse解析APK的內(nèi)容库物,所以我在這四個(gè)文章中沒(méi)有詳細(xì)講解霸旗,只是一筆帶過(guò),關(guān)于PacakgeParse解析APK的內(nèi)容請(qǐng)參考APK安裝流程詳解8——PackageParser解析APK(上)和 APK安裝流程詳解9——PackageParser解析APK(下)
- APK的安裝的過(guò)程我主要分為兩個(gè)部分戚揭,一為拷貝即APK安裝流程詳解12——PackageManagerService中的新安裝流程上(拷貝)诱告,二為裝載即APK安裝流程詳解13——PackageManagerService中的新安裝流程下(裝載)。里面也是有很多的細(xì)節(jié)民晒,我沒(méi)有講解精居,主要是在APK安裝流程詳解14——PMS中的新安裝流程上(拷貝)補(bǔ)充 和 APK安裝流程詳解15——PMS中的新安裝流程下(裝載)補(bǔ)充 做一些補(bǔ)充說(shuō)明
三锄禽、建議
我建議大家先看下基礎(chǔ)知識(shí),然后再看流程靴姿,最后看一下總結(jié)沃但。這樣大家會(huì)對(duì)整體的流程 概念更深刻。
四佛吓、風(fēng)險(xiǎn)
其中涉及到Android 用戶模式宵晚、Android SELinux模塊、Android 存儲(chǔ)系統(tǒng)(Vold辈毯、MountService等) 坝疼、Android 應(yīng)用的簽名。 這四個(gè)模塊我基本上都是一筆帶過(guò)谆沃,因?yàn)槿绻偕钊攵坌祝烙?jì)要到過(guò)年了。后面我會(huì)單獨(dú)講解這四個(gè)模塊
五唁影、未來(lái)計(jì)劃
由于本人12月中旬要考PMI-ACP耕陷,所以暫時(shí)停更2個(gè)月,我會(huì)在12月底或者1月初繼續(xù)据沈。到時(shí)候看時(shí)間哟沫,可能會(huì)<寫(xiě)APP打開(kāi)與Activity的啟動(dòng)流程> ,也可能會(huì)是<Android 用戶模式>等锌介。到時(shí)候看吧嗜诀。
六、感謝
牛頓曾經(jīng)說(shuō)過(guò)“如果我看得更遠(yuǎn)一點(diǎn)的話孔祸,是因?yàn)槲艺驹诰奕说募绨蛏下「摇!彼愿兄x如下:
http://blog.csdn.net/mockingbirds/article/details/53048296
http://blog.csdn.net/guoqifa29/article/details/41846169
http://blog.csdn.net/dd864140130/article/details/51867872
http://blog.csdn.net/gaugamela/article/details/52637814
http://blog.csdn.net/zy00000000001/article/details/51956883
https://yq.aliyun.com/articles/61570
http://blog.csdn.net/wh_19910525/article/details/39254815
http://www.codexiu.cn/android/blog/41507/
https://my.oschina.net/feiyangxiaomi/blog/746563
http://blog.csdn.net/lilian0118/article/details/25792601
http://www.debugrun.com/a/6Jg5ejZ.html
http://blog.csdn.net/zhanglianyu00/article/details/62888359
https://github.com/yipianfengye/androidSource/blob/master/13%20apk%E5%AE%89%E8%A3%85%E6%B5%81%E7%A8%8B.md
http://blog.csdn.net/king1425/article/details/70135813
http://blog.csdn.net/xueshanhaizi/article/details/51113752
http://blog.csdn.net/qq_25804863/article/details/48697423
http://www.cnblogs.com/ouyanliu/articles/7100682.html
http://blog.csdn.net/gaugamela/article/details/52769139
https://chaman.gitbooks.io/techblog/Android/apk-install-uninstall/apk-install-uninstall.html
http://www.heqiangfly.com/2016/05/12/android-source-code-analysis-package-manager-installation/
http://www.codexiu.cn/android/blog/8414/
https://maoao530.github.io/2017/01/18/package-install/
http://www.reibang.com/writer#/notebooks/11880264/notes/18923066
http://www.reibang.com/p/6769d1a9f4ad
http://www.cnblogs.com/myitm/archive/2012/05/17/2506635.html
http://www.cnblogs.com/carlo/p/4877819.html
http://www.voidcn.com/article/p-cqchgkxw-gx.html
http://blog.csdn.net/yangwen123/article/details/11104397
http://blog.jobbole.com/67286/
http://wiki.jikexueyuan.com/project/deep-android-v2/packagemanagerservice.html
http://cstsinghua.github.io/2016/06/13/Android%E5%AE%89%E8%A3%85APK%E8%AF%A6%E8%A7%A3/
https://www.2cto.com/kf/201403/285212.html
http://blog.csdn.net/wpxiaoxue/article/details/47071457
http://blog.csdn.net/zhiyuan263287/article/details/21033309
http://www.voidcn.com/article/p-kssalazh-sy.html
http://www.reibang.com/p/953475cea991
http://blog.csdn.net/sgzy001/article/details/44857057
http://blog.csdn.net/zhiyuan263287/article/details/21033309
http://blog.csdn.net/singwhatiwanna/article/details/19578947