一份写给纯小白的说明书:从打开手机里的「开发者模式」开始,到自动打招呼、自动发消息,再到让 AI 助手直接帮你玩手机。全程免 root,图片皆可点击放大。
这套工具叫 Android RPA。RPA 的意思是「机器人流程自动化」——简单说,就是让电脑里的一个小程序,替你在手机上点点点。
你在 App 里筛选好职位,脚本按列表从上往下逐个点开、点「立即沟通」、打招呼,再返回下一个。
按你在配置里写好的名单,自动搜索联系人、输入消息、点发送,一条不漏。
内置 MCP 服务:AI 助手能实时看你的手机屏幕、帮你点按输入。对它说句话就行。
花两分钟对照一下,都在的话就可以直接进入第一章。
cmd 回车)输入 python --version。显示出 3.10 以上即可;没有就去 python.org 下载,安装时务必勾选「Add Python to PATH」。安卓手机出厂时是「锁着门」的:不允许外部程序指挥它点这里、按那里。开发者模式是谷歌官方留在手机里的工程开关,打开里面的「USB 调试」,电脑才被允许和手机对话。这不是越狱,不影响保修,随时可以关掉。
打开手机的「设置」,滑到最底部,点进「关于手机」。不同品牌的入口略有差异:
| 品牌 | 入口路径 | 要连点的那个选项 |
|---|---|---|
| 华为 / 荣耀 | 设置 → 关于手机 | 版本号 |
| 小米 / 红米 | 设置 → 我的设备 → 全部参数 | OS 版本 |
| OPPO / 一加 | 设置 → 关于本机 | 版本号 |
| vivo | 设置 → 我的设备 → 更多参数 | 软件版本号 |
| 三星 | 设置 → 关于手机 → 软件信息 | 编译编号 |
用手指连续快速地点击 7 次(像抢红包那样戳)。点到第 3、4 次时,屏幕底部会弹出「还剩 X 次」的倒数提示;点满后提示「您已处于开发者模式」就成功了。如果手机设了锁屏密码,中途可能要求你输一次密码,照输即可。
返回设置首页,「开发人员选项」不会自己冒出来,它藏在不同的地方:
| 品牌 | 开发者选项的位置 |
|---|---|
| 华为 / 荣耀 | 设置 → 系统和更新 → 开发人员选项 |
| 小米 / 红米 | 设置 → 更多设置 → 开发者选项 |
| OPPO / vivo | 设置 → 系统管理 / 其他设置 → 开发者选项 |
| 三星 | 设置 → 开发者选项(通常在列表末尾) |
进入开发人员选项后,往下滚动找到「USB 调试」,把开关打开。弹出提示框时点「确定 / 允许」。
用数据线把手机插到电脑上,手机会弹窗问「是否允许 USB 调试?」——先勾选「一律允许使用这台计算机进行调试」,再点「允许」。这样以后每次插线都不会再问。
接下来在电脑上装依赖、连手机、再给手机装一个「传令兵」。两条路线任选其一:省力路线——把一段提示词交给 AI 助手,让它全程替你代劳;手动路线——自己逐条复制粘贴命令。全程不写一行代码。
装了 git 的话,在想存放项目的位置打开终端,执行(仓库地址以项目实际提供为准):
git clone <你的仓库地址> android-rpa
cd android-rpa
不会 git 也完全没关系:在代码仓库页面点 Code → Download ZIP,下载后解压到任意位置,比如 E:\android-rpa。
电脑上装了 AI 编程助手(Claude Code、Cursor 等都可以)?那连命令都不用敲——把下面这段提示词原样粘贴给它,装环境、连手机、装组件,它全程替你代劳:
我刚把 Android RPA 项目准备好,放在 E:\android-rpa(请替换成你的实际路径),
手机已用 USB 线连上电脑,开发者模式和 USB 调试都已打开。
请帮我完成下面的初始化,每一步先告诉我你要做什么:
1. 进入项目目录,创建 Python 虚拟环境 .venv 并激活;
2. 用 pip 安装 requirements.txt 里的全部依赖;
3. 运行 adb devices 确认电脑能看到我的手机;
如果列表为空或显示 unauthorized,停下来告诉我在手机上怎么处理;
4. 确认连接正常后,运行 python -m uiautomator2 init 给手机安装控制组件;
5. 最后运行一次 python main.py --task boss 彩排模式(只检查不点击),
把日志里有没有 [X] 或「未找到控件」汇报给我。
过程中手机若弹出「允许 USB 调试」等确认框,先提醒我,等我点了允许再继续。
助手每执行一条命令都会请求许可,逐条批准即可;它跑完之后,直接跳到第 4 步「对答案」检查成果。
在文件管理器里进入项目文件夹,在地址栏输入 cmd 并回车,就会在正确位置打开一个黑色终端窗口(macOS / Linux 用户在文件夹里右键打开终端即可)。然后一条一条复制、粘贴、回车,等上一条跑完再执行下一条:
python -m venv .venv
.venv\Scripts\activate
pip install -r requirements.txt
adb devices
python -m uiautomator2 init
每条命令在干什么:
| 命令 | 白话解释 |
|---|---|
python -m venv .venv | 在项目里盖一间「独立厨房」,之后装的东西只影响本项目,不弄脏电脑 |
.venv\Scripts\activate | 走进这间厨房(macOS / Linux 用 source .venv/bin/activate,成功后命令行前面会出现 (.venv) 字样) |
pip install -r requirements.txt | 按清单把所需的全部零件一次性装齐 |
adb devices | 点名:看看电脑能不能「看见」你的手机 |
python -m uiautomator2 init | 往手机里装一个叫 ATX 的小助手 App,它是电脑派驻手机的「传令兵」(免 root,可随时卸载,见第六章) |
adb devices 执行后,如果看到一串序列号和 device 字样,说明电脑已经成功认到手机:
unauthorized → 手机解锁屏幕,重新插一次,在弹窗点「允许」。'adb' 不是内部或外部命令 → 回到手动路线第一步,确认终端是在项目文件夹里打开的,且 pip install 已经执行成功。
先认识一个重要概念:彩排模式(dry-run)——像演出前的走位,脚本把每一步「我找到了这个按钮,本该点它」都写进日志给你看,但屏幕上什么都不动。所有任务都默认彩排,确认无误后加 --live 才真干。
① 打开 BOSS直聘 App,搜索并筛选好你想要的职位,停在职位列表页——脚本会按屏幕上的顺序从上往下投递,所以筛得越准,投得越准。
② 设置好打招呼语:我的 → 右上角设置 → 消息设置 → 打招呼语。设置后脚本点「立即沟通」时会自动带上这句话,全程无需输入文字。
python main.py --task boss
盯着终端看:每一行日志都在说它找到了什么。没有红叉 [X]、没有「未找到控件」,就说明脚本认识你手机上的这个 App。
python main.py --task boss --live
这次它会真的点进职位、点「立即沟通」、打完招呼再返回下一个。想先小批量试水,加个上限:
python main.py --task boss --live --max 10
跑的过程中保持终端窗口开着、手机亮着屏。每投一个会随机歇 3–8 秒、偶尔「分神」发呆十几秒——这是刻意模仿真人、保护账号的设计,别嫌它慢。
用记事本(推荐 VS Code)打开项目根目录的 config.py,找到 WECHAT 这一段,把要发的人和消息填进去:
WECHAT = {
"targets": {
"文件传输助手": "来自电脑 RPA 的测试消息",
# "王哥": "下午好,文件已发你邮箱,查收。",
},
}
注意两点:引号、冒号、逗号必须是英文符号;第一行先只留「文件传输助手」做测试,确认能发成功再加大名单。
python main.py --task wechat
python main.py --task wechat --live
脚本会自动搜索联系人、输入消息、点发送。每发完一条自动退回主页再找下一位。
| 命令 | 作用 |
|---|---|
python main.py --task boss | 彩排:只找按钮不点击 |
python main.py --task boss --live | 真实执行打招呼 |
python main.py --task boss --live --max 10 | 真实执行,本轮最多打 10 个 |
python main.py --task wechat --live | 按 config.py 名单发微信消息 |
logs/ 文件夹留下一份完整日志;万一某一步找不到按钮,还会自动截图存进同一文件夹,方便对照排查。脚本是听话的,但它更需要一个一眼就能找到的刹车。项目根目录里那两个 .bat 文件就是刹车,双击即用,不需要敲任何命令。
stop_agent.batresume_agent.bat 即可(它的本质是删掉那个开关文件)。另外,截图、读屏幕文字这类只读操作不受急停影响——急停后你仍可以让脚本「看一眼手机现在什么状态」。项目内置了一个 MCP 服务——可以理解为给 AI 助手开的一扇「遥控窗口」。在支持 MCP 的客户端(Claude Code、Cursor、WorkBuddy 等)里配置一次,AI 就能实时看你的手机屏幕、帮你点按输入,你说人话,它动手。
以 Claude Code / Cursor 为例,在 MCP 配置里加入下面这段 JSON(把路径换成你自己的项目位置;macOS / Linux 把 Scripts 换成 bin):
{
"mcpServers": {
"android-rpa": {
"command": "E:/android-rpa/.venv/Scripts/python.exe",
"args": ["E:/android-rpa/mcp_server.py"]
}
}
}
配置好之后,直接对 AI 说:「帮我看看手机现在什么页面」「帮我在微信里给 XX 发条消息」「把当前页面截图给我看看」。它会自己完成截图 → 读屏 → 点击 → 验证的全过程。
| 能力 | 对应的工具 | 受急停保护 |
|---|---|---|
| 实时截图 | phone_screenshot | —(只读,急停仍可用) |
| 读屏幕文字与坐标 | phone_ui_texts | —(只读) |
| 按坐标 / 按文字点击 | phone_tap / phone_tap_text | ✓ |
| 上下左右滑动 | phone_swipe | ✓ |
| 输入中文文字 | phone_input_text | ✓ |
| 返回 / Home / 回车 | phone_key | ✓ |
| 启动 App / 等待 | phone_start_app / phone_wait | ✓ |
| 设置 / 清除急停 | phone_request_stop / phone_resume | — |
本项目对手机的全部改动只有两样:一个叫 ATX 的助手 App,和 /data/local/tmp/ 下的一个组件文件。两条命令清干净,手机恢复出厂般的清净。
adb uninstall com.github.uiautomator
adb shell rm /data/local/tmp/u2.jar
然后回到手机的开发人员选项,把「USB 调试」开关关掉(甚至整个开发者模式停用),拔线收工。电脑这边只需删掉项目文件夹,不留任何残余。
按命中率排查:① 数据线——很多线只能充电,换一根确定能传数据的;② 手机弹窗——插线后手机有没有弹「允许 USB 调试」,没弹就把手机屏幕点亮、下拉通知栏把 USB 用途改成「传输文件」再重插;③ 华为专属开关——「仅充电模式下允许 ADB 调试」也要打开;④ 终极手段——手机和电脑各重启一次,玄学但有效。
电脑看见手机了,但手机还没点头。解锁手机屏幕,重新插拔一次数据线,在弹窗里勾选「一律允许」再点「允许」即可。
就是上面两个问题的另一种说法。先把 adb devices 调通(能看到 device 字样),脚本自然就能连上。多台手机同时连着时,用环境变量 ANDROID_RPA_SERIAL 或 config_local.py 指定要控制哪一台。
有风险,务必敬畏。脚本已内置随机延迟、概率性「分神」、单轮操作上限等拟人设计,但 BOSS直聘、微信都有自动化检测。守三条底线:用小号先试、保持低频、话术别所有人发同一句。账号被限制的代价远大于省下的时间。
多半是 App 更新了界面文字或布局。项目自带调试利器 weditor:pip install weditor 后运行 python -m weditor,浏览器打开 http://localhost:17310,就能实时看到手机每个控件的名字,把新名字更新进 apps/*.py 的 find(...) 里即可。
不可以。这套方案基于安卓官方的 adb 与无障碍控件体系,iOS 是完全封闭的另一套体系。安卓手机(含 HarmonyOS)都没问题。
它是 python -m uiautomator2 init 装上的「传令兵」,电脑靠它把指令翻译给手机。删了脚本就失灵;想彻底清理按第六章两条命令操作。