python3GUI--adb调试测试工具By:PyQt5(附下载地址)


一.准备工作

1.PyQt5

pyqt5是一套Python绑定Digia QT5应用的框架。它可用于Python 2和3。本教程使用Python 3。Qt库是最强大的GUI库之一。pyqt5的官方网站http://www.riverbankcomputing.co.uk/news
pyqt5做为Python的一个模块,它有620多个类和6000个函数和方法。这是一个跨平台的工具包,它可以运行在所有主要的操作系统,包括UNIX,Windows,Mac OS。pyqt5是双重许可。开发者可以在GPL和商业许可之间进行选择。

2.安卓环境

adb测试工具需要安卓环境,可以根据个人情况选择真机或者模拟器
2.1安卓手机

安卓(Android)是一种基于Linux内核(不包含GNU组件)的自由及开放源代码的操作系统。主要使用于移动设备,如智能手机和平板电脑,由美国Google公司和开放手机联盟领导及开发。Android操作系统最初由Andy Rubin开发,主要支持手机。2005年8月由Google收购注资。2007年11月,Google与84家硬件制造商、软件开发商及电信营运商组建开放手机联盟共同研发改良Android系统。随后Google以Apache开源许可证的授权方式,发布了Android的源代码。第一部Android智能手机发布于2008年10月。

2.1安卓模拟器

安卓模拟器是能在个人计算机运行并模拟安卓手机系统的模拟器,并能安装、使用、卸载安卓应用的软件,利用安卓模拟器,用户即使没有手机硬件设备,也能在模拟器中使用移动应用程序。安卓模拟器能在电脑上模拟出安卓手机运行环境,让用户在电脑上也能体验安卓游戏和应用。安卓模拟器是移动游戏市场的快速发展逐渐形成的一个独立行业。

本文采用的是夜神模拟器。

3.介绍-adb

adb是Android Debug Bridge的缩写,意为Android系统的调试桥。通过adb我们可以在Eclipse中方面通过DDMS来调试Android程序,其实这就是用于谷歌Android系统的debug调试工具。
adb的工作方式比较特殊,采用监听Socket TCP 5554等端口的方式让IDE和Qemu通讯,默认情况下adb会daemon相关的网络端口,所以当我们运行APK安装器时adb进程就会自动运行。
除了上述的操作功能之外,我们还可以通过adb管理设备或手机模拟器的状态。还可以进行很多手机操作,比如刷ROM系统升级、运行shell命令等等。

工作原理如下图:
请添加图片描述
本软件需要将adb工具放在软件根目录中,分别是adb.exe、AdbWinApi.dll、AdbWinUsbApi.dll,使用模拟器的朋友,直接复制模拟器根目录三个文件到软件根目录即可,使用真机的朋友,需要下载安卓SDK,可以参考这里,具体流程不在此赘述。

二.预览

1.启动

请添加图片描述
软件主界面。

扫描二维码关注公众号,回复: 14354267 查看本文章

2.检测设备

请添加图片描述
软件启动后会自动检测可用设备,选择了设备后,就能够激活左边的操作工具箱和右边的屏幕查看功能。

3-1.功能-基本

请添加图片描述

3-2.功能-查看

请添加图片描述

3-3.功能-性能

请添加图片描述

3-4.功能-按键

请添加图片描述

3-5.功能-应用

请添加图片描述

4.屏幕同步

请添加图片描述
开启此功能之后,模拟器/真机的屏幕就会同步到本程序中,下面我用一个动图演示:
请添加图片描述
由于我设置了10秒同步一次,所以会产生屏幕同步不及时的情况,这个时间暂未设置手动更改接口。

5.安装应用

请添加图片描述
通过手动选择安装包(.apk)安装安卓应用。注:此方法不支持文件名为中文的安装包。

三.设计思路

1.UI设计-原图

在这里插入图片描述

使用QT设计师很快就能设计出UI,整体水平布局,局部垂直布局。

2.UI设计-草图

在这里插入图片描述

3.功能设计-窗口

在这里插入图片描述

3.功能设计-主要功能

请添加图片描述

四.两个重点

1.设备连接

在软件启动后会对本地依赖文件进行判断,软件根目录需存在adb.exe、AdbWinApi.dll、AdbWinUsbApi.dll三个依赖文件,通过调用adb命令,搜索可用的设备并显示在comboBox中,鼠标双击设备名称实现设备的选择,之后激活左侧toolBox,完成设备的连接.

2.屏幕同步

定义一个定时器,每当checkBox状态为选中状态时,将此定时器开启,通过使用截图命令以及文件拉取命令,将截图显示在label中,间接实现屏幕同步,定时器的周期为屏幕同步间隔时间,间隔越小同步的越快。因为每次开启屏幕同步功能时,都会产生一些临时截图文件,所以每次在adb连接到模拟器/真机之后都会对这些临时文件进行清理。

五.总结

本次使用PyQt5以及adb工具开发了一款调试测试工具,免去了重复撰写代码的烦恼,可视化操作界面友好,功能多、实用性强!软件打包好放在了蓝奏云思路、代码方面有什么不足欢迎各位大佬指正、批评!
请添加图片描述

猜你喜欢

转载自blog.csdn.net/a1397852386/article/details/122456056
今日推荐