1.引言

最近在看AOSP Apk安装的相关源码时,发现自己对这块知识一直停留到用的层面,并未有深入的了解,例如打包的具体过程、签名的具体过程、渠道打包,最重要的,自己这几年在做系统方面的应用时,也解决过很多apk 安装的问题,修改过部分的系统源码,可是没有把这块知识系统的整理、沉淀下来,所以感觉有必要,借这个契机,来深入学习总结一下。

还是老办法,我们开始学习之前, 先大概梳理一下,自己有哪些问题或者知识点,想要借此良机,扩展、深入学习总结的、大家也一直知道,小编采用这样的学习办法,无非是为了防止以下类似的情形出现。

  • 出现像盲人摸象一样,只见其树木未见森林,看到一个知识点,了解之后,并未深入扩展
  • 出现像无头苍蝇一样,看一个知识点,遇到另外一个陌生知识点,立马又打开,最后打开一大堆网页,都只是了解了皮毛

总之一句话,做什么事情,总得有个目标。
1)APK的打包过程,具体到资源、aidl、java、dex等
2)APK的包结构,具体为apk文件中,每个文件的内容、来源、用处
3)APK的签名、验证过程
4)android v1、v2、v3、v4签名的异同点
5)渠道包的方案迭代,涉及到walle的实现原理
6)之前一些实际工作中,遇到问题的经验总结,例如:静默安装的实现方案、增量升级之后app没有更新问题的解决等
7)Res