Skip to content

Instantly share code, notes, and snippets.

@hongyangqin
Last active January 6, 2018 04:08
Show Gist options
  • Save hongyangqin/6f8279471cf85164fb0c702297d656ec to your computer and use it in GitHub Desktop.
Save hongyangqin/6f8279471cf85164fb0c702297d656ec to your computer and use it in GitHub Desktop.
[Android 讨论] 通过ADB调试工具制作微信跳一跳辅助的原理

[Android 讨论] 通过ADB调试工具制作微信跳一跳辅助的原理

from : https://www.52pojie.cn/thread-682631-1-1.html

工具下载 https://www.52pojie.cn/thread-682011-1-1.html

开源网址 https://github.com/Charltsing/WeChat-Jump-JumpSharp

原理说明:

  1. 打开手机的USB调试功能(部分手机需要再打开USB调试的安全模式,允许模拟按键)
  2. 使用谷歌的安卓调试工具ADB完成截图和模拟按键 命令 检测设备 shell getprop ro.product.model 获取手机分辨率 shell wm size 截图到控制台 shell screencap -p 模拟发送按键 shell input swipe 100 100 200 200 时间
  3. 定时器循环抓图
  4. 判断小黑人的脚下位置(g == 55 && r + b > 145 && r + b < 148)
  5. 等待右键指示要跳跃的终点坐标。计算两点之间的距离,转成按键时间,发送按键。
  6. 坐标换算要考虑手机分辨率和图像控件分辨率。不同品牌的手机可能还要乘个时间系数。具体自己调试。

代码难点:

  1. 手机参数设置
  2. 截图的png不要写到硬盘上,要直接读控制台,这样速度会快得多。控制台返回的数据需要将0D0D0A替换成0A才是png图片
  3. 如果希望自动跳跃的话,需要判断棋子位置,一般做法是从上至下扫描,得到最高点和左右至少一点即可计算出中心点。
  4. 如果ADB和USB调试都正确但检测不到手机,请自行百度方案,可能需要修改adb的配置,因为个别手机没给谷歌注册,所以不支持。

操作注意事项

  1. 确认ADB工作正常,如果5037端口被占用,要杀掉占用的进程,否则ADB不工作。
  2. USB调试功能不同的手机位置不一样,请自行百度。部分手机需要再打开USB调试的安全模式,允许模拟按键。
  3. 程序运行不正常的话,请在DOS窗口手工测试ADB命令,正常之后再考虑修改代码。

有其他问题,欢迎交流。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment