summaryrefslogtreecommitdiffstats
path: root/core
diff options
context:
space:
mode:
authorJeff Sharkey <jsharkey@android.com>2014-10-28 07:16:25 +0000
committerAndroid Git Automerger <android-git-automerger@android.com>2014-10-28 07:16:25 +0000
commit23801ccafb4ac12581b090bc7838350b169feb8a (patch)
tree3ed1b5ab2c57f8ec504e854bdf7cc4b6e85d1776 /core
parent972c42e34a3470ed04ad34c9f347f196d865b2f9 (diff)
parent1c6659486c7f9a868aaf1c87d08ffd9aa3f750d7 (diff)
downloadframeworks_base-23801ccafb4ac12581b090bc7838350b169feb8a.zip
frameworks_base-23801ccafb4ac12581b090bc7838350b169feb8a.tar.gz
frameworks_base-23801ccafb4ac12581b090bc7838350b169feb8a.tar.bz2
am 1c665948: am e67b8d28: Merge "Reduce PackageManager RAM usage: ArrayMap/Set." into lmp-mr1-dev automerge: 301b563
* commit '1c6659486c7f9a868aaf1c87d08ffd9aa3f750d7': Reduce PackageManager RAM usage: ArrayMap/Set.
Diffstat (limited to 'core')
-rw-r--r--core/java/android/content/pm/PackageParser.java5
-rw-r--r--core/java/android/content/pm/PackageUserState.java12
-rw-r--r--core/java/android/util/ArraySet.java9
3 files changed, 16 insertions, 10 deletions
diff --git a/core/java/android/content/pm/PackageParser.java b/core/java/android/content/pm/PackageParser.java
index ca4ff6a..8515520 100644
--- a/core/java/android/content/pm/PackageParser.java
+++ b/core/java/android/content/pm/PackageParser.java
@@ -74,7 +74,6 @@ import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.Comparator;
-import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Set;
@@ -380,7 +379,7 @@ public class PackageParser {
*/
public static PackageInfo generatePackageInfo(PackageParser.Package p,
int gids[], int flags, long firstInstallTime, long lastUpdateTime,
- HashSet<String> grantedPermissions, PackageUserState state) {
+ ArraySet<String> grantedPermissions, PackageUserState state) {
return generatePackageInfo(p, gids, flags, firstInstallTime, lastUpdateTime,
grantedPermissions, state, UserHandle.getCallingUserId());
@@ -401,7 +400,7 @@ public class PackageParser {
public static PackageInfo generatePackageInfo(PackageParser.Package p,
int gids[], int flags, long firstInstallTime, long lastUpdateTime,
- HashSet<String> grantedPermissions, PackageUserState state, int userId) {
+ ArraySet<String> grantedPermissions, PackageUserState state, int userId) {
if (!checkUseInstalledOrHidden(flags, state)) {
return null;
diff --git a/core/java/android/content/pm/PackageUserState.java b/core/java/android/content/pm/PackageUserState.java
index 4dcad6f..a9c7be3 100644
--- a/core/java/android/content/pm/PackageUserState.java
+++ b/core/java/android/content/pm/PackageUserState.java
@@ -18,7 +18,7 @@ package android.content.pm;
import static android.content.pm.PackageManager.COMPONENT_ENABLED_STATE_DEFAULT;
-import java.util.HashSet;
+import android.util.ArraySet;
/**
* Per-user state information about a package.
@@ -34,8 +34,8 @@ public class PackageUserState {
public String lastDisableAppCaller;
- public HashSet<String> disabledComponents;
- public HashSet<String> enabledComponents;
+ public ArraySet<String> disabledComponents;
+ public ArraySet<String> enabledComponents;
public PackageUserState() {
installed = true;
@@ -51,9 +51,9 @@ public class PackageUserState {
hidden = o.hidden;
lastDisableAppCaller = o.lastDisableAppCaller;
disabledComponents = o.disabledComponents != null
- ? new HashSet<String>(o.disabledComponents) : null;
+ ? new ArraySet<String>(o.disabledComponents) : null;
enabledComponents = o.enabledComponents != null
- ? new HashSet<String>(o.enabledComponents) : null;
+ ? new ArraySet<String>(o.enabledComponents) : null;
blockUninstall = o.blockUninstall;
}
-} \ No newline at end of file
+}
diff --git a/core/java/android/util/ArraySet.java b/core/java/android/util/ArraySet.java
index 423e48b..68f725e 100644
--- a/core/java/android/util/ArraySet.java
+++ b/core/java/android/util/ArraySet.java
@@ -245,13 +245,20 @@ public final class ArraySet<E> implements Collection<E>, Set<E> {
/**
* Create a new ArraySet with the mappings from the given ArraySet.
*/
- public ArraySet(ArraySet set) {
+ public ArraySet(ArraySet<E> set) {
this();
if (set != null) {
addAll(set);
}
}
+ /** {@hide} */
+ public ArraySet(Collection<E> set) {
+ this();
+ if (set != null) {
+ addAll(set);
+ }
+ }
/**
* Make the array map empty. All storage is released.