1.
在SystemServer中启动PackageManagerService.main
2.
newPackageManagerService()并添加到ServiceManager中
3.
newinstaller(建立installer和installd的socket连接,最终在底层实现install,remove,dexopt等功能)
4.
通过systemConfig获取到xml文件中信息
5.
创建PackageHandler Message Looper(安装/卸载请求)
6.
readPLW()(读取data/system/packages.xml)
7.
检查/system/etc/permissions/platform.xml中定制的library及/system/framework下的jar档案是否需要dex提取进行优化。
若需要优化,会调用installer.dexopt提取dex到/data/dalvik-cache中
8.
调用scanDirLI扫描存放apk的各个目录
9.
系统应用安装—通过scanPackageLI逐一解析AndroidManifest.xml文件,建立每个apk的配置结构,并将apk配置信息添加到全局列表进行管理。
10.
调用writeLPr()从全局列表中将apk信息写到packages.xml和packages.list中。