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

223*_*112 8 shell android adb mksh

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

使用date +%.%Nadb shell返回1401546811.N(秒分辨率)而不是像1401547289.231869798(纳秒分辨率).

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

是否有一些终端程序可以用来给我这个?我可以使用System.currentTimeMillis()System.nanoTime()从Android应用程序代码本身测量时间,但我也需要内部的东西adb shell.

Ale*_* P. 16

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

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

于是命令来获得epoch时间与微秒在Windows准确性将是:

adb shell echo $EPOCHREALTIME
Run Code Online (Sandbox Code Playgroud)

或者在Linux中:

adb shell 'echo $EPOCHREALTIME'
Run Code Online (Sandbox Code Playgroud)

如果您只需要毫秒精度:

adb shell 'echo ${EPOCHREALTIME:0:14}'
Run Code Online (Sandbox Code Playgroud)

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

adb shell 'echo $(date +%T)${EPOCHREALTIME:10:4}'
Run Code Online (Sandbox Code Playgroud)