news 2026/3/24 21:02:19

极客新玩具:用AI接管你的安卓设备(附代码)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
极客新玩具:用AI接管你的安卓设备(附代码)

极客新玩具:用AI接管你的安卓设备(附代码)

摘要:本文带你亲手部署智谱开源的 Open-AutoGLM 手机 AI Agent 框架,无需云端依赖、不上传截图、完全本地运行。从零开始连接真机、配置输入法、下载模型、执行指令,全程可复现。你将亲眼看到——一句“打开小红书搜美食”,AI 自动点亮屏幕、解锁、启动App、点击搜索框、输入文字、按下回车。这不是概念演示,是今天就能跑通的极客实践。


1. 这不是遥控器,是你的手机“数字分身”

1.1 它到底能做什么?

Open-AutoGLM 不是另一个“语音助手”,它是一套真正理解手机界面、能自主决策并动手操作的 AI 助理。它的能力边界,由你的一句话定义:

  • “帮我在美团点一份黄焖鸡米饭,备注不要香菜”
    → AI 自动打开美团、定位店铺、选择套餐、填写备注、提交订单
  • “打开微信,找到‘产品组’群,把刚截的图发过去”
    → AI 切换到微信、搜索群名、进入聊天页、调出相册、选图发送
  • “在B站搜索‘大模型部署教程’,只看播放量超50万的视频”
    → AI 启动B站、输入关键词、筛选排序、点击目标视频

关键在于:它不靠预设脚本,而是实时看图、读UI、想步骤、再动手。每一次操作,都基于对当前屏幕状态的真实理解。

1.2 和普通自动化工具的本质区别

工具类型依赖方式灵活性隐私性学习成本
Tasker / Automate基于坐标/ID硬编码极低(界面一变就失效)高(纯本地)高(需写逻辑)
Appium / UI Automator基于元素XPath/ID中(需适配不同App结构)中(需调试权限)高(需写代码)
Open-AutoGLM基于视觉+语言理解极高(一句话适配所有App)极高(截图不出设备)极低(只需说人话)

它把“写自动化脚本”的活,交给了大模型。你不用再研究按钮在哪、怎么找元素,只要告诉它“要什么”,剩下的交给AI。

1.3 为什么现在就能玩?三个现实优势

  • 真·本地运行:模型跑在你的Mac或Windows电脑上,手机截图全程不离设备,隐私零泄露
  • 真·免配置启动:不需要GPU服务器、不依赖云API、不填密钥,一条命令直接开干
  • 真·真机可用:不是模拟器Demo,是USB直连你手里的小米、华为、OPPO、三星,实打实操控

这不是未来科技,是你今晚插根数据线就能上手的极客玩具。


2. 三步打通“人话→手机动作”的全链路

2.1 整体工作流:感知-思考-行动闭环

Open-AutoGLM 的每一次任务执行,都严格遵循这个循环:

┌─────────────────────────────────────────────────────────────┐ │ AI 接管手机全流程 │ ├─────────────────────────────────────────────────────────────┤ │ │ │ ┌──────────────────┐ ┌──────────────────┐ │ │ │ 感知层 │ │ 思考层 │ │ │ │ • 截图当前屏幕 │ ──→ │ • 看懂按钮/文字 │ │ │ │ • 解析UI元素树 │ │ • 理解App状态 │ │ │ │ • 获取Activity名 │ │ • 规划下一步动作 │ │ │ └──────────────────┘ └──────────────────┘ │ │ ↓ ↓ │ │ ┌───────────────────────────────────────────────────────┐ │ │ │ 执行层 │ │ │ │ • Tap (x,y) —— 点击坐标 │ │ │ │ • Type("美食") —— 输入文字 │ │ │ │ • Launch("com.xiaohongshu.app") —— 启动App │ │ │ │ • Swipe(500,1000,500,300) —— 向上滑动 │ │ │ └───────────────────────────────────────────────────────┘ │ │ ↑ │ │ └──────────────────────────────────────────────┘ │ 循环直到任务完成(或人工介入) │ └─────────────────────────────────────────────────────────────┘

整个过程全自动,但你始终拥有控制权——当遇到支付密码、短信验证码等敏感场景,AI会主动暂停,等你手动输入后继续。

2.2 核心组件拆解:每个模块都为你而简

视觉感知模块
每次操作前,AI先“看”一眼手机屏幕:

  • adb shell screencap -p→ 获取PNG截图(约1MB/张)
  • adb shell uiautomator dump→ 获取XML界面树(含所有按钮文本、坐标、层级)
  • 两者结合,让AI既知道“屏幕上有什么”,也清楚“每个东西在哪”

多模态推理引擎
AutoGLM-Phone-9B 模型同时接收:

  • 文本指令(如:“打开抖音搜AI教程”)
  • 截图图像(当前界面长什么样)
  • UI结构数据(哪些是可点击按钮、输入框在哪)
    → 输出带思考过程的JSON指令:
<think>用户要搜AI教程,当前在抖音首页,顶部有搜索框,ID为'com.ss.android.ugc.aweme:id/a6d'</think> <answer>{"action": "Tap", "element_id": "com.ss.android.ugc.aweme:id/a6d"}</answer>

ADB执行中枢
把模型输出的JSON,翻译成真实ADB命令:

  • {"action": "Tap", "element_id": "xxx"}adb shell input tap 520 180
  • {"action": "Type", "text": "AI教程"}adb shell am broadcast -a ADB_INPUT_TEXT --es msg 'AI教程'
  • {"action": "Launch", "package": "com.ss.android.ugc.aweme"}adb shell am start -n com.ss.android.ugc.aweme/.main.MainActivity

整套链路,没有黑盒,每一步你都能在终端里看到、验证、甚至手动复现。


3. 本地部署实战:从零开始,30分钟搞定

3.1 环境准备:只要三样东西

项目要求验证方式
你的电脑Windows 10+/macOS 13+/Linux Ubuntu 20.04+python --version≥ 3.10
安卓手机Android 7.0+(真机优先,模拟器次选)设置→关于手机→版本号连点7次开启开发者模式
数据线支持数据传输的USB-C/USB-A线(纯充电线不行)adb devices能识别出设备

提示:Mac用户推荐用Homebrew安装ADB;Windows用户直接下载platform-tools,解压后加到系统PATH。

3.2 手机端设置:四步到位

  1. 开启开发者选项
    设置 → 关于手机 → 连续点击“版本号”7次 → 弹出“您已处于开发者模式”

  2. 开启USB调试
    设置 → 系统 → 开发者选项 → 打开“USB调试”和“USB安装”

  3. 安装ADB Keyboard(关键!)
    下载 ADBKeyboard.apk

    adb install ADBKeyboard.apk

    设置 → 语言和输入法 → 管理键盘 → 启用“ADB Keyboard”

  4. 首次连接授权
    用数据线连接手机和电脑 → 手机弹出“允许USB调试?”→ 勾选“始终允许”→ 点确定
    终端执行:

    adb devices # 正常输出应为: # List of devices attached # 1234567890abcdef device

3.3 一键部署控制端

# 1. 克隆官方仓库(国内用户建议用镜像加速) git clone https://github.com/zai-org/Open-AutoGLM.git cd Open-AutoGLM # 2. 创建虚拟环境(推荐,避免依赖冲突) python -m venv venv source venv/bin/activate # macOS/Linux # venv\Scripts\activate # Windows # 3. 安装核心依赖(自动适配CPU/GPU) pip install -r requirements.txt pip install -e . # 4. 验证安装成功 python -c "from phone_agent.adb import list_devices; print(list_devices())" # 应输出已连接设备列表

注意:如果报错No module named 'torch',请先单独安装:
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cpu


4. 第一次接管:用一句话启动你的AI助理

4.1 最简启动命令(USB直连)

确保手机已通过USB连接且被adb devices识别,执行:

python main.py \ --device-id $(adb devices | sed -n '2p' | awk '{print $1}') \ --local \ --model ./models/AutoGLM-Phone-9B \ "打开小红书搜索美食"
  • --device-id:自动获取第一个连接设备ID
  • --local:启用本地MLX推理(无需云服务)
  • --model:指向你已下载的模型路径(见下一节)
  • 最后字符串:你的自然语言指令

