Android源码个个击破之PackageManager

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

创新互联主要从事网站设计制作、成都做网站、网页设计、企业做网站、公司建网站等业务。立足成都服务平遥,10余年网站建设经验,价格优惠、服务专业,欢迎来电咨询建站服务:18982081108

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

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

的方法。

    1.ApplicationPackageManager构造

        Android源码个个击破之PackageManager

  

Android源码个个击破之PackageManager

           

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

     Android源码个个击破之PackageManager

        在SystemServer里调用了PackageManagerService的main方法

    Android源码个个击破之PackageManager

    2.getActivityInfo方法

Android源码个个击破之PackageManager

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

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

        

Android源码个个击破之PackageManager

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

Android源码个个击破之PackageManager

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

    


当前题目:Android源码个个击破之PackageManager
链接地址:http://hxwzsj.com/article/jieehd.html

其他资讯

Copyright © 2025 青羊区翔捷宏鑫字牌设计制作工作室(个体工商户) All Rights Reserved 蜀ICP备2025123194号-14
友情链接: 重庆网站设计 盐亭网站设计 网站制作公司 定制网站设计 成都网站建设公司 手机网站制作 定制级高端网站建设 成都网站设计 成都网站建设流程 网站建设费用 手机网站建设 企业网站建设 成都响应式网站建设公司 营销网站建设 响应式网站设计方案 成都网站建设 企业网站建设公司 品牌网站建设 重庆网站建设 成都网站设计 成都网站制作 手机网站制作设计