logcat 时间戳使用 开机启动时间
时间: 2023-08-02 11:08:14 浏览: 110
要在logcat中使用开机启动时间作为时间戳,您需要先获取设备的开机时间戳,然后将其添加到logcat消息中。您可以使用以下命令来获取设备的开机时间戳:
```
adb shell "echo $(($(date +%s) - $(busybox ps -o etime= -p 1 | awk '{print $1}' | awk -F: '{print ($1*3600)+($2*60)+$3}')))000 > /dev/kmsg"
```
该命令将向内核日志中添加一个带有开机时间戳的消息。然后,您可以使用以下命令来查看logcat中的消息和相应的开机时间戳:
```
adb logcat -v time
```
该命令将显示logcat中的时间戳和消息。时间戳格式为`mm-dd hh:mm:ss.milliseconds`,其中`mm`是月份,`dd`是日期,`hh`是小时,`mm`是分钟,`ss`是秒,`milliseconds`是毫秒。时间戳是相对于设备的开机时间的,因此它将显示您添加到内核日志中的开机时间戳。
相关问题
logcat 修改为 开机消耗的时间, 怎么修改代码
要将 logcat 修改为开机消耗的时间,需要在代码中对日志输出进行格式化处理。以下是示例代码:
```
long currentTimeMillis = System.currentTimeMillis();
long bootTimeMillis = System.currentTimeMillis() - SystemClock.elapsedRealtime();
long elapsedTime = currentTimeMillis - bootTimeMillis;
String formattedTime = formatElapsedTime(elapsedTime);
Log.d(TAG, "The current time is " + formattedTime);
```
其中,bootTimeMillis 表示系统启动的时间,elapsedTime 表示当前时间与系统启动时间的差值。formatElapsedTime() 方法将 elapsedTime 转换为可读格式:
```
private String formatElapsedTime(long elapsedTime) {
long hours = TimeUnit.MILLISECONDS.toHours(elapsedTime);
long minutes = TimeUnit.MILLISECONDS.toMinutes(elapsedTime - TimeUnit.HOURS.toMillis(hours));
long seconds = TimeUnit.MILLISECONDS.toSeconds(elapsedTime - TimeUnit.HOURS.toMillis(hours) - TimeUnit.MINUTES.toMillis(minutes));
long milliseconds = elapsedTime - TimeUnit.HOURS.toMillis(hours) - TimeUnit.MINUTES.toMillis(minutes) - TimeUnit.SECONDS.toMillis(seconds);
return String.format("%02d:%02d:%02d.%03d", hours, minutes, seconds, milliseconds);
}
```
这样,就可以将 logcat 中的时间戳显示为开机消耗的时间。注意,在使用这种方式输出 logcat 时,日志的时间戳并不是实时的,而是系统启动后经过的时间。
阅读全文