在 Android 应用程序运行时使用批处理文件在 PC 上获取 adb 日志

Posted

技术标签:

【中文标题】在 Android 应用程序运行时使用批处理文件在 PC 上获取 adb 日志【英文标题】:Getting adb logs on PC using a batch file while the Android app is running 【发布时间】:2017-01-16 05:18:34 【问题描述】:

我创建了一个 Windows 批处理文件(log.bat),如下所示:

adb logcat -c
adb logcat -d > log.txt

但只要我按下 log.bat 命令,它就会很快退出。

我希望它继续记录日志,除非我按 ctrl+C。

【问题讨论】:

【参考方案1】:

来自doc

-c : 清除(刷新)整个日志并退出。

-d : 将日志转储到屏幕并退出。

因此,在这两种情况下,一旦您使用这些选项运行 logcat 命令,执行就会停止。试试这个,

adb logcat -c && adb logcat > log.txt

一旦执行logcat -c,这不会让shell执行被释放,并且会在它之后立即启动下一个命令adb logcat > log.txt,它将写入logcat的日志,直到你按下Ctrl + c。

【讨论】:

谢谢它的工作。如何获取特定标签的日志,如 D/BatteryService && E/Watchdog && V/MyAPP .. 是否有任何规则可以创建或额外放入命令中你发了? 我自己没有尝试过这个,但我认为这会帮助你找到你正在寻找的东西。 ***.com/questions/6173985/…【参考方案2】:

看起来问题是在 logcat 中使用选项 -d。请检查使用情况:

-d 转储日志然后退出(不要阻塞)

删除它会解决您的问题。

【讨论】:

谢谢!是的。【参考方案3】:

我需要创建一个可以将日志文件复制到 PC 的批处理文件。我创建的批处理文件不起作用。当我手动运行所有命令时,它可以工作,但是在放入脚本时它会挂起。以下是各个命令:

试试这个单行命令:

$adb shell run-as com.example.name cat /data/data/com.example.name/files/logfile.log > c:\logs\logfile.log

【讨论】:

以上是关于在 Android 应用程序运行时使用批处理文件在 PC 上获取 adb 日志的主要内容,如果未能解决你的问题,请参考以下文章

如何在 ionic/android 后台运行应用程序

Android处理图片OOM的若干方法小结

处理文件选择器 android 6.0 webview

Android 6.0 运行时权限处理

Android6.0-运行时权限处理

Android 逆向Android 逆向基本概念 ( 软件运行时内存结构 | 文件与内存之间的联系 )