summaryrefslogtreecommitdiffstats
path: root/core/java
diff options
context:
space:
mode:
authorJeff Hao <jeffhao@google.com>2014-09-30 14:41:31 -0700
committerJeff Hao <jeffhao@google.com>2014-10-14 15:02:37 -0700
commitdbfbb17512fe6a5b3c7198d60b6a149969174a71 (patch)
tree4307a0fa92a1f4ae1e5ba0ffcb53f001e6ec5a62 /core/java
parent0a1ffdb3f89705eeeb89349fcd31c82b2d15b0a5 (diff)
downloadframeworks_base-dbfbb17512fe6a5b3c7198d60b6a149969174a71.zip
frameworks_base-dbfbb17512fe6a5b3c7198d60b6a149969174a71.tar.gz
frameworks_base-dbfbb17512fe6a5b3c7198d60b6a149969174a71.tar.bz2
Backport of ordering apps for boot dexopt.
This is a squashed commit of the following changes: 1. Order apps by priority when performing boot dexopt. (cherry picked from commit 65cde7d42d741c7d9aa2714a397b7333f688ab55) 2. Improve priority ordering of apps when performing boot dexopt. Added core apps and updated system apps. (cherry picked from commit 272bf3a274daff62995caf05da338c1f2a73dae3) 3. Stop boot dexopt when low on memory. (cherry picked from commit 1d892dcb6b0ff3a50cc63e387667dc29baf1014f) Bug: 17641843 Change-Id: Ie32f1c21047d3462aaf728f7633fecf647ba2b47
Diffstat (limited to 'core/java')
-rw-r--r--core/java/android/content/pm/PackageInfo.java5
-rw-r--r--core/java/android/content/pm/PackageParser.java5
2 files changed, 10 insertions, 0 deletions
diff --git a/core/java/android/content/pm/PackageInfo.java b/core/java/android/content/pm/PackageInfo.java
index 765b2a9..b66bd01 100644
--- a/core/java/android/content/pm/PackageInfo.java
+++ b/core/java/android/content/pm/PackageInfo.java
@@ -235,6 +235,9 @@ public class PackageInfo implements Parcelable {
public int installLocation = INSTALL_LOCATION_INTERNAL_ONLY;
/** @hide */
+ public boolean coreApp;
+
+ /** @hide */
public boolean requiredForAllUsers;
/** @hide */
@@ -293,6 +296,7 @@ public class PackageInfo implements Parcelable {
dest.writeTypedArray(reqFeatures, parcelableFlags);
dest.writeTypedArray(featureGroups, parcelableFlags);
dest.writeInt(installLocation);
+ dest.writeInt(coreApp ? 1 : 0);
dest.writeInt(requiredForAllUsers ? 1 : 0);
dest.writeString(restrictedAccountType);
dest.writeString(requiredAccountType);
@@ -337,6 +341,7 @@ public class PackageInfo implements Parcelable {
reqFeatures = source.createTypedArray(FeatureInfo.CREATOR);
featureGroups = source.createTypedArray(FeatureGroupInfo.CREATOR);
installLocation = source.readInt();
+ coreApp = source.readInt() != 0;
requiredForAllUsers = source.readInt() != 0;
restrictedAccountType = source.readString();
requiredAccountType = source.readString();
diff --git a/core/java/android/content/pm/PackageParser.java b/core/java/android/content/pm/PackageParser.java
index 3364741..ca4ff6a 100644
--- a/core/java/android/content/pm/PackageParser.java
+++ b/core/java/android/content/pm/PackageParser.java
@@ -415,6 +415,7 @@ public class PackageParser {
pi.sharedUserLabel = p.mSharedUserLabel;
pi.applicationInfo = generateApplicationInfo(p, flags, state, userId);
pi.installLocation = p.installLocation;
+ pi.coreApp = p.coreApp;
if ((pi.applicationInfo.flags&ApplicationInfo.FLAG_SYSTEM) != 0
|| (pi.applicationInfo.flags&ApplicationInfo.FLAG_UPDATED_SYSTEM_APP) != 0) {
pi.requiredForAllUsers = p.mRequiredForAllUsers;
@@ -1384,6 +1385,8 @@ public class PackageParser {
PARSE_DEFAULT_INSTALL_LOCATION);
pkg.applicationInfo.installLocation = pkg.installLocation;
+ pkg.coreApp = attrs.getAttributeBooleanValue(null, "coreApp", false);
+
sa.recycle();
/* Set the global "forward lock" flag */
@@ -4267,6 +4270,8 @@ public class PackageParser {
public int installLocation;
+ public boolean coreApp;
+
/* An app that's required for all users and cannot be uninstalled for a user */
public boolean mRequiredForAllUsers;