一、PMS介绍
PMS主要是一个包的管理服务,在开机的时候会解析以前保存的一些安装包的相关数据,android运行过程中新安装的apk也会保存到PMS的相关变量中,并写到相关的文件永久保存。
PMS用来管理所有的package信息,包括安装、卸载、更新以及解析AndroidManifest.xml以组织相应的数据结构,这些数据结构将会被PMS、ActivityMangerService等等service和application使用到。
PMS有几个比较重要的命令可以用于debug:
adb shell dumpsys package (dump出系统中所有的application信息)
adb shell dumpsys package“com.android.contacts" p (dump出系统中特定包名的application信息)
一、PMS服务的启动过程
Android的所有Java服务都是通过SystemServer进程启动的,并且驻留在SystemServer进程中。SystemServer进程在启动时,通过创建一个ServerThread线程来启动所有服务。PMS也是由SystemServer启动的。
PMS类图:
在SystemServer进程的ServerThread线程中,执行以下代码启动PackageManagerService服务: