Android源码个个击破之PackageManager-创新互联
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的构造方法里调用。
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
分享文章:Android源码个个击破之PackageManager-创新互联
本文路径:http://scyanting.com/article/iicgg.html