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 自己整起,设定好额度用免费的跑几次还是够的:

相关推荐
美狐美颜SDK开放平台23 分钟前
准备开发直播APP?视频美颜SDK接入前的十项检查清单
android·ios·音视频·直播美颜sdk·视频美颜sdk
Csvn26 分钟前
运行时性能
前端
传奇开心果编程28 分钟前
【Jetpack Compose娓娓道来】第26课:Repository模式与数据层设计——数据的唯一入口
android·移动开发·1024程序员节·jetpack compose·编程语言理论·编程框架·声明式ui
Never_every991 小时前
位图转矢量工具哪个好?实测抠抠图AI位图转矢量工具
大数据·前端
paopaokaka_luck2 小时前
宠物门店经营管理系统(销售与库存联动、进货自动记账、 退换与退款关联、员工个人业绩、ECharts 经营分析、滞销识别与客户分层、宠物档案年龄计算)
前端·javascript·spring boot·mysql·echarts·mybatis·1024程序员节
空中湖2 小时前
用 React 写数据大屏:为什么我不建议用图表库
前端·react.js·前端框架
欣欣之王来了4 小时前
原始HTML插值:v-html指令的使用与安全风险
前端·学习·架构·项目·vue3教程
IT_陈寒4 小时前
Redis的LRU淘汰策略坑了我一整天
前端·人工智能·后端
计算机魔术师4 小时前
砍半价格、参数再涨,国产旗舰追到 Opus 鼻尖了
前端
特立独行的猫A4 小时前
10 MB 的桌面 AI 客户端:用仓颉 + 系统 WebView 替代 Electron
前端·harmonyos