summaryrefslogtreecommitdiff
path: root/core/java
diff options
context:
space:
mode:
authorRobert Benea <robenea@google.com>2018-05-15 16:36:07 -0700
committerBrad Ebinger <breadley@google.com>2019-06-20 23:27:59 +0000
commit360b2c4434c0bbbb2a56366ae0ac754256bc5407 (patch)
treeb9ec36ef1e0469d9623f81adcecbdbc5e6d7a355 /core/java
parenta6874fccb62e4dee1d1ba63a748be30bf703cdf4 (diff)
Replace HashMap with ArrayMap for services
The number of services is pretty limited (100ish), use the more memory efficient Map. Test: tested on android go Merged-In: I092c6816afba77fde4195c68a211804d4a561b77 Change-Id: I092c6816afba77fde4195c68a211804d4a561b77
Diffstat (limited to 'core/java')
-rw-r--r--core/java/android/app/SystemServiceRegistry.java11
-rw-r--r--core/java/android/os/ServiceManager.java4
2 files changed, 8 insertions, 7 deletions
diff --git a/core/java/android/app/SystemServiceRegistry.java b/core/java/android/app/SystemServiceRegistry.java
index f6b7eefc7864..b19cd1c1ffb3 100644
--- a/core/java/android/app/SystemServiceRegistry.java
+++ b/core/java/android/app/SystemServiceRegistry.java
@@ -150,6 +150,7 @@ import android.telephony.TelephonyManager;
import android.telephony.euicc.EuiccCardManager;
import android.telephony.euicc.EuiccManager;
import android.telephony.ims.RcsManager;
+import android.util.ArrayMap;
import android.util.Log;
import android.view.ContextThemeWrapper;
import android.view.LayoutInflater;
@@ -171,7 +172,7 @@ import com.android.internal.net.INetworkWatchlistManager;
import com.android.internal.os.IDropBoxManagerService;
import com.android.internal.policy.PhoneLayoutInflater;
-import java.util.HashMap;
+import java.util.Map;
/**
* Manages all of the system services that can be returned by {@link Context#getSystemService}.
@@ -182,10 +183,10 @@ final class SystemServiceRegistry {
// Service registry information.
// This information is never changed once static initialization has completed.
- private static final HashMap<Class<?>, String> SYSTEM_SERVICE_NAMES =
- new HashMap<Class<?>, String>();
- private static final HashMap<String, ServiceFetcher<?>> SYSTEM_SERVICE_FETCHERS =
- new HashMap<String, ServiceFetcher<?>>();
+ private static final Map<Class<?>, String> SYSTEM_SERVICE_NAMES =
+ new ArrayMap<Class<?>, String>();
+ private static final Map<String, ServiceFetcher<?>> SYSTEM_SERVICE_FETCHERS =
+ new ArrayMap<String, ServiceFetcher<?>>();
private static int sServiceCacheSize;
// Not instantiable.
diff --git a/core/java/android/os/ServiceManager.java b/core/java/android/os/ServiceManager.java
index b2ba92849133..9a9b0306063b 100644
--- a/core/java/android/os/ServiceManager.java
+++ b/core/java/android/os/ServiceManager.java
@@ -17,13 +17,13 @@
package android.os;
import android.annotation.UnsupportedAppUsage;
+import android.util.ArrayMap;
import android.util.Log;
import com.android.internal.annotations.GuardedBy;
import com.android.internal.os.BinderInternal;
import com.android.internal.util.StatLogger;
-import java.util.HashMap;
import java.util.Map;
/** @hide */
@@ -38,7 +38,7 @@ public final class ServiceManager {
* Cache for the "well known" services, such as WM and AM.
*/
@UnsupportedAppUsage
- private static HashMap<String, IBinder> sCache = new HashMap<String, IBinder>();
+ private static Map<String, IBinder> sCache = new ArrayMap<String, IBinder>();
/**
* We do the "slow log" at most once every this interval.