summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--apex/statsd/Android.bp35
-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.bp1
-rw-r--r--core/jni/AndroidRuntime.cpp2
-rw-r--r--native/android/Android.bp1
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",