python使用adb获取Android Phone截图(解决Windows传输编码导致png文件损坏的问题)

Posted Luke_Ye

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python使用adb获取Android Phone截图(解决Windows传输编码导致png文件损坏的问题)相关的知识,希望对你有一定的参考价值。

使用adb命令

./adb shell screencap -p

可以截取当前屏幕,并且作为stdout,传给外部。那么对于python,我们可以用如下代码获取数据流。

使用Popen创建子进程用于读取数据流。

import subprocess
out=subprocess.Popen(./adb shell screencap -p,stdout=subprocess.PIPE)

out是当前的Popen实例,考虑到Windows接收过程中,会把 当作 写入流中,进而导致png文件打不开。

所以用replace修复数据流。

out=out.stdout.read().replace(b
, b
)

这里得到的out就是正常的二进制数据了,将其以wb的模式写成.png即可。

以上是关于python使用adb获取Android Phone截图(解决Windows传输编码导致png文件损坏的问题)的主要内容,如果未能解决你的问题,请参考以下文章

android如何通过adb命令获取手机的IMEI

android利用adb命令,获取当前界面(当前Task的栈顶).

获取通过 ADB 连接的设备的 Android 操作系统版本 [重复]

使用Python进行Android自动化测试

Android adb命令使用

使用Python进行Android自动化测试