2

两者似乎都适合在 Android 上计时。它们有何不同?哪一个最适合计时?

4

1 回答 1

2

据我所知,并没有太大的区别,但它们在底层使用了不同的 Linux 时钟。

nanoTime()使用clock_gettime()or gettimeofday():请参阅此处的代码(Dalvik VM 的一部分)

elapsedRealtimeNanos()以前用过clock_gettime(),现在不用了。ioctl相反,它现在向设备发出一个/dev/alarm请参见此处的代码),但我不确定alarm设备驱动程序使用什么。

我已经使用elapsedRealtimeNanos()了很长时间没有任何问题,但不是出于任何特定原因。只要确保您意识到这些功能都不会提供挂钟时间。

于 2014-07-09T23:17:14.713 回答