zoukankan      html  css  js  c++  java
  • 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被最先搞起来的地方~


  • 相关阅读:
    poj 1840(五元三次方程组)
    Selenium(二)开发环境的搭建
    Selenium(一)自动化测试简介
    (二)AppScan使用教程
    (一)AppScan的安装及破解
    (一)python3.7的安装
    读完《大道至简》后的反思
    BZOJ3585: mex
    BZOJ3544: [ONTAK2010]Creative Accounting
    BZOJ3531: [Sdoi2014]旅行
  • 原文地址:https://www.cnblogs.com/flyme/p/2306136.html
Copyright © 2011-2022 走看看