夜雨聆风学习资料网

ARTICLE · 1060857

Claude Code 接管一台虚拟安卓机:全程不碰鼠标,10 个应用场景

Claude Code 接管一台虚拟安卓机:全程不碰鼠标,10 个应用场景

我在 Mac 上装了一台安卓虚拟机,然后把它交给了 Claude Code。现在我在终端里打一句「下载微信」,它自己打开 Play 商店搜索,点安装,等装完再截图给我确认。整个过程我没碰过一次鼠标

装虚拟机、接上 Claude Code,再到写好规则,这几步也都是打字让 Claude Code 自己做的。你要做的只是复制几段话发给它。

下面是真实录下来的一段:我让它「打开设置,把深色模式打开」,它先读屏幕,按文字找到「显示和触控」,再找到「深色主题」开关点下去,最后读一次系统状态,确认已经切成深色。

这篇分两部分:前面是接法(四步接好,第五步提速),后面是我整理的 10 个用法,每个都附了可以直接复制的提示词。

它是怎么跑起来的

一共三样东西。

  • 安卓虚拟机
    :Google 官方的 Android 模拟器,跑在你的 Mac 上,带 Play 商店,和一台真的 Pixel 手机差不多
  • mobile MCP
    :一个开源的小插件,让 Claude Code 能看到手机屏幕上有哪些按钮、文字,并且能点、能滑、能打字
  • adb
    :安卓自带的命令行工具,装 App、打开 App、截图这类事一条命令就能做完,比点屏幕快

Claude Code 在中间当大脑:你说要干什么,它读屏幕、决定点哪里、点完再读一次屏幕确认,直到做完。

虚拟机开起来就是 Mac 上的一个手机窗口,和真手机一样能用:

准备

  • 一台 Mac(我用的是 Apple 芯片的 Mac,下面的命令都按这个写;Intel Mac 也能装,让 Claude Code 自己换成对应版本就行)
  • 已经装好 Claude Code,并且登录了
  • 已经装好 Homebrew
  • 硬盘留出 50G 以上。安卓工具加系统镜像占 3.5G;虚拟机存储建议直接设成 50G,它是用多少占多少,我这台设了 50G,实际只占 1.5G

一句话提示词怎么发给 Claude Code

后面每一步都是「复制一段话发给 Claude Code」,先说清楚怎么发。

  1. 打开「终端」App(按 ⌘ + 空格,输入「终端」回车)
  2. 输入下面这行回车,建一个专门放手机相关文件的文件夹,并在里面启动 Claude Code:
mkdir -p ~/安卓虚拟机 && cd ~/安卓虚拟机 && claude
  1. 出现输入框以后,把提示词整段粘贴进去(⌘ + V),回车

之后想再用,打开终端输入 cd ~/安卓虚拟机 && claude 就回到这里。用 Claude Code 桌面版的话,打开这个文件夹,在对话框里粘贴也一样。

Claude Code 执行命令前可能会问你「要不要允许」,按回车同意就行。

第 1 步:让 Claude Code 装好安卓虚拟机

把下面整段发给 Claude Code:

帮我在这台 Mac 上装一个安卓虚拟机,全程用命令行,不要让我打开 Android Studio。要求:1. 用 Homebrew 装 android-commandlinetools、openjdk@17、scrcpy2. 系统镜像用 Android 15(android-35)带 Google Play 的版本,按我电脑的芯片选 arm64-v8a 或 x86_643. 需要同意的 SDK 许可自动同意4. 建一个叫 pixel 的虚拟机,机型选 pixel_7,存储空间设成 50G(config.ini 里 disk.dataPartition.size=50G)5. 在后台启动它,加上 -no-window -no-audio,一直等到 adb shell getprop sys.boot_completed 返回 1 才算开好6. 最后用 adb devices 确认能看到 emulator-5554,再截一张屏保存到当前文件夹,发给我看

它会下载 2~3G 的东西,网速一般的话要等十几分钟。看到它发回来的手机桌面截图,这一步就完成了。

想知道它实际跑了什么,或者它卡住了想自己排查,核心就是这几条命令。

brew install --cask android-commandlinetoolsbrew install openjdk@17 scrcpyyes | sdkmanager --licensessdkmanager "platform-tools" "emulator" "system-images;android-35;google_apis_playstore;arm64-v8a"avdmanager create avd -n pixel -k "system-images;android-35;google_apis_playstore;arm64-v8a" -d pixel_7sed -i '' 's/^disk.dataPartition.size=.*/disk.dataPartition.size=50G/' ~/.android/avd/pixel.avd/config.iniemulator -avd pixel -no-window -no-audio &

存储一定要在建虚拟机时就设好。我这台一开始是 10G,装了十来个 App 就用掉 92%;事后再扩容,虚拟机里的数据会被清空,我扩容以后之前装的 App 全没了,只能重装。

-no-window -no-audio 是让虚拟机在后台跑,不弹窗口、不出声音,也更省资源,Claude Code 照样能操作。想看它在干什么,随时说一句「用 scrcpy 投屏给我看」。

第 2 步:装 mobile MCP,让 Claude Code 能「看见」屏幕

这一步给 Claude Code 装一个插件,叫 mobile-mcp(开源,GitHub 上是 mobile-next/mobile-mcp)。装上以后,它能读出屏幕上每个按钮的文字和位置,直接按文字去点,比看截图猜坐标准得多。

把这段发给 Claude Code:

帮我装 mobile-mcp(npm 包名 @mobilenext/mobile-mcp),装成对所有项目都能用的 MCP,名字叫 mobile。电脑上没有 Node.js 的话先用 Homebrew 装。装好后告诉我怎么确认它连上了。

它实际执行的是这一条(没装 Node.js 的话先 brew install node):

claude mcp add mobile -s user -- npx -y @mobilenext/mobile-mcp@latest

装完退出 Claude Code 再重新打开(输入 /exit,再输入 claude),插件才会生效。然后在输入框里打 /mcp 回车,列表里看到 mobile 后面是 ✔ connected,就成了。

第 3 步:写一份规则,以后开口就是操作手机

这一步是让体验好用起来的关键。Claude Code 每次在一个文件夹里启动,都会先读这个文件夹里的 CLAUDE.md。我们把「这里说的话都是要你去手机上做」写进去,以后就不用每次解释了。

把这段发给 Claude Code:

在当前文件夹新建一个 CLAUDE.md,内容如下,原样写入:# 安卓虚拟机操作进这个文件夹,就是要操作安卓虚拟机 pixel(adb 序列号 emulator-5554)。我说「手机」「虚拟机」指的都是它。我在这里发的任何消息,都是要你去虚拟机上执行的操作。哪怕听起来像普通提问(比如「查一下明天天气」),也默认在虚拟机里打开相应 App 去做,不要凭知识直接回答。## 开工前1. adb devices 看虚拟机在不在线2. 不在线就自己启动,不用问:emulator -avd pixel -no-window >/dev/null 2>&1 &,再等 adb shell getprop sys.boot_completed 返回 1## 怎么操作- 首选 mobile MCP:先读屏幕元素按文字点,读不到元素再截图按坐标点- 能用 adb 一条命令搞定的直接用 adb:打开 App 用 monkey -p <包名> 1,装 APK 用 adb install,返回键 keyevent 4,回主屏 keyevent 3- 每做完一步都读一次屏幕,确认结果对了再往下走,不要连着盲点## 文件- 截图放 ./截图/,导出的文件放 ./导出/- 要传进手机的文件用 adb push 放到 /sdcard/Download/## 必须先停下来问我付款、删除数据、恢复出厂、输入密码登录的步骤

规则里最重要的是最后一段:付款、删数据、输密码之前必须停下来问你。别省。

第 4 步:发第一句话

退出再重新进入 Claude Code,让它读到新规则,然后直接说人话:

下载微信

就这四个字。它先检查虚拟机在不在线,然后用 Play 商店的搜索链接直接跳到搜索结果,找到「安装」按钮点下去,一直等到装完,再截图回来确认。

唯一要你自己来的一步:第一次打开 Play 商店要登录 Google 账号,这涉及密码。按规则 Claude Code 到这里会停下来问你,这时让它「用 scrcpy 投屏」,在弹出的手机窗口里自己输入账号密码就行。之后就再也不用管了。

第 5 步(可选):让它更快、更省 token

默认做法能用,但用了一阵我发现有三处又慢又费 token。

读屏幕太贵。截图默认是 461×1024;mobile MCP 的元素列表一次常常两三百行,一大半是状态栏和看不见的节点,比一张截图还贵。其实大多数时候,它只需要知道「现在在哪个页面」「按钮在哪」。

干等。每一步固定等 5 秒,页面早就好了也在等。

中文打不进去。adb 自带的输入只认英文,发中文经常打不进去,还会误触别的地方。

把下面这段发给 Claude Code,它会自己写两个小工具,把规则补进 CLAUDE.md:

帮我优化操作虚拟机的方式,目标是省 token、提速:1. 写一个脚本 tools/ui.py:用 adb shell uiautomator dump 读当前屏幕,只输出带文字、能点或能输入的元素,每行一个,格式「x,y [点][输入] '文字'」,坐标取中心点,过滤掉状态栏2. 装 ADBKeyboard 输入法并设为默认,再写一个 tools/zh.sh,用 adb 广播把中文直接发进输入框3. 把这些规则加进 CLAUDE.md 的「怎么操作」:   - 只想知道在哪个页面,用 adb shell dumpsys window | grep mCurrentFocus   - 找按钮用 python3 tools/ui.py,不用 mobile MCP 的元素列表   - 必须截图时,最长边压到 400 像素,要看小字再放大   - 等待用轮询(等页面切换、等包名出现),不要写死 sleep   - 电脑上能下载到的安装包直接 adb install;Play 商店的 App 用 market://details?id=<包名> 直达详情页   - 输入中文用 tools/zh.sh做完用「打开设置,在搜索框输入 蓝牙」测一遍,告诉我每次读屏输出了多少行。

改完以后,找按钮只要二三十行文字;判断在哪个页面只要一行;截图压到 180×400 照样看得清,token 只有原来的 1/6 左右。

用法一:手机上的琐事,交给它

下面 10 个用法的提示词,[方括号] 里的内容换成你自己的。第 1 个和第 8 个是我实际跑过的,其他的是可以这样用的方向。

1. 一句话装齐一整套 App

新手机、新虚拟机,最烦的就是一个个搜、一个个点安装。现在说一句要装哪些,剩下的它自己排队装

帮我在 Play 商店装这些 App:[微信、支付宝、Telegram、飞书、钉钉、企业微信、小红书]。已经装了的跳过。全部装完后,用 adb 核对一遍包名确认都在,列一张表告诉我哪些是新装的、哪些本来就有。

效果:我发了一句「下载一些你觉得我可能会用的软件」,它按我平时用的工具挑了 8 个,逐个打开详情页点安装,发现小红书早就装过了自动跳过,最后列表核对,8 个全在。

2. 刷 App 找信息,整理成一张表

很多信息只在 App 里有,网页版要么没有、要么不全。以前只能自己一条条刷、一条条抄。现在让它替你刷,刷完直接给你一张表

打开小红书,搜索「[成都周末带娃去哪]」,往下刷,看前 [20] 篇笔记。每篇记下:标题、地点、人均花费、点赞数。整理成表格存到 ./导出/[成都周末].md,按点赞数从高到低排,最后用三句话告诉我最值得去的是哪几个。

效果:你去倒杯水的工夫,桌面上多了一份整理好的攻略表,每一行都能对回原笔记。

3. 每天自动签到领积分

各种 App 每天要签到,还要领积分、领优惠券,天天点很烦,漏一天又断签。把签到流程交给它,你只看结果

打开 [App 名],找到签到入口完成今天的签到,领取能领的积分和奖励。完成后截图存到 ./截图/签到/,文件名用今天的日期。如果弹出付款、开会员、授权通讯录之类的窗口,一律关掉,不要点同意。

效果:每天早上打开终端发一句「签到」,几十秒后它回一张签到成功的截图。想完全自动,可以让 Claude Code 帮你设成每天定时跑。

4. 把只在 App 里的数据导出到电脑

订单记录、账单明细,还有会员积分,很多 App 只让你在手机上翻,没有导出按钮。让它一页页翻、一页页截,再整理成电脑上能用的文件

打开 [App 名] 的 [我的订单] 页面,从最新的开始往下翻,把 [最近 3 个月] 的记录全部看一遍。每条记下日期、名称、金额、状态,整理成 CSV 存到 ./导出/[订单].csv,每翻一屏截一张图存到 ./截图/[订单]/ 作为原始凭证。最后告诉我一共多少条、总金额多少。

效果:得到一份能直接用 Excel 打开的表格,外加一整套截图,数字对不上可以回去核对。

5. 同一件东西,几个 App 比一遍价

同一件东西,不同 App 的价格和优惠券不一样,运费也不一样。自己比要来回切 App、记数字。说一句要买什么,它挨个 App 去查

在 [淘宝、京东、拼多多] 里分别搜「[商品名和型号]」,每个 App 找销量最高的 [3] 个官方或旗舰店商品,记下到手价(含优惠券和运费)、店铺名、销量,截图存到 ./截图/比价/。整理成一张对比表,告诉我哪家最划算。只看不买,不要下单。

效果:一张对比表 + 每家的截图。最后一句「只看不买」写上,它就不会碰付款按钮。

用法二:做开发、做内容的人

6. 测自己的 App:装上、跑一遍、抓崩溃

开发安卓 App 的人,每次改完都要装到手机上、从头点一遍主流程。让它当测试员,按你写的流程点一遍,出问题把证据带回来

