使用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即可。