如何用毫秒分辨率测量adb shell的时间?

时间:2014-05-31 14:44:28

标签: android shell adb mksh

如何用毫秒或纳秒分辨率测量adb shell的时间?

使用adb shell中的date +%.%N返回1401546811.N(秒分辨率),而不是1401547289.231869798(纳秒分辨率)。

如何从adb shell获得毫秒或纳秒的分辨率?

我可以使用一些终端程序给我这个吗? 我可以使用Android应用程序代码本身的System.currentTimeMillis()System.nanoTime()来衡量时间,但我还需要adb shell内的内容。

3 个答案:

答案 0 :(得分:16)

mksh(自4.0版以来标准的Android shell )具有内置的EPOCHREALTIME环境变量:

  

gettimeofday(2)返回的纪元以来的时间,格式为十进制 tv_sec ,后跟一个点. tv_usec 填充到六个十进制数字。

因此,在Windows中以微秒准确度获得epoch时间的命令将是:

adb shell echo $EPOCHREALTIME

或在Linux中:

adb shell 'echo $EPOCHREALTIME'

如果你只需要毫秒精度:

adb shell 'echo ${EPOCHREALTIME:0:14}'

或者只是使用其他时间格式的毫秒部分:

adb shell 'echo $(date +%T)${EPOCHREALTIME:10:4}'

答案 1 :(得分:0)

通过使用botbrew解决了我的问题。可能不是主意,但至少它现在有效。 /data/botbrew-basil/init -- date +%s.%N - 返回纳秒分辨率。

答案 2 :(得分:0)

adb shell echo $EPOCHREALTIME为您提供微秒的时间, (不要在变量名前加上'\')