【问题标题】:running logcat in background from adb从 adb 在后台运行 logcat
【发布时间】:2018-11-19 21:44:44
【问题描述】:

我正在尝试通过 adb 向 android 设备发送命令,以触发 logcat 记录到设备上的文件。 为此,我触发了命令:

adb shell "logcat > /sdcard/logcat.log"

到目前为止一切顺利,但问题是我需要该命令在后台运行,而不是保持与 PC 的开放连接。 意思是,如果我发送命令并断开 USB 电缆,我想让 logcat 记录在后台继续运行。 如果我执行

$ adb shell

$ logcat > /sdcard/logcat.log &

我可以安全地断开 USB 数据线,然后继续录制。 但是,如果我从外壳外部执行命令如下:

adb shell "logcat > /sdcard/logcat.log &"

我在/sdcard 中得到一个名为logcat.log 的文件,其权重为0 字节。 在尝试了几种变体后,我尝试使用命令放置一个脚本文件 /sdcard 中的“logcat > /sdcard/logcat.log &”称为 /logcatScript.log 并使用

从shell外部运行它

adb shell "sh /sdcard/logcatScript.log"

但正在创建相同的 0 字节文件。

设备没有root,也不应该,所以busyBox不是一个选项。

【问题讨论】:

  • adb shell "logcat -f /sdcard/logcat.log &"
  • @AlexP。什么都没有发生(缺少“>”?)。我在 -f 之后添加了一个重定向符号,但结果与帖子中的相同。一个 0 字节的文件。

标签: android linux shell adb logcat


【解决方案1】:

我试过这个方法,它在我的设备上有效

  1. adb 外壳

  2. logcat -f sdcard/logcat.txt &

adb shell logcat -f sdcard/logcat.txt &

现在您可以移除 USB 数据线了

【讨论】:

  • 嗨,如上所述,我需要从外部 cli 命令运行它,这意味着在单行 adb 命令中。如果按照您的示例“adb shell 'logcat -f sdcard/logcat.txt &'”会起作用,那将是完美的。但它没有
  • 但它也在我身边工作 adb shell logcat -f sdcard/logcat.txt &
  • 我已按照您的命令进行操作,但连接仍处于打开状态。假设我关闭了连接 (^C) 并且我仍然在 shell 中看到文件的大小正在增加。一旦我断开数据线,稍后重新连接,我看到文件大小没有改变。
  • 当您重新连接电缆时 adb 守护程序重新启动。这意味着您需要再次执行上述操作。
  • 如果你执行 adb shell 然后 logcat -f sdcard/logcat.txt & 你的问题将得到解决。因为它现在不依赖于 adbd。你可以重新连接USB,它不会停止
【解决方案2】:

解决这个问题的最好方法是创建一个 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/

问候

【讨论】:

  • 正是我尝试过的。但是创建了一个大小为 0 字节的文件(/sdcard/logcat.txt),它不记录任何内容。
  • 你的手机品牌是什么? 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/
  • 由于该解决方案仅适用于我测试过的一小部分设备,因此我最终求助于构建开放连接 Logcat 逻辑(使用非常有用的 JADB 库)。我在需要时打开和关闭了连接流。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-10-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-09
  • 1970-01-01
相关资源
最近更新 更多