[TeX] Extracted Utils API for Telemetry Express Logging APIs
- hashString API moved to utils to be used by Histogram metric APIs Bug: 262791652 Test: m Change-Id: Ic049083c6e19c045e6f743e3bc96e1fc15ed4533 Merged-In: Ic049083c6e19c045e6f743e3bc96e1fc15ed4533
This commit is contained in:
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (C) 2022 The Android Open Source Project
|
* Copyright (C) 2023 The Android Open Source Project
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
@@ -39,9 +39,7 @@ public final class Counter {
|
|||||||
* @hide
|
* @hide
|
||||||
*/
|
*/
|
||||||
public static void logIncrement(@NonNull String metricId, long amount) {
|
public static void logIncrement(@NonNull String metricId, long amount) {
|
||||||
final long metricIdHash = hashString(metricId);
|
final long metricIdHash = Utils.hashString(metricId);
|
||||||
FrameworkStatsLog.write(FrameworkStatsLog.EXPRESS_EVENT_REPORTED, metricIdHash, amount);
|
FrameworkStatsLog.write(FrameworkStatsLog.EXPRESS_EVENT_REPORTED, metricIdHash, amount);
|
||||||
}
|
}
|
||||||
|
|
||||||
private static native long hashString(String stringToHash);
|
|
||||||
}
|
}
|
||||||
|
|||||||
21
core/java/com/android/internal/expresslog/Utils.java
Normal file
21
core/java/com/android/internal/expresslog/Utils.java
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (C) 2023 The Android Open Source Project
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package com.android.internal.expresslog;
|
||||||
|
|
||||||
|
final class Utils {
|
||||||
|
static native long hashString(String stringToHash);
|
||||||
|
}
|
||||||
@@ -215,7 +215,7 @@ cc_library_shared {
|
|||||||
"android_content_res_Configuration.cpp",
|
"android_content_res_Configuration.cpp",
|
||||||
"android_security_Scrypt.cpp",
|
"android_security_Scrypt.cpp",
|
||||||
"com_android_internal_content_om_OverlayConfig.cpp",
|
"com_android_internal_content_om_OverlayConfig.cpp",
|
||||||
"com_android_internal_expresslog_Counter.cpp",
|
"com_android_internal_expresslog_Utils.cpp",
|
||||||
"com_android_internal_net_NetworkUtilsInternal.cpp",
|
"com_android_internal_net_NetworkUtilsInternal.cpp",
|
||||||
"com_android_internal_os_ClassLoaderFactory.cpp",
|
"com_android_internal_os_ClassLoaderFactory.cpp",
|
||||||
"com_android_internal_os_FuseAppLoop.cpp",
|
"com_android_internal_os_FuseAppLoop.cpp",
|
||||||
|
|||||||
@@ -196,7 +196,7 @@ extern int register_android_security_Scrypt(JNIEnv *env);
|
|||||||
extern int register_com_android_internal_content_F2fsUtils(JNIEnv* env);
|
extern int register_com_android_internal_content_F2fsUtils(JNIEnv* env);
|
||||||
extern int register_com_android_internal_content_NativeLibraryHelper(JNIEnv *env);
|
extern int register_com_android_internal_content_NativeLibraryHelper(JNIEnv *env);
|
||||||
extern int register_com_android_internal_content_om_OverlayConfig(JNIEnv *env);
|
extern int register_com_android_internal_content_om_OverlayConfig(JNIEnv *env);
|
||||||
extern int register_com_android_internal_expresslog_Counter(JNIEnv* env);
|
extern int register_com_android_internal_expresslog_Utils(JNIEnv* env);
|
||||||
extern int register_com_android_internal_net_NetworkUtilsInternal(JNIEnv* env);
|
extern int register_com_android_internal_net_NetworkUtilsInternal(JNIEnv* env);
|
||||||
extern int register_com_android_internal_os_ClassLoaderFactory(JNIEnv* env);
|
extern int register_com_android_internal_os_ClassLoaderFactory(JNIEnv* env);
|
||||||
extern int register_com_android_internal_os_FuseAppLoop(JNIEnv* env);
|
extern int register_com_android_internal_os_FuseAppLoop(JNIEnv* env);
|
||||||
@@ -1591,7 +1591,7 @@ static const RegJNIRec gRegJNI[] = {
|
|||||||
REG_JNI(register_android_os_SharedMemory),
|
REG_JNI(register_android_os_SharedMemory),
|
||||||
REG_JNI(register_android_os_incremental_IncrementalManager),
|
REG_JNI(register_android_os_incremental_IncrementalManager),
|
||||||
REG_JNI(register_com_android_internal_content_om_OverlayConfig),
|
REG_JNI(register_com_android_internal_content_om_OverlayConfig),
|
||||||
REG_JNI(register_com_android_internal_expresslog_Counter),
|
REG_JNI(register_com_android_internal_expresslog_Utils),
|
||||||
REG_JNI(register_com_android_internal_net_NetworkUtilsInternal),
|
REG_JNI(register_com_android_internal_net_NetworkUtilsInternal),
|
||||||
REG_JNI(register_com_android_internal_os_ClassLoaderFactory),
|
REG_JNI(register_com_android_internal_os_ClassLoaderFactory),
|
||||||
REG_JNI(register_com_android_internal_os_LongArrayMultiStateCounter),
|
REG_JNI(register_com_android_internal_os_LongArrayMultiStateCounter),
|
||||||
|
|||||||
@@ -26,7 +26,7 @@
|
|||||||
static jclass g_stringClass = nullptr;
|
static jclass g_stringClass = nullptr;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Class: com_android_internal_expresslog_Counter
|
* Class: com_android_internal_expresslog_Utils
|
||||||
* Method: hashString
|
* Method: hashString
|
||||||
* Signature: (Ljava/lang/String;)J
|
* Signature: (Ljava/lang/String;)J
|
||||||
*/
|
*/
|
||||||
@@ -43,15 +43,15 @@ static const JNINativeMethod g_methods[] = {
|
|||||||
{"hashString", "(Ljava/lang/String;)J", (void*)hashString},
|
{"hashString", "(Ljava/lang/String;)J", (void*)hashString},
|
||||||
};
|
};
|
||||||
|
|
||||||
static const char* const kCounterPathName = "com/android/internal/expresslog/Counter";
|
static const char* const kUtilsPathName = "com/android/internal/expresslog/Utils";
|
||||||
|
|
||||||
namespace android {
|
namespace android {
|
||||||
|
|
||||||
int register_com_android_internal_expresslog_Counter(JNIEnv* env) {
|
int register_com_android_internal_expresslog_Utils(JNIEnv* env) {
|
||||||
jclass stringClass = FindClassOrDie(env, "java/lang/String");
|
jclass stringClass = FindClassOrDie(env, "java/lang/String");
|
||||||
g_stringClass = MakeGlobalRefOrDie(env, stringClass);
|
g_stringClass = MakeGlobalRefOrDie(env, stringClass);
|
||||||
|
|
||||||
return RegisterMethodsOrDie(env, kCounterPathName, g_methods, NELEM(g_methods));
|
return RegisterMethodsOrDie(env, kUtilsPathName, g_methods, NELEM(g_methods));
|
||||||
}
|
}
|
||||||
|
|
||||||
} // namespace android
|
} // namespace android
|
||||||
Reference in New Issue
Block a user