4.7 本章学习指导

PKMS是本书分析的第一个重要核心服务,其中的代码量、关联的知识点、涉及的数据结构都比较多。这里提出一些学习建议供读者参考。

从工作流程上看,PKMS包含几条重要的主线。一条是PKMS自身启动时构造函数的工作流程,另外几条和APK安装、卸载相关。每一条主线的难度都比较大,读者可结合日常工作的需求进行单独研究。例如研究如何加快构造函数的执行时间等。

从数据结构上看,PKMS涉及非常多的数据类型。如果对每个数据结构进行孤立分析,很容易陷入不可自拔的状态。笔者建议,不妨跳出各种数据结构的具体形态,只从目的及功能角度去考虑。这里需要读者仔细查看前面的重要数据结构及说明示意图。

另外,由于篇幅所限,本章还有一些内容并没有涉及,需要读者在学习完本章内容的基础上自行研究。这些内容包括:

APK安装在SD卡,以及APK从内部存储空间转移到SD卡的流程。

和Package相关的内容,例如签名管理、dex优化等。

权限管理相关的内容,读者可自行阅读《Application Security for the Android Platform》一书。