¿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!
- Conversión YUV a RGB y visualización utilizando opengl es 2.0 de android ndk usando shaders
- ¿Cómo apuntar OpenSSL a los certificados raíz de un dispositivo Android?
- De repente, la hormiga / carpeta no aparece en el SDK de Android. Google lo eliminó?
- Android Studio - Biblioteca de módulos App + NDK
- Cómo utilizar android ndk r9b para compilar FFMPEG para Android
- La aplicación se bloquea en el emulador al cargar la biblioteca compartida nativa, pero funciona bien en un dispositivo físico
- Biblioteca Android NDK: findLibrary devuelto null
- GetFilesDir () de NDK?
- Bloquear el cuadro de diálogo desde el código JNI
- Android obtener el tamaño de la pantalla a través de C
- Depuración de aplicaciones nativas de Android NDK
- ¿Es posible usar la biblioteca OpenMP con Android NDK?
- Android: La forma más eficiente de pasar algunos bytes de sólo lectura a C ++ nativo
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; }
- "No se puede abrir el dispositivo de registro" dev / log / main "" error?
- Cómo establecer el porcentaje de ancho para una actividad de diálogo con temas