python处理adb截屏_《自拍教程38》Python adb一键截屏

做Android手机系统或App测试的过程中,

如果碰到了bug,开发一般会需要测试人员提供当时的bug截图,

如何用Python 批处理脚本, 快速实现截图呢?

准备阶段

adb shell screencap -p /sdcard/a.png 命令, 可以实现手机截图并保存到/sdcard/a.png

adb pull /sdcard/a.png . 即可实现导出到当前路径(.代表当前路径)

os.system可以调用以上 adb 命令行工具

Python批处理脚本形式

其实和写DOS批处理脚本类似,

Python只需要用os.system()函数,

即可快速实现调用各类命令行命令。

#coding=utf-8

import os

print("屏幕截取中...请稍候!")

os.system("adb shell screencap -p /sdcard/a.png")

os.system("adb pull /sdcard/a.png .")

print("截图完毕!")

os.system("pause")

os.system("pause"),建议尽量加上,其含义是暂停程序执行,

等待用户查看脚本执行结果,避免运行完毕后直接自动关闭脚本执行cmd窗口。

Python面向过程函数形式

找到可以封装成一个函数块的小代码块儿, 用函数封装起来.

函数的命名一般建议用"动词", 所以我们命名为: "screencap",

封装好后, 用screencap()函数调用即可。

#coding=utf-8

import os

def screencap(): #封装

print("屏幕截取中...请稍候!")

os.system("adb shell screencap -p /sdcard/a.png")

os.system("adb pull /sdcard/a.png .")

print("截图完毕!")

screencap() #调用

os.system("pause")

Python面向对象类形式

以"一切皆可归类"的思想, 先抽象化出一个类来,

类名一般建议用"名词", 所以我们命名为"ScreenCapturer",

代表屏幕捕捉器, 且一般要驼峰式(首字母大写)来规范类的命名.

养成良好的类的初始化(init)的习惯,

初始化过程中, 可以pass(什么都不做)

这个ScreenCapturer 类, 目前只需要一个截屏的函数(动作功能)就足够了,

函数的命名一般建议用"动词", 所以我们命名为: "screencap" .

类是一个抽象的事物, 必须实例化成具体的对象后,

才能进行调用, 所以我们实例化并命名成了s_obj, 表明是一个对象.

实例化成具体对象后, 对象就可以调用screencap这个函数了.

#coding=utf-8

import os

class ScreenCapturer(): #类名

def __init__(self): #类的初始化

pass

def screencap(self): #定义类内部的函数名

print("屏幕截取中...请稍候!")

os.system("adb shell screencap -p /sdcard/a.png")

os.system("adb pull /sdcard/a.png .")

print("截图完毕!")

s_obj = ScreenCapturer() #类实例化成一个对象

s_obj.screencap() #用对象来调用函数

os.system("pause")

代码运行方式

确保Android设备通过USB线与电脑连接了,adb设备有效连接,

以上代码的3种实现形式都可以直接运行,

比如保存为adb_screencap.py并放在桌面,

每次需要截图的时候,双击运行adb_screencap.py,

就会在桌面上生成一个a.png。

有的Android系统是用screencap命令, 有的是用screenshot命令来截图。

需要自行尝试下。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值