读书笔记:android设计与实现第四…

Package manager:
PackageManager是Android为管理应用程序安装包(APK)提供的包管理器,这部分内容和Android启动过程联系紧密,是理解Android框架层的基础之一。
PackageManager主要包括以下部分:
1,权限处理,包括对系统和应用定义的permission和permissionGroup信息的增加、删除、查询和检查
2,报处理,包括扫描并安装和卸载APK包,查询包的UID、GID、包名、系统默认程序信息等。
3,比较两个包的Signatures信息是否相同
4,查询Activity、provider、Receiver、Service信息
5,查询Application 、Package、Resource、sharedLibrary、Feature信息
6,Intent匹配
PackageManager涉及的内容非常广泛,根据packageManager各模块的功能和在源码中所处的层次,可以将PackageManager划分为三层体系结构,应用层,中间层,服务层。
1,应用层:位于最上层,包括GoogleMarket、PackageInstaller.apk,GoogleMarket用于安装market上的程序,PackageInstaller.apk用于安装存储设备上的apk安装包
2,中间层:包括两个模块:PackageManager及其之类、adb和pm命令。PackageManager对外提供API接口,这是一个抽象类,由其子类ApplicationPackageManage r实现其定义的接口,其上层的应用层调用这些API接口实现具体的功能。adb和pm命令用于安装和卸载APK,这两个模块的共同特点,通过Binder通信最终调用PackageManagerService的对等方法实现具体的功能。
3,服务层:PackageManagerService及其相关类,PackageManagerService是在Android启动过程中的init2阶段启动的JavaSystemService从binder通信的角度看,中间层是其Client端。

应用层调用getContext().getPackageManager(),获取PackageManager对象,主要做了两部分工作:
1,获得一个IPackageManager的Binder代理对象
2,以该对象为参数构造一个ApplicationPackageManage r对象返回。





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值