Loading core/java/android/os/SystemClock.java +15 −7 Original line number Original line Diff line number Diff line Loading @@ -20,6 +20,8 @@ import android.app.IAlarmManager; import android.content.Context; import android.content.Context; import android.util.Slog; import android.util.Slog; import dalvik.annotation.optimization.CriticalNative; /** /** * Core timekeeping facilities. * Core timekeeping facilities. * * Loading Loading @@ -162,6 +164,7 @@ public final class SystemClock { * * * @return milliseconds of non-sleep uptime since boot. * @return milliseconds of non-sleep uptime since boot. */ */ @CriticalNative native public static long uptimeMillis(); native public static long uptimeMillis(); /** /** Loading @@ -169,6 +172,7 @@ public final class SystemClock { * * * @return elapsed milliseconds since boot. * @return elapsed milliseconds since boot. */ */ @CriticalNative native public static long elapsedRealtime(); native public static long elapsedRealtime(); /** /** Loading @@ -176,6 +180,7 @@ public final class SystemClock { * * * @return elapsed nanoseconds since boot. * @return elapsed nanoseconds since boot. */ */ @CriticalNative public static native long elapsedRealtimeNanos(); public static native long elapsedRealtimeNanos(); /** /** Loading @@ -183,6 +188,7 @@ public final class SystemClock { * * * @return elapsed milliseconds in the thread * @return elapsed milliseconds in the thread */ */ @CriticalNative public static native long currentThreadTimeMillis(); public static native long currentThreadTimeMillis(); /** /** Loading @@ -192,6 +198,7 @@ public final class SystemClock { * * * @hide * @hide */ */ @CriticalNative public static native long currentThreadTimeMicro(); public static native long currentThreadTimeMicro(); /** /** Loading @@ -201,5 +208,6 @@ public final class SystemClock { * * * @hide * @hide */ */ @CriticalNative public static native long currentTimeMicro(); public static native long currentTimeMicro(); } } core/jni/android_os_SystemClock.cpp +20 −42 Original line number Original line Diff line number Diff line Loading @@ -36,29 +36,18 @@ namespace android { namespace android { /* static_assert(std::is_same<int64_t, jlong>::value, "jlong isn't an int64_t"); * native public static long uptimeMillis(); static_assert(std::is_same<decltype(uptimeMillis()), int64_t>::value, */ "uptimeMillis signature change, expected int64_t return value"); static jlong android_os_SystemClock_uptimeMillis(JNIEnv* env, static_assert(std::is_same<decltype(elapsedRealtime()), int64_t>::value, jobject clazz) "uptimeMillis signature change, expected int64_t return value"); { static_assert(std::is_same<decltype(elapsedRealtimeNano()), int64_t>::value, return (jlong)uptimeMillis(); "uptimeMillis signature change, expected int64_t return value"); } /* * native public static long elapsedRealtime(); */ static jlong android_os_SystemClock_elapsedRealtime(JNIEnv* env, jobject clazz) { return (jlong)elapsedRealtime(); } /* /* * native public static long currentThreadTimeMillis(); * native public static long currentThreadTimeMillis(); */ */ static jlong android_os_SystemClock_currentThreadTimeMillis(JNIEnv* env, static jlong android_os_SystemClock_currentThreadTimeMillis() jobject clazz) { { struct timespec tm; struct timespec tm; Loading @@ -70,8 +59,7 @@ static jlong android_os_SystemClock_currentThreadTimeMillis(JNIEnv* env, /* /* * native public static long currentThreadTimeMicro(); * native public static long currentThreadTimeMicro(); */ */ static jlong android_os_SystemClock_currentThreadTimeMicro(JNIEnv* env, static jlong android_os_SystemClock_currentThreadTimeMicro() jobject clazz) { { struct timespec tm; struct timespec tm; Loading @@ -83,8 +71,7 @@ static jlong android_os_SystemClock_currentThreadTimeMicro(JNIEnv* env, /* /* * native public static long currentTimeMicro(); * native public static long currentTimeMicro(); */ */ static jlong android_os_SystemClock_currentTimeMicro(JNIEnv* env, static jlong android_os_SystemClock_currentTimeMicro() jobject clazz) { { struct timeval tv; struct timeval tv; Loading @@ -92,32 +79,23 @@ static jlong android_os_SystemClock_currentTimeMicro(JNIEnv* env, return tv.tv_sec * 1000000LL + tv.tv_usec; return tv.tv_sec * 1000000LL + tv.tv_usec; } } /* * public static native long elapsedRealtimeNano(); */ static jlong android_os_SystemClock_elapsedRealtimeNano(JNIEnv* env, jobject clazz) { return (jlong)elapsedRealtimeNano(); } /* /* * JNI registration. * JNI registration. */ */ static const JNINativeMethod gMethods[] = { static const JNINativeMethod gMethods[] = { /* name, signature, funcPtr */ // All of these are @CriticalNative, so we can defer directly to SystemClock.h for { "uptimeMillis", "!()J", // some of these (void*) android_os_SystemClock_uptimeMillis }, { "uptimeMillis", "()J", (void*) uptimeMillis }, { "elapsedRealtime", "!()J", { "elapsedRealtime", "()J", (void*) elapsedRealtime }, (void*) android_os_SystemClock_elapsedRealtime }, { "elapsedRealtimeNanos", "()J", (void*) elapsedRealtimeNano }, { "currentThreadTimeMillis", "!()J", // SystemClock doesn't have an implementation for these that we can directly call { "currentThreadTimeMillis", "()J", (void*) android_os_SystemClock_currentThreadTimeMillis }, (void*) android_os_SystemClock_currentThreadTimeMillis }, { "currentThreadTimeMicro", "!()J", { "currentThreadTimeMicro", "()J", (void*) android_os_SystemClock_currentThreadTimeMicro }, (void*) android_os_SystemClock_currentThreadTimeMicro }, { "currentTimeMicro", "!()J", { "currentTimeMicro", "()J", (void*) android_os_SystemClock_currentTimeMicro }, (void*) android_os_SystemClock_currentTimeMicro }, { "elapsedRealtimeNanos", "!()J", (void*) android_os_SystemClock_elapsedRealtimeNano }, }; }; int register_android_os_SystemClock(JNIEnv* env) int register_android_os_SystemClock(JNIEnv* env) { { Loading Loading
core/java/android/os/SystemClock.java +15 −7 Original line number Original line Diff line number Diff line Loading @@ -20,6 +20,8 @@ import android.app.IAlarmManager; import android.content.Context; import android.content.Context; import android.util.Slog; import android.util.Slog; import dalvik.annotation.optimization.CriticalNative; /** /** * Core timekeeping facilities. * Core timekeeping facilities. * * Loading Loading @@ -162,6 +164,7 @@ public final class SystemClock { * * * @return milliseconds of non-sleep uptime since boot. * @return milliseconds of non-sleep uptime since boot. */ */ @CriticalNative native public static long uptimeMillis(); native public static long uptimeMillis(); /** /** Loading @@ -169,6 +172,7 @@ public final class SystemClock { * * * @return elapsed milliseconds since boot. * @return elapsed milliseconds since boot. */ */ @CriticalNative native public static long elapsedRealtime(); native public static long elapsedRealtime(); /** /** Loading @@ -176,6 +180,7 @@ public final class SystemClock { * * * @return elapsed nanoseconds since boot. * @return elapsed nanoseconds since boot. */ */ @CriticalNative public static native long elapsedRealtimeNanos(); public static native long elapsedRealtimeNanos(); /** /** Loading @@ -183,6 +188,7 @@ public final class SystemClock { * * * @return elapsed milliseconds in the thread * @return elapsed milliseconds in the thread */ */ @CriticalNative public static native long currentThreadTimeMillis(); public static native long currentThreadTimeMillis(); /** /** Loading @@ -192,6 +198,7 @@ public final class SystemClock { * * * @hide * @hide */ */ @CriticalNative public static native long currentThreadTimeMicro(); public static native long currentThreadTimeMicro(); /** /** Loading @@ -201,5 +208,6 @@ public final class SystemClock { * * * @hide * @hide */ */ @CriticalNative public static native long currentTimeMicro(); public static native long currentTimeMicro(); } }
core/jni/android_os_SystemClock.cpp +20 −42 Original line number Original line Diff line number Diff line Loading @@ -36,29 +36,18 @@ namespace android { namespace android { /* static_assert(std::is_same<int64_t, jlong>::value, "jlong isn't an int64_t"); * native public static long uptimeMillis(); static_assert(std::is_same<decltype(uptimeMillis()), int64_t>::value, */ "uptimeMillis signature change, expected int64_t return value"); static jlong android_os_SystemClock_uptimeMillis(JNIEnv* env, static_assert(std::is_same<decltype(elapsedRealtime()), int64_t>::value, jobject clazz) "uptimeMillis signature change, expected int64_t return value"); { static_assert(std::is_same<decltype(elapsedRealtimeNano()), int64_t>::value, return (jlong)uptimeMillis(); "uptimeMillis signature change, expected int64_t return value"); } /* * native public static long elapsedRealtime(); */ static jlong android_os_SystemClock_elapsedRealtime(JNIEnv* env, jobject clazz) { return (jlong)elapsedRealtime(); } /* /* * native public static long currentThreadTimeMillis(); * native public static long currentThreadTimeMillis(); */ */ static jlong android_os_SystemClock_currentThreadTimeMillis(JNIEnv* env, static jlong android_os_SystemClock_currentThreadTimeMillis() jobject clazz) { { struct timespec tm; struct timespec tm; Loading @@ -70,8 +59,7 @@ static jlong android_os_SystemClock_currentThreadTimeMillis(JNIEnv* env, /* /* * native public static long currentThreadTimeMicro(); * native public static long currentThreadTimeMicro(); */ */ static jlong android_os_SystemClock_currentThreadTimeMicro(JNIEnv* env, static jlong android_os_SystemClock_currentThreadTimeMicro() jobject clazz) { { struct timespec tm; struct timespec tm; Loading @@ -83,8 +71,7 @@ static jlong android_os_SystemClock_currentThreadTimeMicro(JNIEnv* env, /* /* * native public static long currentTimeMicro(); * native public static long currentTimeMicro(); */ */ static jlong android_os_SystemClock_currentTimeMicro(JNIEnv* env, static jlong android_os_SystemClock_currentTimeMicro() jobject clazz) { { struct timeval tv; struct timeval tv; Loading @@ -92,32 +79,23 @@ static jlong android_os_SystemClock_currentTimeMicro(JNIEnv* env, return tv.tv_sec * 1000000LL + tv.tv_usec; return tv.tv_sec * 1000000LL + tv.tv_usec; } } /* * public static native long elapsedRealtimeNano(); */ static jlong android_os_SystemClock_elapsedRealtimeNano(JNIEnv* env, jobject clazz) { return (jlong)elapsedRealtimeNano(); } /* /* * JNI registration. * JNI registration. */ */ static const JNINativeMethod gMethods[] = { static const JNINativeMethod gMethods[] = { /* name, signature, funcPtr */ // All of these are @CriticalNative, so we can defer directly to SystemClock.h for { "uptimeMillis", "!()J", // some of these (void*) android_os_SystemClock_uptimeMillis }, { "uptimeMillis", "()J", (void*) uptimeMillis }, { "elapsedRealtime", "!()J", { "elapsedRealtime", "()J", (void*) elapsedRealtime }, (void*) android_os_SystemClock_elapsedRealtime }, { "elapsedRealtimeNanos", "()J", (void*) elapsedRealtimeNano }, { "currentThreadTimeMillis", "!()J", // SystemClock doesn't have an implementation for these that we can directly call { "currentThreadTimeMillis", "()J", (void*) android_os_SystemClock_currentThreadTimeMillis }, (void*) android_os_SystemClock_currentThreadTimeMillis }, { "currentThreadTimeMicro", "!()J", { "currentThreadTimeMicro", "()J", (void*) android_os_SystemClock_currentThreadTimeMicro }, (void*) android_os_SystemClock_currentThreadTimeMicro }, { "currentTimeMicro", "!()J", { "currentTimeMicro", "()J", (void*) android_os_SystemClock_currentTimeMicro }, (void*) android_os_SystemClock_currentTimeMicro }, { "elapsedRealtimeNanos", "!()J", (void*) android_os_SystemClock_elapsedRealtimeNano }, }; }; int register_android_os_SystemClock(JNIEnv* env) int register_android_os_SystemClock(JNIEnv* env) { { Loading