PhoneApp是什么時候被創建的


PhoneApp作為Android系統中首屈一指的Application,其在創建的時候會構造出對整個系統來說至關重要的ril.java的實體,在這個rilj構造出來后,會與底層的rild connect上,並且連通他們之間通信的socket,這樣手機的通話、短信功能才可用;

PhoneApp如此重要和基礎,其是在哪里被創建出來的呢,(在一位同事的幫助下,終於找到了)

首先需要注意下在Phone的AndroidManifest.xml文件中,定義了PhoneApp的一些屬性:

   <application android:name="PhoneApp"
android:persistent
="true"
android:label
="@string/dialerIconLabel"
android:icon
="@drawable/ic_launcher_phone">


注意黑色加粗部分;

 

ActivityManagerService.java里的 SystemReady函數的最后有以下代碼:

                    List apps = AppGlobals.getPackageManager().
getPersistentApplications(STOCK_PM_FLAGS);
if (apps != null) {
int N = apps.size();
int i;
for (i=0; i<N; i++) {
ApplicationInfo info
= (ApplicationInfo)apps.get(i);
if (info != null &&
!info.packageName.equals("android")) {
addAppLocked(info);
}
}
}

加粗的函數getPersistentApplications可以get到phoneapp的info,然后使用函數addAppLocked把PhoneApp啟動起來~

 

這里就是PhoneApp被最先搞起來的地方~



免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM