Reduce PackageManager RAM usage: ArrayMap/Set.

Transition PackageManager internals away from heavier HashMap/HashSet
to use drop-in ArrayMap/ArraySet replacements.  Saves ~38% RAM and
thousands of objects on a typical device.

Bug: 18115729
Change-Id: Ie107d2fee4b7baa4e3c3923231b4be877d1a5d2f
diff --git a/services/core/java/com/android/server/pm/PackageSettingBase.java b/services/core/java/com/android/server/pm/PackageSettingBase.java
index bf13fd9..1dcadb4 100644
--- a/services/core/java/com/android/server/pm/PackageSettingBase.java
+++ b/services/core/java/com/android/server/pm/PackageSettingBase.java
@@ -21,10 +21,10 @@
 import static android.content.pm.PackageManager.COMPONENT_ENABLED_STATE_ENABLED;
 
 import android.content.pm.PackageUserState;
+import android.util.ArraySet;
 import android.util.SparseArray;
 
 import java.io.File;
-import java.util.HashSet;
 
 /**
  * Settings base class for pending and resolved classes.
@@ -321,8 +321,8 @@
 
     void setUserState(int userId, int enabled, boolean installed, boolean stopped,
             boolean notLaunched, boolean hidden,
-            String lastDisableAppCaller, HashSet<String> enabledComponents,
-            HashSet<String> disabledComponents, boolean blockUninstall) {
+            String lastDisableAppCaller, ArraySet<String> enabledComponents,
+            ArraySet<String> disabledComponents, boolean blockUninstall) {
         PackageUserState state = modifyUserState(userId);
         state.enabled = enabled;
         state.installed = installed;
@@ -335,39 +335,39 @@
         state.blockUninstall = blockUninstall;
     }
 
-    HashSet<String> getEnabledComponents(int userId) {
+    ArraySet<String> getEnabledComponents(int userId) {
         return readUserState(userId).enabledComponents;
     }
 
-    HashSet<String> getDisabledComponents(int userId) {
+    ArraySet<String> getDisabledComponents(int userId) {
         return readUserState(userId).disabledComponents;
     }
 
-    void setEnabledComponents(HashSet<String> components, int userId) {
+    void setEnabledComponents(ArraySet<String> components, int userId) {
         modifyUserState(userId).enabledComponents = components;
     }
 
-    void setDisabledComponents(HashSet<String> components, int userId) {
+    void setDisabledComponents(ArraySet<String> components, int userId) {
         modifyUserState(userId).disabledComponents = components;
     }
 
-    void setEnabledComponentsCopy(HashSet<String> components, int userId) {
+    void setEnabledComponentsCopy(ArraySet<String> components, int userId) {
         modifyUserState(userId).enabledComponents = components != null
-                ? new HashSet<String>(components) : null;
+                ? new ArraySet<String>(components) : null;
     }
 
-    void setDisabledComponentsCopy(HashSet<String> components, int userId) {
+    void setDisabledComponentsCopy(ArraySet<String> components, int userId) {
         modifyUserState(userId).disabledComponents = components != null
-                ? new HashSet<String>(components) : null;
+                ? new ArraySet<String>(components) : null;
     }
 
     PackageUserState modifyUserStateComponents(int userId, boolean disabled, boolean enabled) {
         PackageUserState state = modifyUserState(userId);
         if (disabled && state.disabledComponents == null) {
-            state.disabledComponents = new HashSet<String>(1);
+            state.disabledComponents = new ArraySet<String>(1);
         }
         if (enabled && state.enabledComponents == null) {
-            state.enabledComponents = new HashSet<String>(1);
+            state.enabledComponents = new ArraySet<String>(1);
         }
         return state;
     }