Android CLI 支持 AI Agent 通过 Device Streaming 调试云真机

最近 Android CLI 正式支持 Android Device Streaming 这个还是挺实用的,等于是现在远程 Android 可以暴露成了一个标准 ADB endpoint 给 Agent ,然后 CLI 从申请设备到安装、操作、截图、抓日志、抓 trace 都可以留在终端里完成:

其实这些能力之前一直都有,只是 Android CLI 把之前在 Android Studio、ADB、Emulator、Firebase Device Streaming 里的能力统一整理成一套适合 Agent 调用的 Android runtime interface。

甚至申请设备这一步也进入 CLI 了 ,这次的 Android CLI 提供了完整的 android device remote 命令组,可以直接查询能用的 Google Cloud Project、浏览设备型号、创建 reservation、连接、延长 reservation、断开以及释放设备。

甚至 android device remote create 默认会在申请成功之后自动连接 ADB。

Agent 创建 reservation 后,Android CLI 会启动一个后台连接进程,把云端设备接到本机 ADB,然后 connect 命令返回之后,这个后台进程继续维持连接,所以后面的工具其实也不知道"这是一台云真机",android run、android install、ADB、Logcat 或者其他基于 ADB 的工具都是原本流程。

一个完整流程类似这样:

ini 复制代码
android auth login
​
android device remote projects
android device remote models
​
android device remote create <device-codename>/<api> \
  --project=my-project
​
./gradlew assembleDebug
​
android run \
  --apks=app/build/outputs/apk/debug/app-debug.apk
​
android layout --pretty
​
android screen capture \
  --annotate \
  --output=screen.png

特别这里最后两步:

  • android layout 可以直接把当前 App 的 UI hierarchy 输出成 JSON,而且支持 --diff,只返回上一次检查之后发生变化的节点
  • 如果 UI hierarchy 不好用,比如 WebView、动画或者视觉元素,Agent 还可以执行 android screen capture --annotate,Android CLI 会在截图上检测 UI 元素并标成 #1、#2 这样的编号
  • 之后 screen resolve 能把 #5 直接解析成实际坐标,再交给 adb shell input tap

比如你让 Codex 修一个「Pixel 正常、Samsung 某机型启动后布局错位」的问题,以前 Agent 修改完代码,大概率只能说「建议你在 Samsung 真机上测试一下」,现在它理论上可以自己查询云端 Samsung 设备,然后申请真机、部署 APK、跑到对应页面、读取 layout 或截图,再根据结果继续修改。

唯一的限制就是 Android Device Streaming 目前每个项目每月只有 30 分钟免费额度,貌似就算是 Android Partner Device Labs 也是一样要钱,$9/小时 。

我甚至直接让 Dot 自己整起,设定好额度用免费的跑几次还是够的:

相关推荐
Wang's Blog42 分钟前
Java 项目实战: 外卖平台优化-前端dist部署与Nginx反向代理rewrite
java·前端·nginx
鬓戈1 小时前
Claude Code frontend-design 插件调研 与 Vue 旧系统风格一致性方案
前端·vue.js·人工智能
IT_陈寒1 小时前
SpringBoot自动配置的坑我帮你踩过了
前端·人工智能·后端
其实防守也摸鱼1 小时前
网安自测题:掌握核心知识点的实用练习
linux·运维·服务器·前端·数据库·sql·xss
geovindu4 小时前
css: Timeline scribble
前端·css·iphone
沙漠之主12 小时前
C++编程教学设计资料:从入门到实战的完整课程方案
java·前端·c++
hasty12 小时前
不上传新包,也能改变用户拿到的版本:npm dist-tag 的 OIDC 权限治理
前端·npm·node.js
Csvn12 小时前
diff 算法(虚拟 DOM Reconciliation)
前端
前端snow13 小时前
ai agent --- 文件存储
前端