有什么方法可以在不打开输出流的情况下获取当前 logcat 输出的快照?

Any way to grab a snapshot of current logcat output without opening up the output stream?

我正在尝试通过命令行从 logcat 获取一些过滤后的输出,但我不想为了自动化目的而打开 logcat 流。

这是我的用例:我想清除 logcat,在启用 AccessibilityChecks 的情况下执行一些仪器测试,然后检查 logcat 是否存在 class 具有的辅助功能错误在我的 UI 中找到。

目前,我可以通过命令行执行以下操作:

//clear logcat history:
adb logcat -c 
// Run instrumentation tests at this time. 
// Run following command when tests done: 
adb logcat AccessibilityValidator:E *:S
// ctrl-c to close stream

这是它应该做的。我只会看到打印出的辅助功能错误。问题是我不想打开 logcat 流。我希望在我的仪器测试完成时按原样获得结果。打开一个流不是很理想,因为我需要将 ctrl-C 通过管道输入到我的管道以关闭流。我真的很想获得纯文本输出的快照。这样的事情可能吗?

谢谢!

编辑:我能够找到我认为可行的解决方案 - 我只需要添加 -d 标志。这不会打开流,而是打印 logcat 文件的内容。结合我的过滤,我能够得到我正在寻找的东西。

我能够找到我认为可行的解决方案 - 我只需要添加 -d 标志。 -d 将转储日志并退出。这不会打开流并将 logcat 文件的内容打印到标准输出。结合我的过滤,我能够得到我正在寻找的东西。

我需要的命令是:

 adb logcat -d AccessibilityValidator:E *:S