1. Phone 进程初始化的对象
由于Android平台应有的配置信息定义在自身的AndroidManifest.xml,当某一应用启动时,PackageManagerService 通过解析配置文件中的配置属性,来确保应用的正常启动。
查看/packages/services/Telephony/AndroidManifest.xml
<manifest xmlns:android="http://schemas.android.com/apk/res/android" xmlns:androidprv="http://schemas.android.com/apk/prv/res/android" package="com.android.phone" coreApp="true" android:sharedUserId="android.uid.phone" android:sharedUserLabel="@string/phoneAppLabel" >
....
<application android:name="PhoneApp" android:persistent="true" android:label="@string/phoneAppLabel" android:icon="@mipmap/ic_launcher_phone" android:allowBackup="false" android:supportsRtl="true" android:usesCleartextTraffic="true" android:defaultToDeviceProtectedStorage="true" android:directBootAware="true">
有如下几个属性值得特别关注 ,详情见应用清单概览 | Android 开发者 | Android Developers
package
coreApp
android:shareUserId
android:persistent
延伸问题:
- 如何解读AndroidManifest.xml 呢? 哪些属性跟PMS 启动应用相关呢?
- PMS 是怎么去启动应用的呢?换成其他应用该怎么启动呢?
2.System 进程初始化的对象