工具包分支:
- 基于mumuapi实现的mumu12专属基础操作----【minidevice-mumuapi】
- 基于windowsapiDX渲染实现的基础操作----【minidevice-winapidx】
一个对安卓设备(主要是安卓模拟器)进行基础操作的工具包-------基于adb实现
重构项目结构,统一为pep8风格
移除pyminitouch依赖,解决minitouch触控方式部分设备旋转屏幕方向后无法使用的问题,加入MaaTouch触控方式,修改部分不符合命名规范的类
- ADBtouch -> ADBTouch
- ADBcap -> ADBCap
- Minicap -> MiniCap
- Minitouch -> MiniTouch
- adbutils 依赖解除版本限制
minitouch无法在安卓13上使用,请使用MaaTouch替代
屏蔽pyminitouch的日志并在MiniDevice中添加部分日志以及引入tests自动化测试Minidevice相关实例是否正常(测试不代表所有情况) 尝试修复部分bug
README说明,添加MiniDevice类
移除opencv库的引用,让用户自行处理截图源数据bytes,以此减少库依赖(opencv,numpy库真的很大且并非所有人都需要)
adbutils
,loguru
,requests
pip install minidevice
大致设计思路就是通过实现ScreenCap
和Touch
这两个抽象基类
- ScreenCap
- @abstractmethod screencap_raw 返回截图bytes数据
- save_screencap(path) 保存截图到path
- Touch
- @abstractmethod click(x,y,duration)
- @abstractmethod swipe(points,duraiton)
整合至MiniDevice类创建对安卓设备操作的对象,引入基础操作锁,防止不合理并发导致的程序错误
MiniDevice(self, serial=None, screenshot_method= None,
touch_method= None, screenshot_timeout=500)
screenshot_method
|touch_method
为 ScreenCap
| Touch
的子类或者子类实例,为None时不创建对应方法
当screenshot_method
|touch_method
包含子类时,serial
为必须
- screenshot_raw
- click
- swipe
User无需关心具体实现过程,Developer直接继承基类即可添加新方法
- ScreenCap
- MiniCap
- ADBCap
- DroidCast
- Touch
- MiniTouch
- ADBTouch
- MaaTouch
- MiniDevice
- ScreenCap
- Touch
-
转发端口清理失败(暂时无需清理,所有转发时都会判断端口是否被占用) - pyminitouch库使用系统路径的adb,导致需用户自行安装adb工具并添加到环境变量中
- pyminitouch库实现存在潜在问题,主要集中在
连接问题以及输入是否合法未进行检查上面
MiniCap>>DroidCast>>ADBCap
- Minicap截取一张图片时间大概
20~30ms
,当然你可以通过添加参数rate,以获得更加高的速度(但这同时会拉高设备CPU占用) - DroidCast截图图片时间大概在
50ms
以内,场景越复杂,时间越长,解决方法未知 - ADBCap耗时
300ms
甚至更长,稳定性未知
MiniTouch>>ADBTouch
- MiniTouch触控效率据说和Windows api几乎相同
- ADBTouch无法模拟曲线滑动,只能点到点直线