告别复杂脚本:用一句自然语言,让AI替你操控Android手机
你是否曾被这些场景困扰过?
-
需要为多台测试手机重复执行相同的点击、滑动操作? -
想要自动化测试App功能,却被复杂的脚本和API学习门槛劝退? -
需要从应用里批量采集数据,手动操作既枯燥又容易出错? -
希望有更智能的工具来录制和回放操作流程?
今天,我要向你介绍一个能彻底改变你与Android设备交互方式的开源项目:AI Auto Touch。它不是一个简单的遥控器,而是一个真正能“听懂”你说话、能“看懂”手机屏幕的AI自动化平台。你只需用日常语言下达指令,剩下的交给AI。
核心摘要:什么是AI Auto Touch?
AI Auto Touch是一个基于清华大学AutoGLM多模态大模型的Android设备智能控制平台。它允许用户直接使用自然语言(如“打开小红书,搜索博主‘热爱技术的小牛’”)来控制手机,无需编写任何自动化脚本。平台集成了低延迟(30-100ms)的实时屏幕镜像、多设备批量管理以及完整的REST API,将AI理解与设备操控无缝结合,显著降低了自动化测试、数据采集和重复操作任务的技术门槛与时间成本。
项目核心:当AI“学会”操作手机
传统的手机自动化依赖于精确的坐标点击或元素定位脚本,不仅编写费时,一旦应用界面更新就容易失效。AI Auto Touch的核心突破在于,它引入了一个能同时理解文字和图像的“大脑”——AutoGLM多模态大模型。
这意味着,你不需要告诉AI“在屏幕(320, 450)的位置点击”,而是可以直接说:“打开抖音,刷10个视频,点赞包含‘美食’的视频。”
AI会自主完成以下思考与行动链:
-
理解指令:解析你的自然语言,明确目标(打开抖音、刷视频、条件性点赞)。 -
感知屏幕:实时分析手机屏幕截图,识别出App图标、搜索框、视频内容、点赞按钮等UI元素。 -
规划步骤:生成一系列具体的操作指令序列(启动App->点击搜索->输入关键词->识别视频内容->判断并点击点赞)。 -
执行与反馈:通过ADB(Android调试桥)执行操作,并实时将过程与结果反馈给你。
更多“动口不动手”的实例
-
社交媒体侦查: “打开小红书,搜索博主‘热爱技术的小牛’,看下这个博主是干什么的,值得关注吗?”AI会执行搜索,分析主页内容,并给出总结性建议。 -
比价购物: “打开淘宝,搜索‘机械键盘’,查看前三个商品价格。”AI自动完成搜索、浏览、信息提取全过程。 -
日常操作: “打开微信,给‘文件传输助手’发送‘测试消息’。”
技术架构解析:如何实现“所说即所得”?
这个平台是如何构建的呢?其技术栈清晰而现代,分为前端、后端和底层服务三层。
整体架构图
┌─────────────────────────────────────────────────┐
│ Web前端 (React + TypeScript) │
└─────────────────┬───────────────────────────────┘
│ REST API + WebSocket (实时通信)
┌─────────────────▼───────────────────────────────┐
│ FastAPI 后端服务 │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
│ │ 设备管理 │ │ AI 服务 │ │ 屏幕服务 │ │
│ └──────────┘ └──────────┘ └──────────┘ │
└─────────────────┬───────────────────────────────┘
│
┌─────────┼─────────┐
│ │ │
┌───────▼──┐ ┌───▼────┐ ┌─▼────────┐
│ AutoGLM │ │ ADB │ │ scrcpy │
│ AI模型 │ │设备控制 │ │屏幕镜像 │
└──────────┘ └────────┘ └──────────┘
后端(FastAPI):作为中枢,协调三大服务。
-
设备管理服务:通过ADB扫描、连接和管理多台Android设备。 -
AI服务:调用AutoGLM模型,处理自然语言指令和屏幕图像,返回可执行的操作序列。 -
屏幕服务:基于Google开源项目scrcpy,提供高性能的屏幕镜像流。这是实现低于100毫秒延迟和20-30 FPS帧率实时画面的关键。
前端(React 18 + TypeScript):提供直观的Web控制界面。你可以在这里查看设备列表、发送AI指令,更重要的是,能直接看到手机屏幕的实时镜像,并通过点击网页上的图像来直接控制真机。前端通过WebSocket接收视频流和实时日志,体验非常流畅。
核心代码一瞥
-
AI决策流程(后端简化示意):
async def execute_ai_command(device_id: str, command: str):
# 1. 获取当前手机屏幕截图
screenshot = await capture_screen(device_id)
# 2. 将指令和截图一同发送给AutoGLM模型分析
response = await ai_model.analyze(command, screenshot)
# 3. 解析AI返回的“点击这里”、“输入文字”等操作序列
actions = parse_ai_response(response)
# 4. 通过ADB依次执行操作
for action in actions:
await execute_action(device_id, action)
-
“指哪打哪”的坐标转换(前端):
当你在网页的屏幕镜像上点击时,系统会精确计算这个点击位置对应到真实手机屏幕上的物理坐标,确保操作的准确性。
快速上手指南:5分钟开启AI操控之旅
看到这里,你可能已经想亲手试试了。部署过程非常清晰。
环境准备
-
电脑:安装Python 3.8+和Node.js 16+。 -
手机:一台Android设备,并开启“开发者选项”中的“USB调试”模式。 -
基础工具:在电脑上安装ADB和scrcpy(用于底层设备通信和屏幕镜像)。
关键一步:配置AI“大脑”
AI Auto Touch的强大依赖于AutoGLM模型。你有两种选择:
-
方式A(推荐新手):使用云端API服务(如智谱AI的BigModel平台)。只需注册获取一个API Key,填入项目配置文件中即可。无需本地硬件,快速体验。 -
方式B(追求性能与隐私):在本地部署模型。这需要一台拥有NVIDIA GPU且显存不小于24GB的电脑,能够获得更快的响应速度。
启动项目
-
克隆开源项目到本地。 -
启动后端:进入 backend目录,安装Python依赖后,运行启动脚本。服务将在http://localhost:8001运行,并提供完整的API文档。 -
启动前端:进入 frontend目录,安装Node.js依赖后,启动开发服务器。访问http://localhost:5173即可打开控制界面。 -
连接设备:用USB线连接手机,在网页点击“扫描设备”,选择你的手机即可连接。
连接成功后,你立即能看到两个核心功能页面:
-
实时屏幕显示与控制:享受延迟仅30-100ms的高清手机镜像。你可以直接点击网页上的屏幕来控制手机,也可以使用虚拟的Home、返回、音量等按键。 -
AI智能控制:在输入框中用自然语言下达指令,观察AI如何一步步思考并执行你的命令。
实际应用场景:不止于“玩具”
这个平台的设计初衷是解决实际问题,它在多个场景下能极大提升效率。
场景一:App自动化测试
无需学习Appium或UIAutomator的复杂语法。测试人员可以直接用自然语言编写测试用例:
test_cases = [
“打开应用,检查首页是否正常显示”,
“点击登录按钮,输入测试账号密码,检查是否登录成功”,
“进入个人中心,检查用户信息是否正确”,
]
AI会自动执行并报告结果,让测试用例的编写像写检查清单一样简单。
场景二:批量数据采集
运营或市场人员需要采集竞品信息时,不再需要手动截图和记录。
指令:“打开淘宝,搜索‘机械键盘’,记录前20个商品的名称、价格、销量和店铺名称。”
AI会自动操作、滚动、识别并提取结构化数据,最终可导出为Excel。
场景三:多设备批量操作
面对一房间的测试机,无需挨个操作。
# 同时对三台设备下发相同指令
await batch_control(“打开微信,给‘文件传输助手’发送‘测试消息’”)
这对于应用兼容性测试、批量安装或配置设备来说,是巨大的效率提升。
性能与优化:为流畅体验保驾护航
为了提供最佳体验,项目在多个层面进行了优化:
-
智能视频流传输:屏幕传输服务能动态调整图像质量和帧率。在网络不佳时自动降低画质保证流畅,画面静止时智能跳帧以减少带宽消耗。 -
并发控制:使用信号量机制,限制同时处理的高负载请求(如AI推理)数量,防止系统过载。 -
缓存策略:对设备信息、屏幕尺寸等不变的数据进行缓存,减少重复查询的开销。
常见问题解答 (FAQ)
Q1: 对我的浏览器有要求吗?
A: 是的。为了获得最佳的实时屏幕体验,你需要使用Chrome 94以上或Edge 94以上版本的浏览器,因为它们支持现代的视频解码技术(WebCodecs API)。Firefox和Safari暂不支持。
Q2: 为什么我点击控制按钮后,视频流会卡顿?
A: 这是一个已知且已在最新代码中修复的问题。早期的截图控制模式可能导致卡顿,现在完全切换到视频流模式后,控制指令采用非阻塞方式发送,避免了界面卡顿。请确保你使用的是项目的最新版本。
Q3: 我连接了手机,但网页里扫描不到设备怎么办?
A: 请按以下步骤排查:
-
在电脑终端运行 adb devices,查看设备是否列出并显示为“device”状态(而非“unauthorized”)。 -
如果显示“unauthorized”,请在手机屏幕上弹出的“允许USB调试?”对话框中勾选“始终允许”并确认。 -
确保手机已开启“开发者选项”和“USB调试”。
Q4: 除了USB,能无线连接吗?
A: 可以。对于Android 11及以上版本的设备,你可以先通过USB完成一次配对授权,之后即可使用无线ADB连接进行控制,更加灵活。
Q5: 本地部署AI模型硬件要求太高,有别的办法吗?
A: 完全有。项目首选推荐使用云端API服务(如智谱AI)。这种方式无需强大的本地GPU,只需一个API Key,就能体验完整的AI控制功能,非常适合初学者和个人开发者。
未来展望:路线图透露的潜力
开发团队已经规划了清晰的演进路径:
-
短期(1-3个月):将完善操作录制与回放功能,让你可以录制AI或手动操作的过程,并像播放视频一样重复执行。 -
中期(3-6个月):计划支持更多AI模型(如GPT-4V),并探索对iOS设备的控制支持。 -
长期(6-12个月):向着可视化流程编排、AI自动生成测试用例等更智能、更集成的企业级测试平台迈进。
结语:开源,让自动化触手可及
AI Auto Touch项目将前沿的多模态AI技术与扎实的设备控制工程相结合,真正降低了自动化操作的门槛。它不仅是开发者和测试人员的效率工具,也为所有想要探索“AI+自动化”可能性的人提供了一个绝佳的学习和实践平台。
项目已采用MIT协议在GitHub上开源,这意味着你可以自由地使用、修改甚至商用。无论是想直接应用来解决手头问题,还是想深入源码学习如何集成大模型与硬件控制,这个项目都提供了极高的价值。
项目地址:https://github.com/github653224/ai-auto-touch
如果你觉得这个项目有帮助,欢迎去GitHub点亮Star,或参与到开源贡献中。技术世界的进步,正源于每一次分享与协作。