你会看到终端逐行输出:

[INFO] 截图已保存: screenshots/20240520_142211.png [INFO] UI结构已解析: elements.xml [INFO] 模型正在思考... <think>当前在桌面,小红书图标在第三行第二列,需要点击启动</think> <answer>{"action": "Tap", "element": [420, 1280]}</answer> [INFO] 执行: adb shell input tap 420 1280 [INFO] 等待应用启动...

几秒后,手机自动亮屏、解锁(如需)、打开小红书、点击搜索框、输入“美食”、按下搜索键——全程无需你碰手机。

4.2 模型下载指南(国内用户友好版)

模型约20GB,推荐用国内镜像加速:

# 方法1:使用ModelScope(最快,推荐) pip install modelscope python -c " from modelscope import snapshot_download snapshot_download('ZhipuAI/AutoGLM-Phone-9B', local_dir='./models/AutoGLM-Phone-9B') " # 方法2:HuggingFace镜像(备选) export HF_ENDPOINT=https://hf-mirror.com huggingface-cli download --resume-download zai-org/AutoGLM-Phone-9B --local-dir ./models/AutoGLM-Phone-9B

小技巧:若磁盘空间紧张,可直接下载4-bit量化版(约6.5GB),加载更快:
huggingface-cli download --resume-download zai-org/AutoGLM-Phone-9B-4bit --local-dir ./models/AutoGLM-Phone-9B-4bit

4.3 WiFi无线控制(摆脱数据线束缚)

  1. 手机开启“无线调试”(设置→开发者选项→无线调试→开启)
  2. 电脑与手机连同一WiFi,执行:
    # 先用USB临时开启TCP/IP adb tcpip 5555 # 断开USB,用WiFi连接(IP地址在手机无线调试页面可见) adb connect 192.168.1.100:5555 adb devices # 应显示 192.168.1.100:5555 device
  3. 启动命令替换--device-id
    python main.py \ --device-id 192.168.1.100:5555 \ --local \ --model ./models/AutoGLM-Phone-9B \ "打开B站刷3个视频"

5. 实战任务库:复制粘贴,立刻生效

5.1 社交通讯类(高频刚需)

# 给指定联系人发固定消息 python main.py --local --model ./models/AutoGLM-Phone-9B "打开微信,找到张三,发送:会议推迟到明天下午三点" # 发送图片(需提前存入手机相册) python main.py --local --model ./models/AutoGLM-Phone-9B "打开微信,给李四发昨天拍的夕阳照片" # 多人群发通知 python main.py --local --model ./models/AutoGLM-Phone-9B "打开微信,在‘项目组’群里发:今日站会取消"

5.2 电商外卖类(解放双手)

# 美团点单(自动定位、选店、加购、提交) python main.py --local --model ./models/AutoGLM-Phone-9B "打开美团外卖,点一份黄焖鸡米饭,备注不要香菜,送到工位" # 淘宝比价(跨店搜索+排序) python main.py --local --model ./models/AutoGLM-Phone-9B "打开淘宝,搜索蓝牙耳机,按销量排序,打开第一个商品页" # 快递查询(自动跳转物流页) python main.py --local --model ./models/AutoGLM-Phone-9B "打开菜鸟,查快递单号SF123456789CN"

5.3 内容创作类(极客生产力)

# 小红书图文生成(自动填充文案+发布) python main.py --local --model ./models/AutoGLM-Phone-9B "打开小红书,新建笔记,标题:Mac本地部署AI助理实录,正文:今天成功用Open-AutoGLM接管了我的安卓手机..." # B站投稿(自动填标题、标签、封面) python main.py --local --model ./models/AutoGLM-Phone-9B "打开B站,发布新视频,标题:手把手教你用AI控制手机,标签:AI,自动化,极客" # 网易云歌单整理(自动创建+添加歌曲) python main.py --local --model ./models/AutoGLM-Phone-9B "打开网易云音乐,创建歌单‘AI学习曲库’,添加周杰伦的晴天、夜曲"

