我正在尝试通过 adb 向 android 设备发送命令,以触发 logcat 记录到设备上的文件。 为此,我触发命令:
adb shell "logcat > /sdcard/logcat.log"
到目前为止一切顺利,但问题是我需要命令在后台运行,而不是保持与 PC 的开放连接。 意思是,如果我发送命令并断开 USB 电缆,我想让 logcat 记录在后台继续运行。 如果我执行
$ adb shell
$ logcat > /sdcard/logcat.log &
我可以安全地断开 USB 数据线,录音将继续进行。 但是,如果我从 shell 外部执行命令,如下所示:
adb shell "logcat > /sdcard/logcat.log &"
我在 /sdcard
中得到一个名为 logcat.log
的文件,它的权重为 0 字节。
在尝试了几种变化之后,我尝试用命令放置一个脚本文件
/sdcard 中的“logcat >/sdcard/logcat.log &
”称为/logcatScript.log
并使用
adb shell "sh /sdcard/logcatScript.log"
但正在创建相同的 0 字节文件。
设备没有 root,也不应该,所以 busyBox 不是一个选项。
最佳答案
解决它的最佳方法是创建一个 bash 脚本并将其推送到 data/local/tmp 文件夹,在大多数 android 设备上不需要定义 #!/system/bin/sh 或 #!/bin/bash 在第一行。 程序是:
1) 创建文件: logcat >/sdcard/logcat.txt &
2)adb push/data/local/tmp
3)adb shell chmod +x/data/local/tmp/
4)adb shell/data/local/tmp/
问候
关于android - 从 adb 在后台运行 logcat,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50784211/