从adb

时间:2018-06-10 13:32:47

标签: android linux shell adb logcat

我尝试通过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字节。 在尝试了几个varieations之后,我尝试使用该命令放置一个脚本文件 " logcat > /sdcard/logcat.log &"在/ sdcard中调用/logcatScript.log 并使用

从shell外部运行它
  

adb shell" sh /sdcard/logcatScript.log"

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

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

2 个答案:

答案 0 :(得分:0)

我尝试了这种方法,它可以在我的设备上运行

  1.   

    adb shell

  2.   

    logcat -f sdcard / logcat.txt&

  3. OR

      

    adb shell logcat -f sdcard / logcat.txt&

    现在您可以移除USB线缆

答案 1 :(得分:0)

解决它的最好方法是创建一个bash脚本,将其推入data / local / tmp文件夹,在大多数Android设备上,不需要定义#!/ system / bin / sh或#!/ bin / bash在第一行。 程序是:

1)使用以下命令创建文件:logcat> /sdcard/logcat.txt& amp;

2)adb push / data / local / tmp

3)adb shell chmod + x / data / local / tmp /

4)adb shell / data / local / tmp /

问候