安卓自动化从零起步:让 RobotHelper 的首个脚本 15 分钟跑通
【免费下载链接】RobotHelper安卓游戏自动化脚本框架|Automated script for Android games项目地址: https://gitcode.com/gh_mirrors/ro/RobotHelper
RobotHelper 是一个开源的安卓自动化脚本框架,解决"手机上自动点击、滑动、识别文字"这件事。游戏挂机、数据采集、UI 测试都能做,不需要 root。
🎬 它能帮你干什么
先别管概念,看看它具体能做什么:
- 游戏挂机:在屏幕上找到"开始游戏"按钮,自动点下去,循环执行,不用一直把手放在手机上面。
- 数据采集:用 OCR 读出列表页里的文字,再点"下一页",重复执行就完成一轮抓取。
- UI 测试:自动走一遍注册、登录流程,校验结果页是否出现预期的文字。
它比按键精灵这类商业工具扩展性更强,比 AutoJS 这类工具更轻量,适合在你自己的 App 工程里做二次开发。
🚀 最短路径:从克隆到第一次点按
第一步,克隆项目:
git clone https://gitcode.com/gh_mirrors/ro/RobotHelper第二步,用 Android Studio 打开项目根目录下的Android目录。前提是先配好 Java 和 Android SDK。
第三步,改 GamePackage/Main.java 里的start()方法。这是你唯一需要写业务逻辑的地方:
public void start() { sleep(5000); // 等状态栏收起动画 // 1. 点一个固定坐标 Robot.tap(500, 800); sleep(1000); // 2. 在屏幕里找到模板图,再点它 Point point = Image.matchTemplate( ScreenCaptureUtil.getScreenCap(), bitmap, 0.1); Robot.tap(point); }前面一句是直接点坐标,后面是先做模板匹配、找到图再点它,两种写法共用同一套接口。
项目自带的 Demo 已经把完整流程写好了,你可以先改一行跑通:
截图里从上到下能看到两部分:坐标点击和 OCR 文字识别,写法都替你备好了,照着抄就行。
🔍 核心能力拆解
视觉识别
核心是内置的 OpenCV。模板匹配(Image.matchTemplate)拿一张小图标和整屏画面比对,用来定位游戏里的开始按钮,并且自动处理分辨率差异。多点颜色匹配(Image.findPointByMulColor)靠几个颜色点和它们的相对位置锁定目标,换一台不同分辨率的手机也更稳。
文字 OCR
内置 Tesseract OCR 引擎,预置了chi_sim(简体中文)和eng(英文)语言包。给TessactOcr.img2string一个屏幕区域,它就把里面的文字读出来。比如读出游戏顶部"任务完成"这几个字,再决定下一步动作。
这张截图是内置的 OCR 示例:截取屏幕左上角 200x30 像素的区域做识别,结果直接打到日志里。
输入事件模拟
所有操作都走Robot类:tap点击和长按、swipe拖拽、input输入文字、pinchOpen/pinchClose双指缩放。Root 模式底层用的是 Go 重写的 sendevent 工具,比系统自带的每次调用都起新进程省资源。
⚖️ 权限三选一:无障碍、Root、Xposed
框架对点击操作有三种权限实现,一行代码切换:
Robot.setExecType(Robot.ExecTypeAccessibillty);- 无障碍:新手的默认选择。系统设置里开启就能用,不碰任何特殊权限,兼容性最好。
- Xposed:需要装 Xposed 框架,实现更底层,适合进阶用户。
- Root:目前是实验阶段,测试过的机型有限,不建议作为首选。
不手动设置时,框架会按 Xposed、无障碍的顺序自动尝试,能跑哪个用哪个。
📝 调优清单
- 截图复用:
getScreenCap()截一次就是一张图。同一屏要连续点几个地方,就复用同一个 bitmap,别反复截。 - 保留首个延时:Demo 开头的
sleep(5000)是给状态栏收起动画留的时间,删掉它,第一下可能就点空了。 - 调匹配阈值:
matchTemplate里的0.1是相似度阈值。误点多就调高,找不到就调低。 - 找目标更稳:固定坐标撑不过换屏,多点颜色匹配加模板匹配更耐造。
- 复用自带工具类:日志用
MLog、提示用Toast、随机数用Random,不用自己造轮子。
❓ 常见问题
Q:需要 root 吗?不需要。无障碍模式下全程没有特殊权限。
Q:支持哪些安卓版本?主流设备都能覆盖,其中无障碍的实现建议 Android 7.0 及以上使用。
Q:OCR 识别率怎么提高?缩小识别区域,只框住有文字的那一块;也可以补充更高质量的语言包。项目默认只有chi_sim和eng,其余语言包可以自行引入。
Q:文本输入失败是什么原因?检查焦点是否在输入框内,并且确认 RobotHelper 输入法已经被设为系统默认输入法。
🗺️ 路线与社区
- 业务进程与 Work 进程拆分,消息通知通信,运行更稳。
- 支持脚本暂停、停止。
- 跨机器部署、支持网络调用,可以覆盖群控场景。
- 业务脚本热更新。
各版本的变更记录见 UPDATE.md,使用中遇到问题也欢迎直接提 issue。
从一个自动点击每日任务的小场景开始,踩坑时知道该看哪个类,这个框架就会用着顺手。
【免费下载链接】RobotHelper安卓游戏自动化脚本框架|Automated script for Android games项目地址: https://gitcode.com/gh_mirrors/ro/RobotHelper
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考