站点图标 高效码农

别再写脚本了!用一句话,让AI自动操控安卓手机,效率飙升500%

告别复杂脚本:用一句自然语言,让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会自主完成以下思考与行动链:

  1. 理解指令:解析你的自然语言,明确目标(打开抖音、刷视频、条件性点赞)。
  2. 感知屏幕:实时分析手机屏幕截图,识别出App图标、搜索框、视频内容、点赞按钮等UI元素。
  3. 规划步骤:生成一系列具体的操作指令序列(启动App->点击搜索->输入关键词->识别视频内容->判断并点击点赞)。
  4. 执行与反馈:通过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接收视频流和实时日志,体验非常流畅。

核心代码一瞥

  1. 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)
  1. “指哪打哪”的坐标转换(前端):
    当你在网页的屏幕镜像上点击时,系统会精确计算这个点击位置对应到真实手机屏幕上的物理坐标,确保操作的准确性。

快速上手指南: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的电脑,能够获得更快的响应速度。

启动项目

  1. 克隆开源项目到本地。
  2. 启动后端:进入backend目录,安装Python依赖后,运行启动脚本。服务将在http://localhost:8001运行,并提供完整的API文档。
  3. 启动前端:进入frontend目录,安装Node.js依赖后,启动开发服务器。访问http://localhost:5173即可打开控制界面。
  4. 连接设备:用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: 请按以下步骤排查:

  1. 在电脑终端运行 adb devices,查看设备是否列出并显示为“device”状态(而非“unauthorized”)。
  2. 如果显示“unauthorized”,请在手机屏幕上弹出的“允许USB调试?”对话框中勾选“始终允许”并确认。
  3. 确保手机已开启“开发者选项”和“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,或参与到开源贡献中。技术世界的进步,正源于每一次分享与协作。

退出移动版