diff options
| author | Robert Benea <robenea@google.com> | 2018-05-15 16:36:07 -0700 |
|---|---|---|
| committer | Brad Ebinger <breadley@google.com> | 2019-06-20 23:27:59 +0000 |
| commit | 360b2c4434c0bbbb2a56366ae0ac754256bc5407 (patch) | |
| tree | b9ec36ef1e0469d9623f81adcecbdbc5e6d7a355 /core/java | |
| parent | a6874fccb62e4dee1d1ba63a748be30bf703cdf4 (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.java | 11 | ||||
| -rw-r--r-- | core/java/android/os/ServiceManager.java | 4 |
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. |
