PMS 启动流程

1.

SystemServer中启动PackageManagerService.main

2.

newPackageManagerService()并添加到ServiceManager中

3.

newinstaller(建立installerinstalldsocket连接,最终在底层实现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.xmlpackages.list中。

你可能感兴趣的:(PMS 启动流程)