PackageManagerService 和其它系统服务(AmS,WmS)一样,运行于SystemServer进程。
PackageManagerService主要包括三部分内容:
1.提供一个能够根据Intent匹配到具体的Activity、Provider、Service。即能把参数中指定的intent转换成一个具体的包含了程序包名及具体Component名称的信息。
2.权限检查,即当调用某个需要一定权限的函数时,判断是否有执行权限,从而保证了系统安全。
3.提供安装、删除应用程序接口。
--------------------------------
除了PmS服务外,还有两个辅助系统服务用于 程序安装。
1.DefaultContainerService:用于把安装程序复制到程序目录中;
2.Install服务:该服务并不是一个Binder,而是一个Socket客户端,PmS直接与Socket客户端交互;Socket客户端主要完成程序文件的 解压及数据目录创建,比如从Apk文件中提取出dex文件,删除dalvik-cache目录下的dex文件,创建程序专属的数据目录等。