本文首发地址 https://h89.cn/archives/580.html

上周我把公司项目跑在 AI 手机控制上,结果有点意外——不是惊喜,是意外。

说白了,现在 AI 控制手机这事,概念很火,但真刀真枪跑起来,要么是玩具,要么是半成品。本文把目前所有主流技术路线摸了一遍,从 ADB 脚本到多模态 Agent,逐一说清楚谁能用、谁好用、谁在吹牛。

封面:机器人手臂触碰手机屏幕,神经网络可视化


先说结论

目前 AI 控制安卓手机有四条路:

方案 成熟度 上手难度 局限性
ADB + 脚本 ★★★★ 无法理解 UI,只能按坐标操作
Appium / uiautomator2 ★★★ 元素定位脆弱,维护成本高
多模态 Mobile Agent ★★ 幻觉严重,依赖强大 LLM
商业 AI 手机助手 ★★★ 封闭,不可定制

没有银弹。不同场景选不同方案,下面详细说。


一、ADB:最底层、最可控的方案

ADB(Android Debug Bridge)是 Google 官方提供的调试工具,所有其他方案的底层都离不开它。

它能做什么:

  • adb shell input tap x y — 模拟点击坐标
  • adb shell input swipe x1 y1 x2 y2 — 模拟滑动
  • adb shell input text "hello" — 输入文本
  • adb shell screencap — 截图
  • adb shell uiautomator dump — 导出当前界面 XML

典型工作流程:

用户指令 → LLM 解析意图 → 生成 ADB 命令序列 → 执行 → 截图验证 → 循环

核心问题: ADB 本身不"懂"界面。你告诉它"点微信",它不知道微信在哪,得靠坐标或者额外的图像识别来定位元素。

推荐项目:

Appium — 业界最成熟的移动端自动化框架,底层通过 ADB 操作 UiAutomator,支持多语言客户端。适合需要长期维护测试用例的团队。


二、uiautomator2:Python 圈的自动化神器

uiautomator2 是国内团队维护的 Python 库,封装了 Google 的 UiAutomator2,比 Appium 更轻量。

import uiautomator2 as u2

d = u2.connect()
d(text="微信").click()           # 通过文本定位元素
d(resourceId="com.tencent.mm:id/abc").click()  # 通过资源ID
d.screenshot("screen.png")        # 截图

优点:

  • Python 上手,生态丰富
  • 可以配合 OpenCV / YOLO 做视觉定位
  • 社区活跃,中文文档齐全

缺点:

  • 元素定位依赖 XML 层级,界面一改就挂
  • 需要真机或模拟器,不能云端运行

进阶玩法: 用 YOLO 或 SAM(Segment Anything)识别 UI 元素,配合 uiautomator2 执行动作。这种"视觉+自动化"的组合是目前国内 AI 手机控制最常见的技术选型。


三、多模态 Mobile Agent:最接近"自动驾驶"的路

这是 2024 年最火的研究方向。核心思路是:给 LLM 截一张手机截图,让它自己理解界面、规划动作、执行任务。

AppAgent(2023.12)— 多模态 Agent 开创性工作

AppAgent 是这个领域的开创性工作,来自南洋理工大学团队,发表在 arXiv:2312.13771,GitHub 仓库已下线,但论文仍有参考价值。

原理:

  1. 截图 → Base64 编码 → 发送给 GPT-4V(或同类多模态模型)
  2. 模型输出动作(点击、滑动、输入等)
  3. 通过 ADB 执行动作
  4. 循环直到任务完成

论文验证过的任务:

  • 打开并操作任意 App
  • 图片编辑(调整亮度、滤镜)
  • 发送邮件
  • 地图导航

局限: 每个动作都要调用 LLM,成本高;复杂任务容易走偏。

这些论文目前更多是研究验证,离产品化还有距离。实际落地的主要是 AppAgent 的思路——截图喂给视觉 LLM,执行 ADB 动作。


四、最成熟可用的开源方案:mobilerun

droidrun/mobilerun 是目前 GitHub 上最活跃的移动端 AI 控制框架,8.2k stars,852 forks,MIT 许可证,2026 年 4 月还有更新。

确认支持的功能:

  • Android + iOS 双平台(不只是 Android)
  • 多 LLM:OpenAI、Anthropic、Gemini、Ollama、DeepSeek 任选
  • 截图视觉理解 + 自然语言指令
  • CLI 三步上手 + Python API 扩展
  • 支持复杂多步任务规划
  • 有云端付费服务 + 独立 benchmark
# 前置依赖:adb(Android SDK Platform Tools)
# macOS: brew install android-platform-tools
# Ubuntu: sudo apt install adb

pip install mobilerun
mobilerun setup        # 安装 portal 到手机
mobilerun configure   # 配置 LLM provider
mobilerun run "打开微信,给朋友发消息说hello"

Demo 案例:住宿预订、社交媒体内容抓取、语言学习 App 自动化。

如果你想快速体验 AI 控制手机,这是目前最推荐的起点。


五、实际踩坑:为什么你的 AI 手机控制总是翻车

1. 截图质量决定一切

国内 App 大量使用自定义控件,UiAutomator 的 XML dump 经常拿不到正确的元素信息。这时候只能靠截图 + 视觉识别,但低分辨率截图会导致模型误判。

建议: 截图用 adb shell screencap -p 输出原始 RGB,不要压缩。

2. 界面动态内容让 LLM 困惑

通知栏、广告弹窗、实时聊天界面——这些变化剧烈的界面会让 Agent 陷入循环。

建议: 动作执行前先做页面稳定性检测,界面剧烈变化时等待或重试。

3. 隐私数据脱敏

如果要长期运行自动化流程,相册、聊天记录、密码等隐私数据的处理是个坑。截图会带着这些信息上传给 LLM,要有意识地做区域遮挡。

4. 国产定制系统的兼容性问题

华为、小米、OPPO 的定制系统对后台进程有不同的管控策略。uiautomator2 在某些机型上需要额外权限配置。


六、我的判断

短期内(1-2年)最实用的方案:

视觉 LLM + ADB + 规则护栏

用视觉 LLM 理解界面,用 ADB 执行动作,用规则引擎兜底防止失控。这套组合适合有技术能力的团队做垂直场景自动化,比如:自动发布内容、自动测试 App、自动填表。

纯 AI Agent 方案(Mobile Agent 类)目前还不够可靠,主要问题是幻觉导致的错误动作累积。但它是未来的方向,值得持续关注。

最不推荐: 直接买所谓"AI 手机助手"的商业产品。这类工具大多是把 GPT-4V API 包装了一下,没有针对移动端场景做优化,性价比极低。


参考文献


本文链接:你的手机以后可以自己动了:实测 4 种 AI 控制方案 - https://h89.cn/archives/580.html

版权声明:原创文章 遵循 CC 4.0 BY-SA 版权协议,转载请附上原文链接和本声明。

标签: adb, Agent, uiautomator2, AppAgent

添加新评论