一、PMS的作用
Package Manage Service是Android 系统核心服务之一,主要负责各种APK的安装,卸载,优化和查询。
二、PMS 启动流程
简单的将其分为以下几个步骤
- SystemServer通过PMS的main方法启动PMS
- PMS构造方法中初始化Settings
- 扫描各个系统目录下APP相关信息
具体步骤
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逐一解析Android