5.4 故障自愈:当AI卡住时,你该做什么

  • 场景1:遇到登录页/验证码
    AI会输出:<takeover>请手动输入手机号验证码</takeover>
    → 你输入验证码 → 回车 → AI继续执行

  • 场景2:截图失败(黑屏)
    常见于银行/支付App,AI会提示:<takeover>检测到安全限制,需人工操作</takeover>
    → 你手动完成支付 → 回车 → AI继续

  • 场景3:长时间无响应
    Ctrl+C中断,重新运行命令即可,无需重启模型

  • 场景4:点击位置偏移
    在命令后加--calibrate参数,AI会自动校准屏幕坐标系:

    python main.py --local --model ./models/AutoGLM-Phone-9B --calibrate "打开微信"

6. 进阶玩法:让AI更懂你

6.1 Python API调用:嵌入你的工作流

from phone_agent import PhoneAgent from phone_agent.model import ModelConfig from phone_agent.agent import AgentConfig # 配置本地模型(支持量化版) model_config = ModelConfig( model_name="./models/AutoGLM-Phone-9B-4bit", is_local=True, max_tokens=2000, ) # 配置Agent行为 agent_config = AgentConfig( max_steps=30, # 最多执行30步 verbose=True, # 显示详细日志 lang="cn", # 中文指令 device_id="192.168.1.100:5555", # WiFi设备 ) # 创建并运行 agent = PhoneAgent(model_config=model_config, agent_config=agent_config) result = agent.run("打开抖音,关注博主dycwo11nt61d") print("任务结果:", result)

6.2 自定义敏感操作拦截

def my_payment_guard(message: str) -> bool: """支付类操作强制二次确认""" if "支付" in message or "付款" in message or "余额" in message: print(f" 检测到高风险操作:{message}") return input("确认执行?(y/N): ").lower() == "y" return True # 其他操作默认放行 agent = PhoneAgent( confirmation_callback=my_payment_guard, )

6.3 批量任务处理:解放重复劳动

tasks = [ "打开微信,给王五发:周末聚餐地点改到三里屯", "打开高德地图,搜索‘最近的咖啡馆’", "打开Keep,开始30分钟燃脂训练", ] for i, task in enumerate(tasks, 1): print(f"\n--- 执行第{i}个任务:{task} ---") result = agent.run(task) print(f" 完成:{result.get('status', 'unknown')}") agent.reset() # 重置状态,准备下一个任务

7. 常见问题速查(亲测有效)

Q1:adb devices显示unauthorized

→ 手机上未点“允许USB调试”,拔插数据线重试;或在开发者选项中关闭再开启USB调试

Q2:执行时报错No module named 'mlx'

→ 你用的是Windows/macOS ARM芯片?请先安装:

pip install mlx "git+https://github.com/Blaizzy/mlx-vlm.git@main"

Q3:中文输入不了,显示方块或乱码

→ 确认已安装ADB Keyboard,并在手机“语言和输入法”中设为默认输入法
→ 终端验证:adb shell ime list -s | grep adb应输出com.android.adbkeyboard/.AdbIME

Q4:模型加载慢/内存不足

→ 使用4-bit量化模型(见4.2节)
→ 关闭浏览器、IDE等内存大户
→ Mac用户:活动监视器→强制退出“WindowServer”进程(可释放数GB显存)

Q5:WiFi连接后adb devices显示offline

→ 手机端开启“无线调试”后,需在电脑端先执行:

adb kill-server adb start-server adb connect 192.168.1.100:5555

Q6:任务执行到一半卡住不动

→ 检查手机是否息屏/锁屏 → AI无法操作黑屏界面,请保持屏幕常亮
→ 或按Ctrl+C中断后,加--timeout 60参数延长等待时间


8. 总结:这不只是一个工具,而是一种新交互范式

