PhoneApp是什麼時候被建立的

來源:互聯網
上載者:User

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被最先搞起來的地方~


聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.