android包管理

PackageManagerService

X.apk 会被加载到 data/app目录下,然后扫描这个apk

其实在手机开机时,PMS就会扫描  data/app 和 systemp/app 目录下的没有apk的信息,将这些信息缓存起来。

那他扫描的就是清单文件了(通过PMS的PackageParse去解析,没有apk对应一个缓存对象package,PMS是单独进程)。 PMS负责扫描,AMS负责从里面找入口/调用

有了PMS就理解了为什么我们安装一个用的时候,提示的失败。比如重复的APK,重复的provider-author导致的安装失败。也理解了为什么相同action会提示多个应用可以打开。

当用户点击APK的时候,AMS从PMS拿到入口,启动。AMS将这些信息存到自己的ActivityThread-ActivityClientRecord集合里。

PMS的扫描过程:

在29之后启动线程池去用PackageParse解析 

注意:因为PMS也是进程,所以与之通信的都是binder

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值