Merge "Add memtrackproxy system server service" am: 6157f7be74

Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1656390

Change-Id: Ib30e08c4f8eba339f40e05e9c25769ed0155bca2
This commit is contained in:
Kalesh Singh
2021-04-07 16:09:34 +00:00
committed by Automerger Merge Worker
3 changed files with 34 additions and 0 deletions

View File

@@ -102,6 +102,7 @@ cc_defaults {
"libaudioclient", "libaudioclient",
"libbase", "libbase",
"libappfuse", "libappfuse",
"libbinder_ndk",
"libbinder", "libbinder",
"libcutils", "libcutils",
"libcrypto", "libcrypto",
@@ -110,6 +111,7 @@ cc_defaults {
"libhardware", "libhardware",
"libhardware_legacy", "libhardware_legacy",
"libhidlbase", "libhidlbase",
"libmemtrackproxy",
"libmtp", "libmtp",
"libnativehelper", "libnativehelper",
"libprocessgroup", "libprocessgroup",
@@ -154,6 +156,7 @@ cc_defaults {
"android.hardware.input.classifier@1.0", "android.hardware.input.classifier@1.0",
"android.hardware.ir@1.0", "android.hardware.ir@1.0",
"android.hardware.light@2.0", "android.hardware.light@2.0",
"android.hardware.memtrack-V1-ndk_platform",
"android.hardware.power@1.0", "android.hardware.power@1.0",
"android.hardware.power@1.1", "android.hardware.power@1.1",
"android.hardware.power-V1-cpp", "android.hardware.power-V1-cpp",

View File

@@ -23,11 +23,14 @@
#include <jni.h> #include <jni.h>
#include <nativehelper/JNIHelp.h> #include <nativehelper/JNIHelp.h>
#include <android/binder_manager.h>
#include <android/binder_stability.h>
#include <android/hidl/manager/1.2/IServiceManager.h> #include <android/hidl/manager/1.2/IServiceManager.h>
#include <binder/IServiceManager.h> #include <binder/IServiceManager.h>
#include <hidl/HidlTransportSupport.h> #include <hidl/HidlTransportSupport.h>
#include <incremental_service.h> #include <incremental_service.h>
#include <memtrackproxy/MemtrackProxy.h>
#include <schedulerservice/SchedulingPolicyService.h> #include <schedulerservice/SchedulingPolicyService.h>
#include <sensorservice/SensorService.h> #include <sensorservice/SensorService.h>
#include <sensorservicehidl/SensorManager.h> #include <sensorservicehidl/SensorManager.h>
@@ -57,6 +60,21 @@ static void android_server_SystemServer_startSensorService(JNIEnv* /* env */, jo
} }
static void android_server_SystemServer_startMemtrackProxyService(JNIEnv* env,
jobject /* clazz */) {
using aidl::android::hardware::memtrack::MemtrackProxy;
const char* memtrackProxyService = "memtrack.proxy";
std::shared_ptr<MemtrackProxy> memtrack_proxy = ndk::SharedRefBase::make<MemtrackProxy>();
auto binder = memtrack_proxy->asBinder();
AIBinder_forceDowngradeToLocalStability(binder.get());
const binder_exception_t err = AServiceManager_addService(binder.get(), memtrackProxyService);
LOG_ALWAYS_FATAL_IF(err != EX_NONE, "Cannot register %s: %d", memtrackProxyService, err);
}
static void android_server_SystemServer_startHidlServices(JNIEnv* env, jobject /* clazz */) { static void android_server_SystemServer_startHidlServices(JNIEnv* env, jobject /* clazz */) {
using ::android::frameworks::schedulerservice::V1_0::ISchedulingPolicyService; using ::android::frameworks::schedulerservice::V1_0::ISchedulingPolicyService;
using ::android::frameworks::schedulerservice::V1_0::implementation::SchedulingPolicyService; using ::android::frameworks::schedulerservice::V1_0::implementation::SchedulingPolicyService;
@@ -121,6 +139,8 @@ static void android_server_SystemServer_setIncrementalServiceSystemReady(JNIEnv*
static const JNINativeMethod gMethods[] = { static const JNINativeMethod gMethods[] = {
/* name, signature, funcPtr */ /* name, signature, funcPtr */
{"startSensorService", "()V", (void*)android_server_SystemServer_startSensorService}, {"startSensorService", "()V", (void*)android_server_SystemServer_startSensorService},
{"startMemtrackProxyService", "()V",
(void*)android_server_SystemServer_startMemtrackProxyService},
{"startHidlServices", "()V", (void*)android_server_SystemServer_startHidlServices}, {"startHidlServices", "()V", (void*)android_server_SystemServer_startHidlServices},
{"initZygoteChildHeapProfiling", "()V", {"initZygoteChildHeapProfiling", "()V",
(void*)android_server_SystemServer_initZygoteChildHeapProfiling}, (void*)android_server_SystemServer_initZygoteChildHeapProfiling},

View File

@@ -392,6 +392,11 @@ public final class SystemServer {
*/ */
private static native void startSensorService(); private static native void startSensorService();
/**
* Start the memtrack proxy service.
*/
private static native void startMemtrackProxyService();
/** /**
* Start all HIDL services that are run inside the system server. This may take some time. * Start all HIDL services that are run inside the system server. This may take some time.
*/ */
@@ -830,6 +835,12 @@ public final class SystemServer {
mSystemServiceManager.startService(UriGrantsManagerService.Lifecycle.class); mSystemServiceManager.startService(UriGrantsManagerService.Lifecycle.class);
t.traceEnd(); t.traceEnd();
// Start MemtrackProxyService before ActivityManager, so that early calls
// to Memtrack::getMemory() don't fail.
t.traceBegin("MemtrackProxyService");
startMemtrackProxyService();
t.traceEnd();
// Activity manager runs the show. // Activity manager runs the show.
t.traceBegin("StartActivityManager"); t.traceBegin("StartActivityManager");
// TODO: Might need to move after migration to WM. // TODO: Might need to move after migration to WM.