一、从一款放置游戏聊到”移动端 UI 自动化”

《家国梦》是一款以”建设家乡”为主题的放置经营手游,完全不氪金,核心乐趣在于慢慢升级建筑。但它有不少重复的机械操作——滑屏拾币、搬运货物。作为自动化爱好者,我用一个开源脚本把这些操作接管了。本文不聊”怎么赢”,而是把它当成安卓 UI 自动化的一个实战案例,讲清 UIAutomator2 + OpenCV 这套组合的技术原理,以及它和”外挂”的边界在哪。

二、技术原理:UI 自动化是怎么工作的

移动端 UI 自动化的本质是:用程序代替手指,去点、去滑、去读屏幕。常见三件套:

  • adb(Android Debug Bridge):电脑与安卓设备通信的桥梁,负责连接与指令下发。
  • UIAutomator2:在设备上运行一个无障碍服务,模拟点击、滑动、输入,并能读取界面上的控件树。
  • OpenCV:计算机视觉库,用来”看”屏幕——通过模板匹配识别货物、红包、升级箭头等 UI 元素的位置。

三者配合:adb 连上设备 → UIAutomator2 执行操作 → OpenCV 判断”现在该点哪”。

三、为什么它不等于”外挂”

区分自动化脚本和外挂,关键看三点:

  1. 是否修改游戏逻辑:本文方案只模拟触控、读取界面,不修改游戏内存、不注入代码、不改绘制文件。
  2. 是否破坏公平:《家国梦》是纯单机放置游戏,自动收币不影响任何其他玩家,没有竞技公平性可言。
  3. 是否遵守用户协议:用于自己设备上的休闲效率提升,与联机竞技作弊性质完全不同。

外挂的本质是”篡改规则获得不正当优势”;合规自动化的本质是”把人从重复劳动里解放出来”。方向不同,性质不同。

四、实操要点(以单机休闲游戏为例)

  • 环境:Python 3 + UIAutomator2 + OpenCV;模拟器开启 USB 调试。
  • 连接:adb connect 127.0.0.1:7555 → python -m uiautomator2 init。
  • 识别:用 OpenCV 模板匹配定位目标 UI,配置要操作的”建筑编号/收货过滤”等参数。
  • 节奏:操作间隔适中,避免无意义的超高频点击。

五、合规边界与风险提示

  • 仅用于单机、非竞技、自有设备的效率场景;
  • 不要把它套到联机、排行、对抗类游戏上,那会触碰外挂红线与封号风险;
  • 第三方修改版、注入类工具常夹带恶意代码,远离;
  • 尊重游戏用户协议,把自动化当”省力工具”而非”取胜手段”。

六、结语

用 UIAutomator2 + OpenCV 做 UI 自动化,是测试工程师和个人效率玩家的实用技能。把它用在对的地方——比如自己的单机休闲游戏、重复的办公流程——既合法又能真正省时间。技术没有原罪,分寸在你手里。

常见问题(FAQ)

技术原理:UI 自动化是怎么工作的
移动端 UI 自动化的本质是:用程序代替手指,去点、去滑、去读屏幕。常见三件套:
为什么它不等于”外挂”
区分自动化脚本和外挂,关键看三点: 外挂的本质是”篡改规则获得不正当优势”;合规自动化的本质是”把人从重复劳动里解放出来”。方向不同,性质不同。
实操要点(以单机休闲游戏为例)
环境:Python 3 + UIAutomator2 + OpenCV;模拟器开启 USB 调试。 连接:@@BLK@@ → @@BLK@@。 识别:用 OpenCV 模板匹配定位目标 UI,配置要操作的”建筑编号/收货过滤”等参数。 节奏:操作间隔适中,避免无意义的超高频点击。