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 Change-Id: I092c6816afba77fde4195c68a211804d4a561b77
This commit is contained in:
@@ -1842,7 +1842,7 @@ Landroid/os/ServiceManager;->checkService(Ljava/lang/String;)Landroid/os/IBinder
|
|||||||
Landroid/os/ServiceManager;->getIServiceManager()Landroid/os/IServiceManager;
|
Landroid/os/ServiceManager;->getIServiceManager()Landroid/os/IServiceManager;
|
||||||
Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
|
Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
|
||||||
Landroid/os/ServiceManager;->listServices()[Ljava/lang/String;
|
Landroid/os/ServiceManager;->listServices()[Ljava/lang/String;
|
||||||
Landroid/os/ServiceManager;->sCache:Ljava/util/HashMap;
|
Landroid/os/ServiceManager;->sCache:Ljava/util/Map;
|
||||||
Landroid/os/ServiceManager;->sServiceManager:Landroid/os/IServiceManager;
|
Landroid/os/ServiceManager;->sServiceManager:Landroid/os/IServiceManager;
|
||||||
Landroid/os/ServiceManagerNative;->asInterface(Landroid/os/IBinder;)Landroid/os/IServiceManager;
|
Landroid/os/ServiceManagerNative;->asInterface(Landroid/os/IBinder;)Landroid/os/IServiceManager;
|
||||||
Landroid/os/SharedMemory;->getFd()I
|
Landroid/os/SharedMemory;->getFd()I
|
||||||
|
|||||||
@@ -141,6 +141,7 @@ import android.telephony.SubscriptionManager;
|
|||||||
import android.telephony.TelephonyManager;
|
import android.telephony.TelephonyManager;
|
||||||
import android.telephony.euicc.EuiccCardManager;
|
import android.telephony.euicc.EuiccCardManager;
|
||||||
import android.telephony.euicc.EuiccManager;
|
import android.telephony.euicc.EuiccManager;
|
||||||
|
import android.util.ArrayMap;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
import android.view.ContextThemeWrapper;
|
import android.view.ContextThemeWrapper;
|
||||||
import android.view.LayoutInflater;
|
import android.view.LayoutInflater;
|
||||||
@@ -162,7 +163,7 @@ import com.android.internal.net.INetworkWatchlistManager;
|
|||||||
import com.android.internal.os.IDropBoxManagerService;
|
import com.android.internal.os.IDropBoxManagerService;
|
||||||
import com.android.internal.policy.PhoneLayoutInflater;
|
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}.
|
* Manages all of the system services that can be returned by {@link Context#getSystemService}.
|
||||||
@@ -173,10 +174,10 @@ final class SystemServiceRegistry {
|
|||||||
|
|
||||||
// Service registry information.
|
// Service registry information.
|
||||||
// This information is never changed once static initialization has completed.
|
// This information is never changed once static initialization has completed.
|
||||||
private static final HashMap<Class<?>, String> SYSTEM_SERVICE_NAMES =
|
private static final Map<Class<?>, String> SYSTEM_SERVICE_NAMES =
|
||||||
new HashMap<Class<?>, String>();
|
new ArrayMap<Class<?>, String>();
|
||||||
private static final HashMap<String, ServiceFetcher<?>> SYSTEM_SERVICE_FETCHERS =
|
private static final Map<String, ServiceFetcher<?>> SYSTEM_SERVICE_FETCHERS =
|
||||||
new HashMap<String, ServiceFetcher<?>>();
|
new ArrayMap<String, ServiceFetcher<?>>();
|
||||||
private static int sServiceCacheSize;
|
private static int sServiceCacheSize;
|
||||||
|
|
||||||
// Not instantiable.
|
// Not instantiable.
|
||||||
|
|||||||
@@ -16,13 +16,13 @@
|
|||||||
|
|
||||||
package android.os;
|
package android.os;
|
||||||
|
|
||||||
|
import android.util.ArrayMap;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
|
|
||||||
import com.android.internal.annotations.GuardedBy;
|
import com.android.internal.annotations.GuardedBy;
|
||||||
import com.android.internal.os.BinderInternal;
|
import com.android.internal.os.BinderInternal;
|
||||||
import com.android.internal.util.StatLogger;
|
import com.android.internal.util.StatLogger;
|
||||||
|
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
/** @hide */
|
/** @hide */
|
||||||
@@ -35,7 +35,7 @@ public final class ServiceManager {
|
|||||||
/**
|
/**
|
||||||
* Cache for the "well known" services, such as WM and AM.
|
* Cache for the "well known" services, such as WM and AM.
|
||||||
*/
|
*/
|
||||||
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.
|
* We do the "slow log" at most once every this interval.
|
||||||
|
|||||||
Reference in New Issue
Block a user