网站首页 > 技术文章 正文
简介
本文使用Python 内置库subprocess中的run调用系统cmd执行adb命令实现如下功能
1.截图、
2.保存logcat
3.录制视频的工具。
通过这个工具,用户可以方便地获取Android设备的屏幕截图、查看设备日志以及录制设备视频。非常方便提高效率
使用前准备
1.需要配置好ADB环境
2.安卓手机需要提前连接好电脑
完整代码如下:
import time
import os
from subprocess import run
def time_stamp():
"""
生产年月日,时分秒
"""
now = int(round(time.time() * 1000))
return time.strftime('%Y-%m-%d_%H%M%S', time.localtime(now / 1000))
class ADBCmd:
def __init__(self, ip, port, save_path=None,file_name=None, res = None, dst = None):
self.ip = ip
self.port = port
self.save_path = save_path
self.file_name = file_name
self.res = res
self.dst = dst
res = os.popen("adb devices")
if not "{}:{}".format(self.ip, self.port) in res.read():
run("adb connect {}:{}".format(self.ip, self.port), shell=True)
def screen_shot(self):
"""
名称是时间戳命名格式
需要传一个保存图片路径,路径目录不存在的话,会自动创建
"""
t = time_stamp()
shot = r"adb -s{}:{} shell screencap -p /sdcard/{}.png".format(self.ip, self.port, t)
run(shot, shell=True)
if not os.path.exists(self.save_path):
os.makedirs(self.save_path)
pull_png = r"adb -s{}:{} pull /sdcard/{}.png {}".format(self.ip, self.port, t, self.save_path)
run(pull_png, shell=True)
def screen_record(self):
"""
时间戳命名
关掉cmd命令窗口,即可保存视频
需要传一个保存视频路径
"""
t = time_stamp()
record = r"adb -s{}:{} shell screenrecord /sdcard/{}.mp4".format(self.ip, self.port, t)
os.system(record)
if not os.path.exists(self.save_path):
os.makedirs(self.save_path)
pull_png = r"adb -s{}:{} pull /sdcard/{}.mp4 {}".format(self.ip, self.port, t, self.save_path)
run(pull_png, shell=True)
def log_cat(self):
"""
关掉cmd命令窗口,即可保存日志
需要传一个保存日志路径及其名称 例:D:\log\crash.log
"""
log = r"adb -s{}:{} logcat > {}".format(self.ip, self.port, self.file_name)
os.system(log)
def pull_file(self):
"""
从设备拉数据下来
"""
pull = r"adb -s{}:{} pull {} {}".format(self.ip, self.port, self.res, self.dst)
os.system(push)
def push_file(self):
"""
上传数据到设备
"""
push = r"adb -s{}:{} push {} {}".format(self.ip, self.port, self.res, self.dst)
os.system(push)
if __name__ == '__main__':
ip = "10.9.66.194" # 安卓设备ip地址
port = "8888" # 端口
save_img = r"D:\code\安卓截图\G00113_2" # 截图保存到电脑路径
file_name = r"D:\code\安卓截图\error.log" # 保存log的名称
t = ADBCmd(ip, port,file_name) #
t.log_cat()
猜你喜欢
- 2024-09-29 图文教程:PC利用adb工具通过CMD命令控制手机动作(备忘笔记)
- 2024-09-29 ADB 调试手机的三种方式(USB、WLAN、WIFI)
- 2024-09-29 Android中如何实现adb向应用发送指令并返回
- 2024-09-29 打怪升级看这里,adb命令大全等着你
- 2024-09-29 App专项测试(3)-常见的ADB命令(下)
- 2024-09-29 软件测试系列:移动端安卓APP测试必备之ADB命令 (一)
- 2024-09-29 软件测试学习笔记丨App端测试——adb shell相关命令
- 2024-09-29 App专项测试(2)-常见的ADB命令(上)
- 2024-09-29 番外篇——ADB命令总结 adb命令干什么用的
- 2024-09-29 「Android」Android常规adb命令 android adb命令
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- oraclesql优化 (66)
- 类的加载机制 (75)
- feignclient (62)
- 一致性hash算法 (71)
- dockfile (66)
- 锁机制 (57)
- javaresponse (60)
- 查看hive版本 (59)
- phpworkerman (57)
- spark算子 (58)
- vue双向绑定的原理 (68)
- springbootget请求 (58)
- docker网络三种模式 (67)
- spring控制反转 (71)
- data:image/jpeg (69)
- base64 (69)
- java分页 (64)
- kibanadocker (60)
- qabstracttablemodel (62)
- java生成pdf文件 (69)
- deletelater (62)
- com.aspose.words (58)
- android.mk (62)
- qopengl (73)
- epoch_millis (61)
本文暂时没有评论,来添加一个吧(●'◡'●)