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:
@@ -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",
|
||||||
|
|||||||
@@ -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},
|
||||||
|
|||||||
@@ -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.
|
||||||
|
|||||||
Reference in New Issue
Block a user