PackageManager是个实现类,具体的实现类是frameworks\base\core\java\android\app\ApplicationPackageManager.java   (此类是hide类,通过引用无法关联到。)

这个文件定义ApplicationPackageManager类,继承并实现了PackageManager中接口;

ApplicationPackageManager使用mPM变量,这个变量是PackageManagerService的客户端(IBinder对象),调用mPM对象中的方法,实际调用到了frameworks\base\services\java\com\android\server\pm\PackageManagerService.java文件中

的方法。

1.ApplicationPackageManager构造

继续追溯,看看ServiceManager.getService("package"),PackageManagerService在哪里添加的呢?

在SystemServer里调用了PackageManagerService的main方法

2.getActivityInfo方法

其实调用的的是PackageManagerService的getActivityInfo方法

注意“mActivities.mActivities.get(component);”这里的mActivities重复写了一下,应该是网站的bug,实际代码应该是“mActivities.get(component);”

mActivities是在scanPackageDirtyLI这个方法里填充mActivities的

最终这个方法是通过 PackageManagerService的构造方法里调用。

android packagemanager源码,Android源码个个击破之PackageManager相关推荐

  1. Android FrameWork 学习之Android 系统源码调试

    这是很久以前访问掘金的时候 无意间看到的一个关于Android的文章,作者更细心,分阶段的将学习步骤记录在自己博客中,我觉得很有用,想作为分享同时也是留下自己知识的一些欠缺收藏起来,今后做项目的时候会 ...

  2. Android四大组件之bindService源码实现详解

        Android四大组件之bindService源码实现详解 Android四大组件源码实现详解系列博客目录: Android应用进程创建流程大揭秘 Android四大组件之bindServic ...

  3. android+高仿+日历,项目源码--Android天气日历精致UI源码

    技术要点: 1. 天气日历精致UI 2. Android的Http通信技术 3. Android的天气信息解析 4. Android的日历信息的统计 5. Andorid的地理位置的管理 6.源码带有 ...

  4. Android本科毕业设计基于Android的天气预报APP系统(附带源码)

    Android本科毕业设计基于Android的天气预报开发APP系统源码.显示城市当前的实时天气状况,包括城市名称.城市名片.天气情况.温度高低.星期等信息.界面左边有一列城市列表,显示中国各个城市名 ...

  5. linux 浏览器源码下载,Android开发:图片浏览器源码

    Android 图片浏览器源码,是你学习Android很好的例子,希望对你的学习有帮助. main.xml android:layout_width="fill_parent" a ...

  6. 飞行熊猫游戏源码android版

    这款游戏是前一段时间完成的一个项目,飞行熊猫游戏源码android版,飞行熊猫基于cocos2d游戏引擎开发,包括了谷歌admob广告支持,没有任何版权问题,大家可以自由修改和上传应用商店. 1.本游 ...

  7. android intent 源码,Android 基础之 IntentService 源码

    Android 基础之 IntentService 源码 Android,IntentService,源码 IntentService 位于 android.app 包下面,是 Service 的一个 ...

  8. Android Jetpack 组件之 Lifecycle源码

    1.前言 最近简单看了下google推出的框架Jetpack,感觉此框架的内容可以对平时的开发有很大的帮助,也可以解决很多开发中的问题,对代码的逻辑和UI界面实现深层解耦,打造数据驱动型UI界面. A ...

  9. Android多线程之ArrayBlockingQueue源码解析

    阻塞队列系列 Android多线程之LinkedBlockingQueue源码解析 Android多线程之SynchronousQueue源码解析 Andorid多线程之DelayQueue源码分析 ...

  10. 怎么看android底层源码,Android 底层按键获取

    与用户交互的输入设备(触摸屏,键盘等)是获取用户意图的来源.由于硬件本身的物理特性及由各大硬件厂商的标准不一,这将导致我们从设备上获取到的键值存在一定的差异性,为了让系统能够正确处理用户的操作,我们就 ...

最新文章

  1. 自学python爬虫要多久-初学Python爬虫要学多久?原来这么快
  2. oracle12c完全卸载工具_oracle完全卸载方法
  3. 17年前存款11万,取款时银行以销户为由拒绝,法院判银行全额赔付
  4. 函数stat、fstat、fstatat和lstat
  5. 吴恩达新公司曝光:签下富士康,要用AI变革制造业
  6. android 4.0 屏蔽home键实现
  7. 怎样从外网访问自己的HTTP服务器
  8. linux下nand flash驱动工作原理,1.3.4. Nand flash驱动工作原理
  9. 阿里面试官:LongAdder和AtomicLong哪个性能更好?我有点懵~
  10. java方法栈和c方法栈_Java虚拟机:本地方法栈与Native方法
  11. 解密后的暴风一号病毒(1KB文件夹快捷方式病毒)
  12. 回归方程的拟合优度检验_线性回归模型的拟合优度检验方法分析.ppt
  13. matlab残差分析取离散点,matlab残差分析图
  14. 蓝雪花怎么养 蓝雪花养殖方法及注意事项
  15. 破解版百度云【亲测好用】完美解决限速
  16. 动点四边形周长最短_中考数学之四边形周长最小值
  17. html dom 触发等事件
  18. HTML+CSS例子>太极
  19. 股票量化分析系统浅析之(三)归一化与标准化
  20. 用CIL写程序:定义一个叫“慕容小匹夫”的类

热门文章

  1. SeaweedFS安装部署
  2. matlab 插值出错,MATLAB插值问题
  3. Line-in和Mic-in的区别和使用及Line-out
  4. 西门子G120变频器介绍
  5. 链路追踪Skywalking保姆级安装教程
  6. 虚拟机scala安装
  7. ubuntu 10.04 下安装 wine 所得所获【转】
  8. cad卸载工具_使用感极好的5款软件分享,款款高逼格,下载之后就没舍得卸载...
  9. 手机端html只允许竖屏,关于移动端页面强制竖屏的方法
  10. ANSYS 静力 分析实例 悬臂梁