使用adb+PyQt5制作一个手机自动化的小工具

背景介绍

这是一个从今年双十一时候产生的一个想法,好多平台上都有很多羊毛可以薅,每天签到啊什么的,然后每天去点就很烦,希望做一个自动化的小工具去让程序去自动完成各种签到,浏览什么的。

正好赶上崴脚下不了地,只能宅在宿舍,而且最难的最优化也考完了,就利用这段时间把这个想法实现了一下。

程序应包含如下几个功能

  1. 有一个窗口专门用来显示手机的屏幕,在这个窗口上的点击和滑动应该能映射到手机的点击和滑动。并且由于手机屏幕的分辨率太高了,这里还有一个缩放映射的问题。
  2. 各种手机的操作可以录成一个动作组,基本的动作包含:点击,滑动,延时,返回键,home键。录制的动作组应以一定格式存储在文件中,并方便编辑
  3. 针对不同的任务,记录不同的动作文件,动作文件导入后应可以批量执行

程序上传到了:https://github.com/buaalzm/auto_mobile
博客连接:https://blog.csdn.net/qq_33833073/article/details/103553273

项目概述

主要功能应有如下几个

  1. 屏幕显示
  2. 动作录制与存储
  3. 动作加载与执行

其中,用电脑操作手机使用adb工具,GUI设计使用PyQt5,动作文件的存储使用json格式


使用说明

界面是长这个样子的~
在这里插入图片描述

  • 点击测试连接,在命令行中会输出devices信息,有设备号则表示连上了
  • 点击获取屏幕,获得一张手机的截图并显示在窗口中
  • 返回桌面和返回上一级按钮映射到手机对应的操作
  • 在显示手机屏幕的地方上面点击或滑动,会映射到手机对应的操作,并获取一张新的截图
  • 点击开始录制按钮之后,弹出对话框输入要保存的文件名(不需要加扩展名),在电脑端对手机的操作会被记录下来,点击停止录制,记录的动作保存到…/mobile_action目录中,以json文件存储
    在这里插入图片描述
  • 添加和删除按钮是对动作文件进行操作,编辑要执行的动作组,待执行的动作会显示到下方的TreeWidget中
  • 点击开始执行,即执行TreeWidget中显示的动作组

详细设计

提升一个类用于图像显示

设计一个ImageLabel类专门用于图像显示,以及鼠标事件的拦截

提升类的操作

新建一个ImageLabel.py文件,在里面编写ImageLabel类,继承QLabel
初始化时传递一个图片的路径,通过showImage函数显示图片

from PyQt5.QtCore import pyqtSignal
from PyQt5.QtGui import QPixmap
from PyQt5.QtWidgets import QLabel


class ImageLabel(QLabel):
    showImageSignal = pyqtSignal()

    def __init__(self, parent=None):
        super(ImageLabel, self
  • 3
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值