android系统源码之 系统应用安装过程(上) :http://blog.csdn.net/king1425/article/details/70135813
下图是PackageParser主要数据结构:
这里有个疑问为什么不直接用Activityinfo?
(3)扫描完成之后的工作:解析完成之后存在Package对象里边的信息公有化到PackageManagerService当中, PKMS重要的数据结构:
scanPackageLI(pkg, scanFile, parseFlags, scanFlags, currentTime, user)这个方法就是上述的功能,我们来分析一下这个方法里边比较重要的部分,
Idmap是什么?
Dex系统又是怎么做odex优化的?
其实中间还会做一些再次验证签名,apk的更新还有对Libraries的处理等等就不做过多分析了,到这里我们已经分析完了APK解析过程了。
继续往下分析PKMS的构造方法,有这prepareAppDataLeafLIF()
这个mInstaller的类型就是InStaller,它继承SystemService,它是真正负责来安装应用程序的,这里我们本次分享不做重点介绍。
PKMS的构造方法最开始的时候就去读一个package.xml文件,有读肯定就有写,
流程总结: