使用 longarm 和 AI Agent 构建更安全的 Android 游戏批处理任务
- Metaphor Projects
- Android 自动化
- 12 Aug, 2026
许多手机游戏都有一个简单的重复循环:开始一局,让它进行,收集结果,然后重新开始。当游戏允许这类自动化时,longarm 可以让这个循环在 Android 手机上变得可重复执行,而无需让远程服务访问屏幕。
本文以一个通用的塔防类游戏为例。目的并不是绕过游戏规则、广告、内购、频率限制或反作弊保护。请查阅游戏的条款,仅在允许的范围内使用自动化。

让 AI Agent 和 longarm 分工协作
AI Agent 最擅长的是配置和验证。它可以检查截图、确定正确的屏幕区域、逐一测试每个动作,并根据已验证的动作构建批处理任务。
longarm 最擅长的是执行。任务保存后,它会打开应用、执行手势、等待视觉状态出现,并在设备本地重复这个循环。
这种分工很重要。一个长时间运行的任务不应该盲目地重复根据单张截图做出的猜测。
先逐个测试单个动作
在创建批处理任务之前,先让 Agent 独立测试每个动作:
- 打开游戏应用包,确认出现预期的主屏幕。
- 截取一张带坐标网格的屏幕图像。
- 点击 Start 或 Battle 按钮,确认一局游戏真正开始。
- 结束或等待一局测试局,截取结果画面,并找出 Retry 按钮。
- 点击一次 Retry,确认下一局开始。
这一步能捕捉到两个常见问题:截图在查看器中可能被缩放,而基于 Unity 的游戏可能不会通过 Android 无障碍(Accessibility)暴露其控件。
用 OCR 判断一局是否结束
对于普通的 Android 应用,无障碍选择器是理想方案。但用 Unity 或其他自绘引擎制作的游戏通常自行绘制文本和控件,因此无障碍节点树可能是空的。
longarm 1.3.0 新增了设备端 OCR 条件。批处理任务可以截取当前屏幕的一个裁剪区域,并等待识别到诸如 RETRY 之类的文字。将裁剪范围紧贴预期的结果按钮,可以减少计算量,也能避免匹配到不相关的文字。
例如,任务可以这样等待结果画面出现:
{
"type": "wait_for_ocr",
"params": {
"text": "RETRY",
"match": "contains",
"x": 50,
"y": 1450,
"width": 430,
"height": 400,
"pollIntervalMs": 120000,
"timeoutMs": 3600000
}
}
任务会先等待一局预计的最短持续时间,然后每两分钟检查一次该屏幕区域。相比持续检查,这种方式通常更省电。
组装批处理循环
一个可靠的任务通常包含四个阶段:
- 打开游戏的目标 Activity。
- 点击已验证的 Start 或 Battle 坐标。
- 等待最短时间后,再等待 OCR 找到结果控件。
- 点击已验证的 Retry 坐标,然后重复。
使用固定的最大循环次数和合理的 OCR 超时时间。这两者能让任务有一个明确的终点,而不是让一个无人看管的循环永远运行下去。
保持对任务的控制
longarm 的 Stop 按钮可以立即中断普通延时和 OCR 等待。在让较长的运行无人看管之前,先用一个短小的一次性任务测试一下 Stop 功能。
保持设备电量充足、保持无障碍功能开启,并确保游戏不会弹出遮住结果按钮的对话框。如果游戏更改了界面布局,请在重新启动已保存的循环之前重新执行单个动作的验证步骤。
为什么 AI Agent 仍然有用
AI Agent 不需要参与每一次点击。它的价值在于让自动化变得可解释、可测试:它可以检查屏幕、判断是否适合使用 OCR、选择裁剪区域、验证坐标,并保存一个可复用的 longarm 批处理任务。
这能把一个脆弱的宏,变成一个你可以随时检查、停止、调整并在合适时再次运行的本地工作流。