python+adb游戏辅助脚本

不实用,仅作参考

零、大致思路

  • 手动启动游戏界面
  • 截图(adb/minicap)
  • 计算滑动路径
  • 按键输出(adb/minitouch)

一、截图

可用两种方式实现

  • adb shell
  • minicap

1.1 adb shell

  1. 将手机与电脑通过usb线连接,根据手机操作启动开发者模式

  2. 在adb tools download页面下载命令行工具adb,解压后使用cmd即可启动

  3. adb shell screencap -p /sdcard/screen.png 截取手机屏幕

  4. adb pull /sdcard/screen.png 将手机屏幕截图上传至电脑端

数据传输速度过慢,不具实用意义

1.2 minicap

流式实时传输安卓设备屏幕,传输数据为jpg格式。

  1. minicap下载源码,需自行编译得出可在安卓设备上运行的可执行文件。或根据手机设备类型下载别人提供的可执行文件
  2. 将minicap及相关lib文件通过adb shell传输至安卓设备,并修改minicap为可执行文件
  3. 通过adb shell运行minicap,并设置tcp接口,使minicap截取的屏幕图片数据流,映射至电脑端口
  4. 使用python解析程序,解析图片数据流,保存为jpg格式

1、2、3步均参考minicap的README文档。python解析程序根据原作javascript解析程序写出。由于是流式更新图片,图片信息往往分块更新,或至于数据格式错误,因此不能提供正确的图片信息,暂无法使用

二、计算滑动路径

python+adb游戏辅助脚本_第1张图片

  1. 硬编码计算出各颗珠子的中心点位置,将珠子分为6行4列和5行三列两种珠子
  2. 导入python包cv2,cv2用于处理图像,可得出每颗珠子颜色
  3. 遍历每颗珠子,以该珠为中心,查找周围6颗珠是否能够组成相连3色。若能组成相连三色,加入list中。
  4. 返回list

三、按键输出

根据坐标滑动屏幕,与截屏一样,有两种方式。

  • adb shell sendevent
  • minitouch

adb shell

滑动屏幕使用adb shell sendevent命令,速度慢,不实用

minitouch

与minicap同作者,需自行编译、可执行文件发送至手机、启动tcp实现电脑和手机通信。指令累积,重复输出,手机易卡死

你可能感兴趣的:(日常)