在window终端很容易进入adb shell,在发送一些相应的消息。今天写脚本实现发送一些消息抓取log,但是遇到一个问题。那就是当发送完os.popen("adb shell"),再发送一些消息,无论如何也不能发送成功,包括把命令和adb shell连在一起发。在这里,我也觉得是因为adb shell进入的是android的界面了。此时可以执行 ls 命令看到android相应的目录。而python脚本只能与cmd进行交互。
百度查也没查到对应的解决方法。只有一篇文章标题提到解决方法,但我尝试过后,并没有成功。最后终于找到了解决方法,现在分享给大家!
对于 cmd 终端,如果命令组合起来,它可能只识别第一条命令,把之后的命令当作参数传入。所以,只需要把之后的命令用引号引起来就可以一起执行成功了!
在python脚本中这样使用就好了:
os.popen("adb -s 192.168.1.100:5555 shell \"dmesg > /data/dmesg.log\"")
这样就不必先进入adb shell,在执行 dmesg > /data/dmesg.log 了。