拓冰建站拓冰建站
首页 / 资讯中心 / 正文

安卓自动化游戏脚本框架 RobotHelper:从 0 到 1 跑通图像识别加自动点击

安卓自动化游戏脚本框架 RobotHelper从 0 到 1 跑通图像识别加自动点击【免费下载链接】RobotHelper安卓游戏自动化脚本框架|Automated script for Android games项目地址: https://gitcode.com/gh_mirrors/ro/RobotHelper写安卓游戏挂机脚本时最常卡住人的不是写逻辑而是两件事怎么在屏幕上准确定位一个图标并点下去以及怎么把屏幕上的文字读出来参与判断。按键精灵这类商业软件改不动AutoJS 之类又偏重、不好二次开发。RobotHelper 是一个开源的安卓自动化脚本框架内置 OpenCV 图像识别和 Tesseract 文字识别脚本逻辑就写在一个 Java 类里编译安装到手机上直接跑。最短路径跑起来环境要求Android Studio Android SDK脚本运行在 Android 5.0 及以上的手机或模拟器上。克隆仓库git clone https://gitcode.com/gh_mirrors/ro/RobotHelper用 Android Studio 打开Android/目录编译安装到手机上。到系统「设置 → 无障碍」里打开 RobotHelper 的无障碍服务模拟点击依赖它见下文模式选择。打开 App首次启动会弹出「允许截屏」授权点允许找图、找文字都靠截屏。在GamePackage/Main.java的start()方法里写脚本点界面上的开始按钮运行。验证是否跑通start()里先写一句Robot.tap(500, 800)运行后手机会在该坐标出现点击效果屏幕角落弹出「运行结束」的提示。能点到就说明点击通道是通的。我想找到屏幕上的某个图标并点它框架提供两条路模板匹配和多点颜色匹配都基于先截屏ScreenCaptureUtil.getScreenCap()再对截图做识别。模板匹配把目标图标裁成小图如 assets 里的ImgMatch.png代码直接给结果——Bitmap bitmap BitmapFactory.decodeStream( MainApplication.getInstance().getAssets().open(ImgMatch.png)); Point point Image.matchTemplate(ScreenCaptureUtil.getScreenCap(), bitmap, 0.1); Robot.tap(point);预期结果屏幕中与该小图相似度达到阈值的图标被找到并点击日志输出坐标。多点颜色匹配适合图标背景会变化、但几个特征点颜色稳定的场景。格式是「锚点颜色, 相对偏移点序列」Point point Image.findPointByMulColor(ScreenCaptureUtil.getScreenCap(), 434FD7,65|0|414DDB,90|55|46CDFF,5|86|5FA119); Robot.tap(point);预期结果在整屏里同时满足这些颜色相对位置关系的区域被定位并点击。这套颜色点不是手写的仓库里python/imgRulesCreator.py就是配套的抓点工具——adb 截屏后在图上点选特征点自动生成上面那串参数。我想模拟点击、滑动、输入文字Robot类统一封装了模拟操作按坐标直接调Robot.tap(500, 800); // 点击 Robot.tap(500, 800, 800); // 长按 800 毫秒 Robot.swipe(100, 1000, 100, 300, 300); // 滑动duration 300 毫秒输入文字走的是框架自带的输入法FastInputIME不是广播注入。所以Robot.input(你好)之前需要在系统输入法设置里把 RobotHelper 输入法设为默认且当前焦点在输入框内否则返回 false。我想把屏幕上的文字读出来做判断OCR 引擎是内置的 Tesseract语言包默认只有chi_sim简体中文和eng英文放在Android/app/src/main/assets/tessdata/里可自行追加其他语言包。识别指定区域String res TessactOcr.img2string(ScreenCaptureUtil.getScreenCap(0, 0, 200, 30), chi_sim, , ); MLog.info(文字识别结果 res);预期结果日志输出屏幕左上角 200x30 矩形区域内识别出的文字拿字符串做 if 判断即可驱动后续流程。assets 里的ocrTest.png就是仓库自带 demo 用来验证识别效果的素材权限模式怎么选新手常踩的坑框架支持三种提权方式在start()开头用Robot.setExecType(...)切换不设置时自动探测XposedRobot.ExecTypeXposed有 Xposed 环境时框架会优先选它注入最底层功能最全比如双指缩放pinchOpen/pinchClose目前只有此模式实现了。适合愿意折腾 Xposed 环境的用户。无障碍Robot.ExecTypeAccessibillty不 root、不用 Xposed 就能模拟点击兼容面最广新手建议从它开始。RootRobot.ExecTypeROOT实验阶段仅在部分机型测试通过非 root 用户无视即可。新手最常见的三个坑点击没反应、日志里像被吞了多半是没开无障碍服务或 Xposed 没生效框架此时会静默降级成 NullInput什么都不做。先确认系统设置里服务已开启。Robot.input返回 false默认输入法没换成 RobotHelper 输入法或焦点不在输入框。多点颜色点在别的手机上不中颜色点是在特定分辨率demo 里是 3120x1440抓的换分辨率或换 UI 皮肤后要重新跑imgRulesCreator.py抓点别指望一组点通吃所有机器。另外 V2.4.2 之前老版本有截图被系统回收导致recycled bitmap崩溃的 bug用旧版本遇到偶发崩溃时先升级到最新版。项目现状与走向当前已支持点击/长按/滑动/拖动/输入、模板与多点颜色找图、中英文 OCR、截图方向自适应、界面 DOM 抓取把窗口元素导出成 JSON、Web 接口调用。规划中业务进程与工作进程拆分、脚本暂停/停止、跨机器群控部署、脚本热更新详见仓库UPDATE.md。下一步建议先把无障碍模式下的「找图 点击 读状态栏文字」这三步在你自己的手机上各跑通一次再往start()里加你真正的挂机逻辑——这三段跑通了后面的业务基本就是 if 加循环的事。【免费下载链接】RobotHelper安卓游戏自动化脚本框架|Automated script for Android games项目地址: https://gitcode.com/gh_mirrors/ro/RobotHelper创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
分享:

看完干货,该让你的企业上线了

免费需求沟通 · 48 小时内出具建站方案 · 河南本地可上门