diff options
-rw-r--r-- | apex/statsd/Android.bp | 35 | ||||
-rw-r--r-- | apex/statsd/jni/android_util_StatsLog.cpp (renamed from core/jni/android_util_StatsLog.cpp) | 29 | ||||
-rw-r--r-- | core/jni/Android.bp | 1 | ||||
-rw-r--r-- | core/jni/AndroidRuntime.cpp | 2 | ||||
-rw-r--r-- | native/android/Android.bp | 1 |
5 files changed, 57 insertions, 11 deletions
diff --git a/apex/statsd/Android.bp b/apex/statsd/Android.bp index 09ca1d257460..1f9f18cd051a 100644 --- a/apex/statsd/Android.bp +++ b/apex/statsd/Android.bp @@ -19,8 +19,9 @@ apex { } apex_defaults { - // libc.so and libcutils.so are included in the apex - // native_shared_libs: ["libc", "libcutils"], + native_shared_libs: [ + "libstats_jni", + ], // binaries: ["vold"], java_libs: [ "framework-statsd", @@ -44,3 +45,33 @@ android_app_certificate { // com.android.os.statsd.pk8 (the private key) certificate: "com.android.os.statsd", } + + +// JNI library for StatsLog.write +cc_library_shared { + name: "libstats_jni", + srcs: ["jni/**/*.cpp"], + shared_libs: [ + "libnativehelper", // Has stable abi - should not be copied into apex. + "liblog", // Has a stable abi - should not be copied into apex. + ], + static_libs: [ + //TODO: make shared - need libstatssocket to also live in the apex. + "libstatssocket", + "libcutils", // TODO: remove - needed by libstatssocket + ], + //TODO: is libc++_static correct? + stl: "libc++_static", + cflags: [ + "-Wall", + "-Werror", + "-Wextra", + "-Wno-unused-parameter", + ], + apex_available: [ + "com.android.os.statsd", + "test_com.android.os.statsd", + //TODO (b/148620413): remove platform. + "//apex_available:platform", + ], +}
\ No newline at end of file diff --git a/core/jni/android_util_StatsLog.cpp b/apex/statsd/jni/android_util_StatsLog.cpp index 9225fc2839d0..9d410eb1f836 100644 --- a/core/jni/android_util_StatsLog.cpp +++ b/apex/statsd/jni/android_util_StatsLog.cpp @@ -17,12 +17,9 @@ #define LOG_NAMESPACE "StatsLog.tag." #define LOG_TAG "StatsLog_println" -#include <assert.h> - #include "jni.h" +#include <log/log.h> #include <nativehelper/JNIHelp.h> -#include "utils/misc.h" -#include "core_jni_helpers.h" #include "stats_buffer_writer.h" namespace android { @@ -57,7 +54,27 @@ static const JNINativeMethod gMethods[] = { int register_android_util_StatsLog(JNIEnv* env) { - return RegisterMethodsOrDie(env, "android/util/StatsLog", gMethods, NELEM(gMethods)); + return jniRegisterNativeMethods(env, "android/util/StatsLog", gMethods, NELEM(gMethods)); } - }; // namespace android + +/* + * JNI Initialization + */ +jint JNI_OnLoad(JavaVM* jvm, void* reserved) { + JNIEnv* e; + int status; + + ALOGV("statsd : loading JNI\n"); + // Check JNI version + if (jvm->GetEnv((void**)&e, JNI_VERSION_1_4)) { + ALOGE("JNI version mismatch error"); + return JNI_ERR; + } + status = android::register_android_util_StatsLog(e); + if (status < 0) { + ALOGE("jni statsd registration failure, status: %d", status); + return JNI_ERR; + } + return JNI_VERSION_1_4; +} diff --git a/core/jni/Android.bp b/core/jni/Android.bp index a2f514a85ff8..c04efa3be596 100644 --- a/core/jni/Android.bp +++ b/core/jni/Android.bp @@ -147,7 +147,6 @@ cc_library_shared { "android_service_DataLoaderService.cpp", "android_util_AssetManager.cpp", "android_util_Binder.cpp", - "android_util_StatsLog.cpp", "android_util_MemoryIntArray.cpp", "android_util_Process.cpp", "android_util_StringBlock.cpp", diff --git a/core/jni/AndroidRuntime.cpp b/core/jni/AndroidRuntime.cpp index 9783b655e057..790ac080e705 100644 --- a/core/jni/AndroidRuntime.cpp +++ b/core/jni/AndroidRuntime.cpp @@ -108,7 +108,6 @@ namespace android { extern int register_android_app_admin_SecurityLog(JNIEnv* env); extern int register_android_content_AssetManager(JNIEnv* env); extern int register_android_util_EventLog(JNIEnv* env); -extern int register_android_util_StatsLog(JNIEnv* env); extern int register_android_util_StatsLogInternal(JNIEnv* env); extern int register_android_util_Log(JNIEnv* env); extern int register_android_util_MemoryIntArray(JNIEnv* env); @@ -1441,7 +1440,6 @@ static const RegJNIRec gRegJNI[] = { REG_JNI(register_android_util_EventLog), REG_JNI(register_android_util_Log), REG_JNI(register_android_util_MemoryIntArray), - REG_JNI(register_android_util_StatsLog), REG_JNI(register_android_util_StatsLogInternal), REG_JNI(register_android_app_admin_SecurityLog), REG_JNI(register_android_content_AssetManager), diff --git a/native/android/Android.bp b/native/android/Android.bp index 0c6f507787d9..34ab7a0a0770 100644 --- a/native/android/Android.bp +++ b/native/android/Android.bp @@ -64,6 +64,7 @@ cc_library_shared { "libgui", "libharfbuzz_ng", // Only for including hb.h via minikin "libsensor", + "libstats_jni", "libandroid_runtime", "libminikin", "libnetd_client", |