PackageManager是Android为管理应用程序安装包(apk)提供的包管理器
它的功能如下:
1 权限处理,包括对系统和应用定义的Permission和Permission Group信息的添加、删除、查询和检查
2 包处理,包括扫描并安装和卸载apk包,查询包的UID、GID、包名、系统默认程序等信息
3 比较两个包的signatures信息是否相同
4 查询Activity、Provider、Receiver、Service信息
5 查询Application、Package、Resource、share library、Feature信息
6 intent匹配
PackageManager体系结构
PackageManager涉及的内容非常广泛,涵盖PackageManager、PackageManagerService(java system service)、属性服务、文件系统、installd(守护服务)、DefaultContainerService(应用程序服务)、FileObserver以及Binder/Socket进程间通信等内容
划分为三层体系结构:应用层、中间层、服务层
1 应用层
应用层位于最上层,包括Goolge Market、PackageInStaller.apk以及其他第三方的安装界面
2 中间层
包括两个模块
1)Pac