Open-AutoGLM 的价值,远不止于“自动点手机”。它代表了一种更自然的人机协作方式:

  • 你不再学机器的语言(XPath、坐标、ADB命令),而是让机器学你的语言(“帮我订杯咖啡”)
  • 你不再维护脆弱的脚本(App更新就失效),而是交付一个能自主适应的智能体(看图识UI,动态规划)
  • 你不再妥协隐私与便利(云端API要传截图),而是在本地获得完整控制权(所有数据,永不离机)

作为极客,我们追求的从来不是“能用”,而是“够酷、够自由、够透明”。Open-AutoGLM 把这三个词,变成了终端里一行行可读、可改、可验证的代码。

现在,你的安卓手机已经准备好被接管。
插上数据线,打开终端,输入第一句指令——
真正的数字分身时代,从这一行命令开始。

--- > **获取更多AI镜像** > > 想探索更多AI镜像和应用场景?访问 [CSDN星图镜像广场](https://ai.csdn.net/?utm_source=mirror_blog_end),提供丰富的预置镜像,覆盖大模型推理、图像生成、视频生成、模型微调等多个领域,支持一键部署。
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/3/24 15:21:41

开箱即用的视觉AI工具:Qwen2.5-VL-7B本地部署与使用教程

开箱即用的视觉AI工具&#xff1a;Qwen2.5-VL-7B本地部署与使用教程 你是否试过把一张商品截图丢给AI&#xff0c;几秒后就拿到可直接复用的HTML代码&#xff1f; 是否在会议中随手拍下白板上的手绘流程图&#xff0c;立刻生成结构清晰的Markdown文档&#xff1f; 又或者&…

作者头像 李华
网站建设 2026/3/23 20:35:25

EasyAnimateV5-7b-zh-InP企业级部署:Nginx反向代理+HTTPS+访问权限控制配置

EasyAnimateV5-7b-zh-InP企业级部署&#xff1a;Nginx反向代理HTTPS访问权限控制配置 1. 企业级部署概述 EasyAnimateV5-7b-zh-InP是一款专注于图像到视频转换任务的AI模型&#xff0c;在企业级应用中需要确保服务的高可用性、安全性和可控性。本文将详细介绍如何通过Nginx反…

作者头像 李华
网站建设 2026/3/22 7:38:52

DriverStore Explorer:完全掌控Windows驱动存储的高效管理工具

DriverStore Explorer&#xff1a;完全掌控Windows驱动存储的高效管理工具 【免费下载链接】DriverStoreExplorer Driver Store Explorer [RAPR] 项目地址: https://gitcode.com/gh_mirrors/dr/DriverStoreExplorer 在Windows系统维护中&#xff0c;驱动程序管理往往是最…

作者头像 李华
网站建设 2026/3/22 7:38:50

PDF翻译工具BabelDOC:专业级双语对照与格式保留解决方案

PDF翻译工具BabelDOC&#xff1a;专业级双语对照与格式保留解决方案 【免费下载链接】BabelDOC Yet Another Document Translator 项目地址: https://gitcode.com/GitHub_Trending/ba/BabelDOC BabelDOC是一款专注于PDF文档翻译的专业工具&#xff0c;能够在保持原始格式…

作者头像 李华
网站建设 2026/3/22 7:38:48

立知-lychee-rerank-mm效果展示:游戏截图与玩家反馈语义关联

立知-lychee-rerank-mm效果展示&#xff1a;游戏截图与玩家反馈语义关联 1. 这不是“又一个重排序模型”&#xff0c;而是让图文真正“说上话”的轻量级多模态搭档 你有没有遇到过这样的情况&#xff1a;在游戏社区里搜“卡顿怎么解决”&#xff0c;结果排在前面的却是几篇讲…

作者头像 李华
网站建设 2026/3/22 7:38:46

新手避坑:Live Avatar常见问题全解与解决方案

新手避坑&#xff1a;Live Avatar常见问题全解与解决方案 1. 为什么你总在启动时卡住&#xff1f;显存真相大白 刚下载完Live Avatar&#xff0c;满怀期待地敲下bash infinite_inference_multi_gpu.sh&#xff0c;结果终端卡在“Loading model…”不动了&#xff1f;别急着重…

作者头像 李华