1

我为android设备使用了一些批处理脚本,它应该清除设备日志,启动和关闭一个apk,然后从中取出日志。这就是我使用的代码:

adb -s %DeviceId% logcat -c

adb -s %DeviceId% shell am start -n com.mv4d.sdktutorialbasicchangeframesize/com.mv4d.sdktutorialbasicchangeframesize.MainActivity
SLEEP 80
adb -s %DeviceId% shell am force-stop com.mv4d.sdktutorialbasicchangeframesize

adb -s %DeviceId% logcat -d -v  time >  D:\Roey\Jen2\ChangeFrameSize\Results\Logcat\AndroidLog.txt

创建的日志缺少很多第一行和最后一行。(例如,如果您启动应用程序并通过 android studio 检查实时日志,就会出现这种情况......)有什么想法吗?

4

1 回答 1

1

adb logcat -d [file]只会转储当前在内存中的日志,而不是自设备启动以来的所有日志。

LogCat 存储的日志是循环的,这意味着当为日志分配的空间开始用完时,LogCat 会删除较旧的日志,以便为较新的日志腾出空间。这意味着您在任何给定时间只能在内存中拥有一定数量的日志行(通常设置为 16kb 之类的东西)。

为了能够获取所有日志,您必须让 LogCat 将日志写入特定文件,而不仅仅是将它们保存在内存中。

您可以使用以下命令执行此操作:
adb logcat -f [file].

这将使 LogCat 将内存中的任何日志和未来的任何日志写入指定文件。

注意:指定的文件必须在设备本身上,并且可以从设备中提取。
( adb pull [device file] [destination file])

于 2017-04-12T10:21:04.173 回答