Sto cercando un modo per ottenere il timer ad alta risoluzione (sorgente di clock) su Android. Questo deve essere nel codice nativo e può essere abbastanza non portatile. Vorrei risoluzione al microsecondo o meglio. Per la mia particolare applicazione, la risoluzione è più importante della precisione e un timer monotono è il migliore. Ho provato su un particolare chipset ARMv7 con Android 4.0.3.Come ottenere il temporizzatore ad alta risoluzione nel codice nativo di Android?
Quello che ho provato finora:
clock_gettime(CLOCK_MONOTONIC)
: incrementi in unità di 1 ms su hardware di destinazione (EDIT inizialmente ho pensato 10ms a causa di bug nel mio codice, 1ms è corretto, ma ancora non molto buono)gettimeofday()
: simile a clock_gettime
Quello che non ho provato:
System.nanoTime()
: questo non è nativo. Credo che sia basato su clock_gettime(), ma preferirei scoprire tutto ciò che è sotto il cofano e usarlo direttamente./dev/rtc
- Una specie di istruzioni ARM/impianto, forse
SysTick
(http://web.eecs.umich.edu/~prabal/teaching/eecs373-f10/readings/ARMv7-M_ARM.pdf) o General Purpose Timer (GPT).
Vedi anche (domande relative, ma nessuna risposta):
Si può presumere l'accesso di root sul dispositivo? –
@Maratyszcza: Sì, potrei avere root se necessario. –
Non si tratta di Android ma di Linux, e non è possibile. http://elinux.org/High_Resolution_Timers – auselen