Android: coreApp在manifest中是什么意思
Android: what does coreApp means in the manifest
在清单中,我看到了一个代码
<manifest xmlns:tools="http://schemas.android.com/tools"
package="com.example.test"
xmlns:android="http://schemas.android.com/apk/res/android"
android:versionCode="1"
android:versionName="1.0"
android:sharedUserId="android.uid.system"
coreApp="true">
coreApp 是什么意思?
coreApp="true" 表示应用程序将在特定启动 mod 启用时启动,也许 "Safe mode":
The system can successfully boot (though a little painfully) with
only framework-res.apk, SettingsProvider.apk, SystemUI.apk,
DefaultContainerService.apk, and Launcher2.apk set as core apps.
来自 Android Git 存储库:
https://android.googlesource.com/platform/frameworks/base/+/d2509fd83597595914ef0627685e917380863eb6%5E!/
根据Android-8.0代码com.android.server.SystemServer#startBootstrapServices
// Only run "core" apps if we're encrypting the device.
String cryptState = SystemProperties.get("vold.decrypt");
if (ENCRYPTING_STATE.equals(cryptState)) {
Slog.w(TAG, "Detected encryption in progress - only parsing core apps");
mOnlyCore = true;
} else if (ENCRYPTED_STATE.equals(cryptState)) {
Slog.w(TAG, "Device encrypted - only parsing core apps");
mOnlyCore = true;
}
// Start the package manager.
if (!mRuntimeRestart) {
MetricsLogger.histogram(null, "boot_package_manager_init_start",
(int) SystemClock.elapsedRealtime());
}
traceBeginAndSlog("StartPackageManagerService");
mPackageManagerService = PackageManagerService.main(mSystemContext, installer,
mFactoryTestMode != FactoryTest.FACTORY_TEST_OFF, mOnlyCore);
mFirstBoot = mPackageManagerService.isFirstBoot();
mPackageManager = mSystemContext.getPackageManager();
traceEnd();
在清单中,我看到了一个代码
<manifest xmlns:tools="http://schemas.android.com/tools"
package="com.example.test"
xmlns:android="http://schemas.android.com/apk/res/android"
android:versionCode="1"
android:versionName="1.0"
android:sharedUserId="android.uid.system"
coreApp="true">
coreApp 是什么意思?
coreApp="true" 表示应用程序将在特定启动 mod 启用时启动,也许 "Safe mode":
The system can successfully boot (though a little painfully) with only framework-res.apk, SettingsProvider.apk, SystemUI.apk, DefaultContainerService.apk, and Launcher2.apk set as core apps.
来自 Android Git 存储库: https://android.googlesource.com/platform/frameworks/base/+/d2509fd83597595914ef0627685e917380863eb6%5E!/
根据Android-8.0代码com.android.server.SystemServer#startBootstrapServices
// Only run "core" apps if we're encrypting the device.
String cryptState = SystemProperties.get("vold.decrypt");
if (ENCRYPTING_STATE.equals(cryptState)) {
Slog.w(TAG, "Detected encryption in progress - only parsing core apps");
mOnlyCore = true;
} else if (ENCRYPTED_STATE.equals(cryptState)) {
Slog.w(TAG, "Device encrypted - only parsing core apps");
mOnlyCore = true;
}
// Start the package manager.
if (!mRuntimeRestart) {
MetricsLogger.histogram(null, "boot_package_manager_init_start",
(int) SystemClock.elapsedRealtime());
}
traceBeginAndSlog("StartPackageManagerService");
mPackageManagerService = PackageManagerService.main(mSystemContext, installer,
mFactoryTestMode != FactoryTest.FACTORY_TEST_OFF, mOnlyCore);
mFirstBoot = mPackageManagerService.isFirstBoot();
mPackageManager = mSystemContext.getPackageManager();
traceEnd();