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命令,获取当前界面(当前Task的栈顶).