用 Gemini 3.7 Flash 控制 Android:截图直读坐标直点,手机自动化不再依赖控件树
上周 Google 发布了 Gemini 3.7 Flash——首个为编程与 Agent 工作流构建的混合推理模型。它的多模态推理和快速回合延迟,恰好是 Computer Use(计算机操控)最需要的素质:不用在点击之间等好几秒,模型看截图、规划下一步、输出精确坐标的速度足以保持设备控制循环的交互感。

为验证真实手机界面效果,Philipp Schmid 给了它一个任务:在 Wordle Unlimited 网站玩一局猜词。
手机自动化十五年的痛点
移动端测试自动化已经痛苦了十五年。Appium、Espresso、UIAutomator 全部依赖无障碍树、元素 ID 和 XPath 选择器。产品团队一跑 A/B 测试、重设计下单卡片、加个营销横幅,测试脚本就断了。
WebView 和动态 Canvas 游戏更糟——它们往往对 ADB 暴露零个无障碍节点,传统方案完全无从下手。
Gemini 3.7 Flash 提供了接近人类的路径:模型直接看原始截图,判断元素位置,
返回 0–999 归一化坐标用于点击、输入和按键。
Agent 循环怎么转
Agent 通过 ADB 连接 Android 模拟器,跑一个持续循环:
- 截图:ADB 执行
adb exec-out screencap -p并编码为 Base64。 - 评估:Gemini 3.7 Flash 检查图像并规划下一步。
- 发动作:Gemini 返回带归一化坐标和意图的工具调用(例如
click(x=884, y=190))。 - 执行:Python 脚本把 0–999 坐标映射到物理像素(1080x1920),触发
adb shell input tap <x> <y>。 - 继续:客户端抓新截图,随
function_result和previous_interaction_id回传。
核心调用代码(Python,google-genai SDK):创建 genai.Client() 后,把任务文本与首帧截图打包为多模态输入,调用 client.interactions.create,关键参数是 tools=[{"type": "computer_use", "environment": "mobile"}] 与 generation_config={"thinking_level": "medium"};循环里检查 interaction.steps 中的 function_call,没有调用即任务完成,有则逐个分发执行并把新截图作为 function_result 回传,用 previous_interaction_id 串起会话。
完整实现(含 ADBBridge 坐标缩放器、设备配置脚本和 CLI 运行器)在 google-gemini 的 gemini-android-computer-use-quickstart 开源仓库。
Wordle 实测全过程

第一步:启动与导航。 Agent 从主屏幕开始,按包名打开 Chrome,新开标签页,输入网址。

第二步:清弹窗。 页面加载后”玩法说明”和统计弹窗挡住棋盘,模型找到关闭图标逐个点掉。

第三步:猜第一词 CRANE。 棋盘干净后,它输入了经典的多元音开局词 C-R-A-N-E,每个字母一次带意图标注的坐标点击。
第四步:读色反馈推理。 游戏返回反馈:C 变黄(在词里但位置错),R、A、N 变灰(不在词里),E 变绿(第 5 位正确)。Gemini 据此推理”以 E 结尾、中间含 C、不含 R/A/N”的词,给出 SPICE——
五格全绿,模型看到胜利弹层后自动停止。
能拿来做什么
Wordle 是个干净的视觉基准,但底层循环对任何 Android 应用都通用:
- 自动化 UI 测试与用户流程验证
- 探索性 Bug 复现
- 通用任务自动化
因为模型直接操作原始截图,它在原生应用、WebView 和动态 Canvas 界面上都能工作,完全不依赖无障碍 ID 或 DOM 树——这是对十五年控件树范式的直接替代。
原文信息
作者:Philipp Schmid(@_philschmid),Google DeepMind Agent 工程师
原文地址:
讲解得很细致,新手也能看懂。
不错不错,已加入书签。