PackageManager是個實現(xiàn)類,具體的實現(xiàn)類是frameworks\base\core\java\android\app\ApplicationPackageManager.java (此類是hide類,通過引用無法關聯(lián)到。)
我們一直強調(diào)成都網(wǎng)站制作、做網(wǎng)站對于企業(yè)的重要性,如果您也覺得重要,那么就需要我們慎重對待,選擇一個安全靠譜的網(wǎng)站建設公司,企業(yè)網(wǎng)站我們建議是要么不做,要么就做好,讓網(wǎng)站能真正成為企業(yè)發(fā)展過程中的有力推手。專業(yè)網(wǎng)站設計公司不一定是大公司,成都創(chuàng)新互聯(lián)作為專業(yè)的網(wǎng)絡公司選擇我們就是放心。這個文件定義ApplicationPackageManager類,繼承并實現(xiàn)了PackageManager中接口;
ApplicationPackageManager使用mPM變量,這個變量是PackageManagerService的客戶端(IBinder對象),調(diào)用mPM對象中的方法,實際調(diào)用到了frameworks\base\services\java\com\android\server\pm\PackageManagerService.java文件中
的方法。
1.ApplicationPackageManager構造
繼續(xù)追溯,看看ServiceManager.getService("package"),PackageManagerService在哪里添加的呢?
在SystemServer里調(diào)用了PackageManagerService的main方法
2.getActivityInfo方法
其實調(diào)用的的是PackageManagerService的getActivityInfo方法
注意“mActivities.mActivities.get(component);”這里的mActivities重復寫了一下,應該是網(wǎng)站的bug,實際代碼應該是“mActivities.get(component);”
mActivities是在scanPackageDirtyLI這個方法里填充mActivities的
最終這個方法是通過 PackageManagerService的構造方法里調(diào)用。
另外有需要云服務器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。