¿Cómo obtener la hora actual en el código nativo de Android?

Me preguntaba si hay una manera fácil de obtener la hora actual en código nativo de Android. De manera óptima sería algo comparable a System.getTimeMillies (). Sólo lo usaré para ver cuánto tiempo tomará ciertas llamadas de función, de modo que una variable larga con el tiempo actual en milisegundos sería la solución óptima para mí.

¡Gracias por adelantado!

Para la resolución de microsegundos puede utilizar gettimeofday (). Esto utiliza "tiempo de reloj de pared", que continúa avanzando cuando el dispositivo está dormido, pero está sujeto a cambios bruscos hacia delante o hacia atrás si la red actualiza el reloj del dispositivo.

También puede utilizar clock_gettime (CLOCK_MONOTONIC). Esto utiliza el reloj monótono, que nunca salta hacia adelante o hacia atrás, pero deja de contar cuando el dispositivo duerme.

La resolución real de los temporizadores depende del dispositivo.

Ambos son API POSIX, no específicos de Android.

Para los perezosos, añadir esto a la parte superior de su código:

#include <time.h> // from android samples /* return current time in milliseconds */ static double now_ms(void) { struct timespec res; clock_gettime(CLOCK_REALTIME, &res); return 1000.0 * res.tv_sec + (double) res.tv_nsec / 1e6; } 

Llámelo así:

 double start = now_ms(); // start time // YOUR CODE HERE double end = now_ms(); // finish time double delta = end - start; // time your code took to exec in ms 

Otro para el perezoso, esta función devuelve la hora actual en CLOCK_MONOTONIC usando CLOCK_MONOTONIC

 #include <time.h> #define NANOS_IN_SECOND 1000000000 static long currentTimeInNanos() { struct timespec res; clock_gettime(CLOCK_MONOTONIC, &res); return (res.tv_sec * NANOS_IN_SECOND) + res.tv_nsec; } 
  • Soporte de difusión celular en Android?
  • Función de ventana de ventana nativa Función de búfer que no produce la salida del decodificador Stagefright
  • ¿Cómo orientar múltiples arquitecturas mediante NDK?
  • No se pudo sincronizar el proyecto de Gradle - Android Studio 2.2
  • "Aplicación desconocida ABI:" mientras "depurar como aplicación nativa"
  • ¿Produce código NDK optimizado para múltiples arquitecturas?
  • ¿Cómo funciona NDK en Android - ¿Cuál es la orden que NDK, JNI etc se utilizan?
  • Construyendo FFmpeg para Android para usar argumentos de línea de comandos
  • Android ndk-gdb no carga símbolos
  • Warning: libcryptopp.so: falta DT_SONAME utilizará basename como sustituto
  • ¿Cuáles son las implicaciones de portabilidad de usar el NDK?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.