两者似乎都适合用于Android上的计时。它们有什么不同?哪一个是最好的时机?
据我所知,并没有太大的区别,但是它们在底层使用了不同的Linux时钟。
nanoTime()
使用clock_gettime()
或gettimeofday()
:参见这里的代码(Dalvik VM的一部分)。
elapsedRealtimeNanos()
曾经使用clock_gettime()
,但它不再使用。相反,它现在向/dev/alarm
设备发出ioctl
(参见这里的代码),但我不确定alarm
设备驱动程序使用什么。
我已经使用elapsedRealtimeNanos()
很长一段时间没有麻烦,但没有任何特定的原因。只是要确保你意识到这两个功能都不能提供挂钟时间。