自动化工具 太牛了,不插线不 root,两行命令就能隔空操控 Android 真机

狂师 · 2026年11月12日 · 100 次阅读

最近我在 GitHub 上翻到一个项目:Droidline,挺有意思,分享给大家。

这个项目,先记住几个关键信息即可:

  • Droidline,一个用代码驱动真实 Android 手机的自动化工具,Go 写 PC 端、Kotlin 写手机端,MIT 协议
  • 2026年10月7日开源,作者 KnifeLemon,韩国开发者,之前那个离线文件转换器 Filee 已经攒了 22.8K Star
  • 官网 droidline.dev,App、报错信息、文档都是中英韩三语

它干的事很简单,一句话概括:不用 ADB、不用数据线、不用 root,手机上装一个 App 扫码配对,PC 端就能用 Python、Node.js、命令行、HTTP 或 MCP 驱动这台真机。

先说它绕开了什么

Appium、uiautomator2 这套生态跑了这么多年,好用也确实好用,但使用限制还是挺多的,开发者选项、USB 调试、数据线,一个都不能少。测试真机一多,工位上就是一排排插,线松了、驱动抽风了、手机休眠了,脚本半夜挂掉的理由五花八门。想不带线,就得去云真机平台按时长掏钱。

Droidline 把这套全免了。手机端只装一个普通 App,开无障碍服务和自带的 Droidline 键盘,扫码跟 PC 配对,之后手机自己往外连,PC 一个端口都不用开。同 Wi-Fi 直接通,人在外面手机跑流量,走隧道或自建中继照样控,通信全程端到端加密,中继手里只有密文。

都能派什么活

  • 真机自动化测试。dump() 把屏幕拉成元素树,每条命令按 text、id 定位元素,不靠坐标,等待逻辑内置,失败时报错直接告诉你当前停在哪个页面,比如 NOT_FOUND: Could not find text 'Log in' within 10s。注册登录这种要跨 App 收短信验证码的流程,能整条跑完
  • 一台 PC 带一排手机。不同手机并行跑、每台有名字,还能给每台单独配 socks5 或 http 代理,全程免 root。配合 cuts_network,飞行模式换 IP 之后任务接着跑,要多 IP 的采集和造数场景直接用
  • 给 AI Agent 装上手机之手。droidline mcp 一起,Claude、Cursor 就能看真机屏幕、点按钮,还能用 --read-only 把它限制成只看不动
  • 顺手的小自动化。PC 端收手机通知、回复、转发 webhook,定时从 App 里收个数、晚上关 Wi-Fi 这类杂活,写两句脚本就解决

两行命令,手机隔空连上电脑

PC 端 Windows、macOS、Linux 都有发布包,手机要 Android 9 及以上。手边没真机也没关系,发布包里带个 droidline-fakephone 模拟器,官方教程就是对着它写完第一个脚本的。

PC 端从 Releases 下载对应系统的包放进 PATH,手机装 droidline-agent.apk,然后两条命令

droidline serve
droidline pair

第一条起服务,第二条弹二维码,手机 App 扫一下就配对完成。没摄像头就点 App 里的「在此 Wi-Fi 下配对」,输它显示的 6 位码一样能连。连上就能点真机,先拿设置页练手

droidline launch com.android.settings
droidline touch text "Network & internet"

写 Python 的 pip install droidline,照着仓库自带的演示 App 跑一遍登录

from droidline import connect

d = connect()
d.launch("dev.droidline.demo")
if d.exists("text", "Close ad"):
    d.touch("text", "Close ad")
d.input("id", "email", "knife")
d.touch("text", "Log in")
print(d.get_text("id", "greeting"))

给 Claude Code 接 MCP 也只要一行

claude mcp add droidline -- droidline mcp

组件记三个就够上手。droidline serve 是常驻服务,所有入口都连它的 8780 端口;droidline pair 管配对;droidline mcp 是给 Agent 用的适配器。inspect(录脚本、荐选择器)、webdriver(让 Appium 客户端直接用)这些按需再开,不开就不占资源。

里面几个巧设计

一套规格生成五个入口。仓库根目录的 spec/commands.json 定义了全部命令和三语错误文案,Python、Node.js、.NET 三个 SDK 和 MCP 工具清单都由它生成,CI 里跑校验,SDK 方法跟规格不一致直接挂。所以 touch 在五个入口里都叫 touch,文档也只维护一份。做多端 SDK 的团队可以直接抄这个思路。

手机主动外连,PC 不开端口。方向反过来之后,安全模型也顺了,配对决定谁能控这台手机,握手之后每行通信都端到端加密,隧道和自建中继只是搬运密文。手机断网重连后从断点接着跑,执行中的命令由手机侧缓存应答,不会重跑一遍。

权限边界很克制。手机端只用无障碍服务和自装键盘,也就是普通 App 能拿到的权限,代价 README 里直接列了清单,解不开 PIN 锁,没有强停、清数据的单命令,打不开别的 App 没导出的页面。做工具先把「做不到什么」讲明白,这个比只是简单列功能列表有价值。

短板也得说清

版本还在 0.1,作者在 Status 页写明,服务端和 SDK 的测试目前都是对着手机模拟器跑的,跨品牌真机验证还在进行中,真要上生产,先拿自己的机器趟一遍。

游戏和自绘界面的 App 没有元素可拿,只能退回坐标点击加颜色判断。Android 15 起系统把一次性验证码从通知里藏起来了,只能知道码到了、去 App 里读。这些是无障碍权限路线的天然上限,不是修一版能解决的。

写在最后

工具本身可用可不用。Appium 生态成熟,团队的脚本资产都在那,没必要为了免一根线搬家。但思路值得学走。单源规格生成多端 SDK,省掉的是五端接口不一致的维护成本。手机主动外连加端到端加密,给远程控真机这件事立了一个安全上站得住的样板。把权限边界和做不到的事先写进 README,用户少踩坑,信任也来得快。

对测试开发来说,它最实际的价值有两个。真机回归的门槛降下来了,不插线不 root,短信验证码流程都能整条跑。MCP 一接,AI Agent 就能在真机上做探索性测试,这比在模拟器里点来点去接近真实得多。

项目地址:https://github.com/KnifeLemon/Droidline


如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
暫無回覆。
需要 登录 後方可回應,如果你還沒有帳號按這裡 注册。