把 [./app-debug.apk] 装到虚拟机上,打开它,按这个流程走一遍:[注册 → 登录 → 进入首页 → 发一条内容 → 退出登录]。每一步截图存到 ./截图/测试/。中途如果闪退、卡住超过 10 秒、或者页面显示异常,停下来,把崩溃日志和最后一张截图发给我,说清楚是在哪一步出的问题。

效果:跑完拿到一份带截图的测试记录;出了问题,崩溃日志和出事的那一步一起摆在你面前。

7. 看看网页在手机上长什么样

电脑上的「手机模式」只是把窗口变窄,和真手机的浏览器还是有差别。让它用虚拟机里真的 Chrome 打开你的网站,从上到下截一遍

用虚拟机里的 Chrome 打开 [https://你的网站],从顶部开始一屏一屏往下滑,每屏截一张图存到 ./截图/网页检查/。看完后告诉我:有没有文字被截断、按钮太小点不到、图片溢出屏幕、需要左右滑动才能看全的地方,每个问题标上是第几张截图。

效果:拿到一套真手机上的截图和一份问题清单,直接对着改。

8. 给教程批量截手机操作图

写手机操作教程最累的是截图:每一步都要截,截完还要裁、要命名。让它一边做一边截,截图按步骤编好号

在虚拟机上演示「[在 Play 商店安装一个 App]」的完整操作,每一步操作前后都截图,按「01-打开商店.png、02-搜索.png」这样的格式编号,存到 ./截图/[教程名]/。做完列一张清单:每张图对应哪一步、画面上重点看哪里。

效果:这篇文章里的手机截图,就是这样让 Claude Code 在虚拟机上边操作边截出来的。

用法三:一台随时能重来的备用手机

9. 可疑的 App 和链接,先放虚拟机里试

别人发来一个不认识的 App、一个看不懂的链接,装到自己手机上心里没底。虚拟机是隔离的,里面没有你的照片、通讯录和支付账号。先让它在虚拟机里试,你看结果再决定

把 [./某个应用.apk] 装到虚拟机里打开,一路看它要哪些权限、弹出什么页面,全部截图存到 ./截图/试用/。所有权限请求一律拒绝,不要登录任何账号,不要输入任何个人信息。最后告诉我它要了哪些权限、有没有可疑的地方。

效果:不用拿自己的手机冒险,就知道这个 App 到底要干什么。试完不放心,让 Claude Code 把虚拟机数据清空,又是一台干净的手机。

10. 帮你盯着消息、代你回复

在工作用的小号上,经常有一些格式固定的消息要回:确认收到、发个地址,或者报个价格。让它去看有哪些新消息,按你给的口径起草回复,你点头再发

打开 [Telegram],看一下有哪些未读消息,逐条告诉我是谁发的、说了什么。能按下面的口径回复的,先把回复内容发给我确认,我说「发」你再发出去:[问价格就回……;问地址就回……]。其他的消息不要回,只汇报给我。

效果:你在终端里就能处理完一轮消息,不用拿起手机。

用微信的话要注意:微信能识别出这是模拟器,自动化操作也违反它的用户协议。偶尔回几条问题不大,但不要拿主号试,也不要做成全天候的自动回复或者群发,那是封号的主要原因。

几个提醒

它会停在付款和密码前面。这是第 3 步规则里写的。提示词里再加一句「只看不买」「不要登录」,就更保险。

虚拟机不是你的真手机。里面没有你的照片、聊天记录和银行卡,所以拿它试东西放心,但也别指望它替你用真手机上的数据。

同一时间只让一个窗口操作。开了两个 Claude Code 窗口同时操作同一台虚拟机,屏幕会被抢来抢去,截图时会跳到别的 App。一台虚拟机同时只派一份活。

几个常见问题

Windows 能用吗?Android 模拟器和 mobile-mcp 都支持 Windows,思路一样,把第 1 步提示词里的「Mac」「Homebrew」换成 Windows 的说法,让 Claude Code 自己装。我只在 Mac 上实际装过。

能操作我的真安卓手机吗?能。手机打开「USB 调试」连上电脑,adb 和 mobile-mcp 都能认到。但真手机上有你所有的账号和数据,建议先在虚拟机上练熟。

虚拟机开着很占电脑资源吗?我这台分了 2G 内存、4 核,虚拟机进程实际占 0.4G 左右,平时开着不影响干别的;用 -no-window -no-audio 在后台跑还能再省一点。不用的时候让 Claude Code「把虚拟机关掉」,下次说话时它会按规则自己启动。


装一台虚拟机、加一个插件、写一份规则,Claude Code 就多了一台手机。以后手机上的事,打一句话就行。

相关学习资料