Android CLI 与 Skills 入门实践
面向需要在终端、CI/CD 或 AI Agent 工作流中做 Android 开发的工程师。 官方入口:Agent 工具与资源 · Android CLI 概览 · android/skills 仓库
目录
- 背景:为什么需要 Android CLI
- Agent 工具栈:CLI、Skills 与 Knowledge Base
- 与 Android Studio 的分工
- 环境要求与版本兼容
- 安装 Android CLI(Windows)
- 配置 PATH 与 Java
- 常用命令速查
- Android Skills 详解
- Android Knowledge Base 详解
- 当前可用的 Skills 清单
- 推荐上手流程
- Windows 平台限制
- 数据收集说明
- 常见问题
- 延伸阅读
背景:为什么需要 Android CLI
Android 开发长期依赖两套「散装」能力:
- Gradle / AGP:构建 APK
- adb / sdkmanager:设备交互、SDK 管理
在 AI Agent、脚本自动化、CI/CD 场景里,Agent 往往需要自己拼 ./gradlew installDebug、adb shell screencap 等命令,容易因环境差异失败。
Android CLI(android 命令)是 Google 2026 年推出的官方终端工具,目标是把核心 Android 开发任务标准化,作为 Agent-first 工作流的统一入口。当前最新稳定版为 1.0(2026 年 5 月发布)。
Google 在 官方博客 中的内部实验显示:相较 Agent 仅依赖散装 gradlew / adb 自行拼装命令,使用 Android CLI 做项目与环境搭建时,LLM Token 用量约降 70%+,同类任务完成速度约 3 倍。该结论针对「建项目、配 SDK、部署验证」等编排型工作,不代表所有日常编码都会等比例加速。
#mermaid-svg-29GCP3UdRAYLREUf{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-29GCP3UdRAYLREUf .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-29GCP3UdRAYLREUf .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-29GCP3UdRAYLREUf .error-icon{fill:#552222;}#mermaid-svg-29GCP3UdRAYLREUf .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-29GCP3UdRAYLREUf .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-29GCP3UdRAYLREUf .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-29GCP3UdRAYLREUf .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-29GCP3UdRAYLREUf .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-29GCP3UdRAYLREUf .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-29GCP3UdRAYLREUf .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-29GCP3UdRAYLREUf .marker{fill:#333333;stroke:#333333;}#mermaid-svg-29GCP3UdRAYLREUf .marker.cross{stroke:#333333;}#mermaid-svg-29GCP3UdRAYLREUf svg{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-29GCP3UdRAYLREUf p{margin:0;}#mermaid-svg-29GCP3UdRAYLREUf .label{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;color:#333;}#mermaid-svg-29GCP3UdRAYLREUf .cluster-label text{fill:#333;}#mermaid-svg-29GCP3UdRAYLREUf .cluster-label span{color:#333;}#mermaid-svg-29GCP3UdRAYLREUf .cluster-label span p{background-color:transparent;}#mermaid-svg-29GCP3UdRAYLREUf .label text,#mermaid-svg-29GCP3UdRAYLREUf span{fill:#333;color:#333;}#mermaid-svg-29GCP3UdRAYLREUf .node rect,#mermaid-svg-29GCP3UdRAYLREUf .node circle,#mermaid-svg-29GCP3UdRAYLREUf .node ellipse,#mermaid-svg-29GCP3UdRAYLREUf .node polygon,#mermaid-svg-29GCP3UdRAYLREUf .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-29GCP3UdRAYLREUf .rough-node .label text,#mermaid-svg-29GCP3UdRAYLREUf .node .label text,#mermaid-svg-29GCP3UdRAYLREUf .image-shape .label,#mermaid-svg-29GCP3UdRAYLREUf .icon-shape .label{text-anchor:middle;}#mermaid-svg-29GCP3UdRAYLREUf .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-29GCP3UdRAYLREUf .rough-node .label,#mermaid-svg-29GCP3UdRAYLREUf .node .label,#mermaid-svg-29GCP3UdRAYLREUf .image-shape .label,#mermaid-svg-29GCP3UdRAYLREUf .icon-shape .label{text-align:center;}#mermaid-svg-29GCP3UdRAYLREUf .node.clickable{cursor:pointer;}#mermaid-svg-29GCP3UdRAYLREUf .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-29GCP3UdRAYLREUf .arrowheadPath{fill:#333333;}#mermaid-svg-29GCP3UdRAYLREUf .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-29GCP3UdRAYLREUf .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-29GCP3UdRAYLREUf .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-29GCP3UdRAYLREUf .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-29GCP3UdRAYLREUf .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-29GCP3UdRAYLREUf .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-29GCP3UdRAYLREUf .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-29GCP3UdRAYLREUf .cluster text{fill:#333;}#mermaid-svg-29GCP3UdRAYLREUf .cluster span{color:#333;}#mermaid-svg-29GCP3UdRAYLREUf div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-29GCP3UdRAYLREUf .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-29GCP3UdRAYLREUf rect.text{fill:none;stroke-width:0;}#mermaid-svg-29GCP3UdRAYLREUf .icon-shape,#mermaid-svg-29GCP3UdRAYLREUf .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-29GCP3UdRAYLREUf .icon-shape p,#mermaid-svg-29GCP3UdRAYLREUf .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-29GCP3UdRAYLREUf .icon-shape .label rect,#mermaid-svg-29GCP3UdRAYLREUf .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-29GCP3UdRAYLREUf .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-29GCP3UdRAYLREUf .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-29GCP3UdRAYLREUf :root{–mermaid-font-family:\”trebuchet ms\”,verdana,arial,sans-serif;}
开发者 / AI Agent
android CLI
Gradle / AGP 构建
adb 设备交互
SDK 管理
Android Skills
Knowledge Base
Android Studio 联动
APK 部署
截屏 / UI 分析
官方文档检索
Agent 工具栈:CLI、Skills 与 Knowledge Base
Google 将面向 Agent 的能力打包为三件配套组件,职责不同、可组合使用:
| Android CLI | 终端命令行(android.exe) | SDK、建项目、模拟器、部署、UI 探测的统一入口 | 需单独安装 |
| Android Skills | 模块化 SKILL.md 指令包 | LLM 在 AGP 升级、Compose 迁移等「易踩坑」场景按步骤执行 | 需 android skills add 安装 |
| Android Knowledge Base | 可检索的官方文档知识库 | 弥补模型训练数据滞后,拉取最新 Android / Firebase / Kotlin 文档 | CLI 通过 android docs;AS 最新版已内置 |
适用 Agent 生态:不限于 Android Studio 内置 Gemini——Gemini CLI、Antigravity、Claude Code、Codex、Cursor 等任意终端 Agent 均可配合 CLI + Skills 使用;之后在 Android Studio 中打开同一项目继续精修 UI 与调试。
安装与分发关系:
GitHub (android/skills) → android skills add → Agent skills 目录
developer.android.com 等 → android docs → kb:// 文档片段
android CLI 自身 → create / sdk / run → 本地 SDK 与项目
Skills 不随 CLI 自动装进 IDE。官方推荐通过 CLI 安装,而非手动 clone 仓库:
# 安装单个 skill
android skills add —skill=r8-analyzer
# 安装全部 skill 到已检测到的 Agent 目录
android skills add —all
若本机没有检测到 Agent 目录且未指定 –agent,默认会安装到 Gemini/Antigravity 路径:~/.gemini/antigravity/skills。Cursor 等 IDE 可尝试 android skills add –agent=cursor(以 android skills list –long 显示的已检测 Agent 为准)。
与 Android Studio 的分工
| 日常编码、布局编辑、调试、Profiler | Android Studio |
| 终端构建部署、CI、Agent 自动化 | Android CLI |
| SDK 图形化管理 | AS 的 SDK Manager 或 android sdk |
| Agent 规范开发(Compose 迁移、AGP 升级等) | Android Skills + CLI |
| 检索最新官方文档上下文 | Knowledge Base(android docs 或 AS 内置) |
CLI 构建的项目可直接在 AS 中打开;两者互补,不是替代关系。
环境要求与版本兼容
Android Studio 与 AGP
Android CLI 本身不绑定特定 AS 版本,但项目使用的 AGP 版本必须与 AS 支持范围一致。参考 AGP 与 AS 兼容表:
| Panda 2+(2025.3.2+) | 4.0 – 9.1 |
| Otter 2(2025.2.2) | 4.0 – 8.13 |
| Narwhal 4(2025.1.4) | 4.0 – 8.13 |
若项目使用 AGP 9.x,需 AS Panda 2 或更新;否则会报「AGP 版本不兼容」。
AGP 与 Gradle
| 9.1 | 9.3.1 |
| 8.13 | 8.13 |
Java
| 仅在 AS 内 Sync / Build / Run | 否(AS 自带 JBR) |
| 终端运行 android run、android describe、./gradlew | 是 |
JBR(JetBrains Runtime)是 JetBrains 维护的 OpenJDK,AS 安装目录下的 jbr 文件夹即为自带 Java 运行环境,可直接用于终端:
JAVA_HOME = <Android Studio 安装路径>\\jbr
Path 追加 = %JAVA_HOME%\\bin
也可在 AS 中通过 Settings → Build Tools → Gradle → Gradle JDK → Download JDK 下载 JDK 17 等版本,再将 JAVA_HOME 指向同一目录。
安装 Android CLI(Windows)
方式一:winget(推荐)
winget install —id Google.AndroidCLI
方式二:手动下载
从 Download Android CLI 获取安装包,解压后将 android.exe 所在目录加入系统 PATH。
验证安装
android —version
android info
android info 应输出 SDK 路径,例如:
sdk: C:\\Users\\<用户名>\\AppData\\Local\\Android\\Sdk
version: 1.0.xxxxx
配置 PATH 与 Java
1. 将 CLI 加入 PATH
若 android.exe 不在默认安装位置,需手动添加其目录,例如:
C:\\D-Software
修改 用户或系统环境变量 → Path 后,重启终端或 IDE 使 PATH 生效。
2. 配置 JAVA_HOME(终端构建必需)
临时验证(当前 PowerShell 会话):
$env:JAVA_HOME = "C:\\Users\\<用户名>\\AppData\\Local\\Programs\\Android Studio\\jbr"
$env:Path = "$env:JAVA_HOME\\bin;$env:Path"
java –version
永久配置: 在用户环境变量中新增 JAVA_HOME,并将 %JAVA_HOME%\\bin 追加到 Path。
3. 可选:.androidrc 默认参数
在用户目录创建 %USERPROFILE%\\.androidrc,每行一个默认 flag:
–sdk=C:\\Users\\<用户名>\\AppData\\Local\\Android\\Sdk
常用命令速查
环境与 SDK
| android –version | CLI 版本 |
| android info | SDK 路径、环境信息 |
| android update | 更新 CLI 自身 |
| android sdk list | 列出已安装/可安装的 SDK 组件 |
| android sdk install <包名> | 安装 SDK 组件(支持 @version、–beta、–canary) |
| android sdk remove <包名> | 移除 SDK 组件 |
| android sdk update | 更新 SDK 组件 |
项目创建与描述
| android create list | 列出可用项目模板 |
| android create -o <目录> [模板名] | 从官方模板创建项目;默认模板 empty-activity-agp-9 |
| android create –dry-run –verbose <模板> | 预演创建过程,不落盘 |
| android describe | 分析项目结构,输出构建产物(APK 等)元数据 JSON |
构建与部署
android run 不负责编译——须先 ./gradlew assembleDebug(或 installDebug),再指定 APK 路径部署:
| ./gradlew assembleDebug | Gradle 构建 debug APK(CLI 不替代此步) |
| android run –apks=app/build/outputs/apk/debug/app-debug.apk | 安装 APK 到默认设备 |
| android run –apks=… –device=<序列号> | 指定目标设备/模拟器 |
| android run –apks=… –debug | 以 debug 模式部署(需在 IDE 或命令行附加调试器) |
| android run –apks=… –type=SERVICE –activity=.MyService | 直接启动 Service 等组件 |
可先 android describe 获取 APK 路径,再填入 –apks。
模拟器(macOS / Linux;Windows 见后文限制)
| android emulator create –list-profiles | 列出设备 profile |
| android emulator create –profile=medium_phone | 创建虚拟设备 |
| android emulator list | 列出已有 AVD |
| android emulator start <名称> | 启动模拟器 |
| android emulator stop <序列号> | 停止模拟器 |
设备与 UI
| android layout | 获取当前前台应用布局树(JSON) |
| android layout –diff | 仅输出相对上次快照的布局变更 |
| android screen capture -o <路径> | 截取设备屏幕为 PNG |
| android screen capture -a -o <路径> | 截屏并在 UI 元素上绘制标注框 |
| android screen resolve –screenshot=… –string="…" | 将标注截图中的元素标签转为坐标 |
文档与 Knowledge Base
| android docs search '<问题>' | 在 Knowledge Base 中搜索相关文档 |
| android docs fetch kb://… | 按 kb:// URL 拉取文档正文到终端 |
Agent 与 Skills
| android init | 初始化 Agent 环境,安装基础 android-cli skill |
| android skills list | 列出可用 skills |
| android skills list –long | 列出 skills 及详细说明 |
| android skills add –skill=<名> | 安装指定 skill |
| android skills add –all | 安装全部 skills |
| android skills find <关键词> | 按关键词搜索 skill |
| android skills remove –skill=<名> | 移除 skill |
与 Android Studio 联动
需 Android Studio Quail 2 Canary 1 或更高,且已启用并登录 Gemini in Android Studio。先 android studio check 确认连接:
| android studio check | 列出运行中的 AS 实例与已打开项目 |
| android studio analyze-file <路径> | IDE 内置检查:错误、警告、Lint |
| android studio find-declaration <符号> | 语义解析:查找声明位置 |
| android studio find-usages <符号> | 查找符号全项目引用 |
| android studio open-file <路径> | 在 AS 编辑器中打开文件 |
| android studio render-compose-preview <文件> <Preview名> | 渲染 Compose @Preview 为 PNG |
| android studio version-lookup agp kotlin compose | 查询 Maven / AGP / SDK 等最新版本 |
CI/CD:Journeys
Journey 是用自然语言描述的用户流程(如「打开设置 → 登录 → 进入首页」),Agent 可在终端或 CI 中执行以做冒烟验证。详见 Android CLI 概览。
Android Skills 详解
Android Skills 遵循开放的 Agent Skills 标准:每个 skill 是一个 SKILL.md 文件,向 LLM 提供特定领域的步骤、约束与最佳实践。
与「通读整本文档」不同,Skills 是可执行的技术规格——面向 Agent 需要逐步落地的复杂流程。每个 skill 带有元数据;当用户提示词与元数据匹配时,Agent 可自动触发对应 skill,无需每次手动粘贴文档。
Google 的设计重点放在 LLM 评估中表现较弱的场景(如 AGP 9 升级、CameraX 迁移、R8 规则优化),而非已经成熟的通用 Compose 写法。
安装行为说明
| android init | 仅 android-cli 基础 skill |
| android skills add(无参数) | 同上,仅 android-cli |
| android skills add –skill=<名> | 指定 skill |
| android skills add –all | 全部可用 skills |
注意: 若自定义修改了某个 skill,更新时可能被覆盖;官方建议重命名后再改。
与 IDE 自带 Skills 的区别
| 来源 | IDE 厂商 | Google Android 团队 |
| 范围 | 通用开发工作流 | Android 专项(Compose、AGP、CameraX…) |
| 安装 | 通常已内置 | 需 android init / android skills add |
两者可并存,互不冲突。
Android Knowledge Base 详解
Knowledge Base 是第三块拼图:把 Android 开发者文档、Firebase、Google Developers、Kotlin 文档 等权威内容整理为 Agent 可检索的数据源,缓解「模型训练截止早于当前 AGP / Compose 版本」的问题。
使用方式
终端(Android CLI)——两步检索:
# 1. 搜索
android docs search 'How do I improve my app performance?'
# 2. 按搜索结果中的 kb:// URL 拉取正文
android docs fetch kb://android/topic/performance/overview
Android Studio:最新版已集成同一知识库,Studio 内 Agent 可直接检索,无需重复配置。
与 Skills 的分工
| 形态 | 步骤化 SKILL.md | 可搜索的官方文档片段 |
| 典型用途 | 「按规范完成 AGP 9 迁移」 | 「当前推荐的性能优化指南是什么」 |
| 触发方式 | 提示词匹配 skill 元数据 | android docs search 或 Agent 自动检索 |
| 时效性 | 随 android skills add 更新 | 知识库内容持续同步官方文档 |
Agent 工作流中常见组合:Skills 定流程,Knowledge Base 补最新细节。
当前可用的 Skills 清单
以下列表来自 android skills list –long(2026 年 6 月,CLI 1.0 渠道)。完整列表以本机 android skills list 为准。
基础 / 构建
| android-cli | 编排 android 命令:建项目、部署、SDK、诊断 |
| agp-9-upgrade | 迁移到 AGP 9(不含 KMP 项目) |
| r8-analyzer | 分析 R8/ProGuard keep 规则,优化包体 |
UI / Compose
| jetpack-compose-m3 | Wear OS Compose Material 3 开发与迁移 |
| migrate-xml-views-to-jetpack-compose | XML View → Compose 结构化迁移 |
| styles | Jetpack Compose Styles API 与设计系统集成 |
| adaptive | 多形态设备自适应 UI(手机/平板/折叠/TV/Auto/XR) |
| edge-to-edge | 全面屏、系统栏/IME inset 适配 |
| navigation-3 | Jetpack Navigation 3 安装、迁移与常见模式 |
相机 / 设备 / XR
| camera1-to-camerax | Camera1/Camera2 → CameraX |
| appfunctions | 暴露 App Functions,供系统/Agent 无 UI 调用 |
| display-glasses-with-jetpack-compose-glimmer | XR 眼镜 + Compose Glimmer UI |
Google Play / 身份
| play-billing-library-version-upgrade | Play Billing Library 升级 |
| engage-sdk-integration | Play Engage SDK 集成与排错 |
| verified-email | Credential Manager 验证邮箱流程 |
性能 / 测试
| perfetto-sql | 自然语言 → Perfetto SQL 查询 trace |
| perfetto-trace-analysis | 分析 Perfetto trace(卡顿、内存、延迟) |
| testing-setup | 单元/UI/截图/E2E 测试策略与基础设施 |
推荐上手流程
#mermaid-svg-pMNlGc7ArNnBro1p{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-pMNlGc7ArNnBro1p .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-pMNlGc7ArNnBro1p .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-pMNlGc7ArNnBro1p .error-icon{fill:#552222;}#mermaid-svg-pMNlGc7ArNnBro1p .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-pMNlGc7ArNnBro1p .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-pMNlGc7ArNnBro1p .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-pMNlGc7ArNnBro1p .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-pMNlGc7ArNnBro1p .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-pMNlGc7ArNnBro1p .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-pMNlGc7ArNnBro1p .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-pMNlGc7ArNnBro1p .marker{fill:#333333;stroke:#333333;}#mermaid-svg-pMNlGc7ArNnBro1p .marker.cross{stroke:#333333;}#mermaid-svg-pMNlGc7ArNnBro1p svg{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-pMNlGc7ArNnBro1p p{margin:0;}#mermaid-svg-pMNlGc7ArNnBro1p .label{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;color:#333;}#mermaid-svg-pMNlGc7ArNnBro1p .cluster-label text{fill:#333;}#mermaid-svg-pMNlGc7ArNnBro1p .cluster-label span{color:#333;}#mermaid-svg-pMNlGc7ArNnBro1p .cluster-label span p{background-color:transparent;}#mermaid-svg-pMNlGc7ArNnBro1p .label text,#mermaid-svg-pMNlGc7ArNnBro1p span{fill:#333;color:#333;}#mermaid-svg-pMNlGc7ArNnBro1p .node rect,#mermaid-svg-pMNlGc7ArNnBro1p .node circle,#mermaid-svg-pMNlGc7ArNnBro1p .node ellipse,#mermaid-svg-pMNlGc7ArNnBro1p .node polygon,#mermaid-svg-pMNlGc7ArNnBro1p .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-pMNlGc7ArNnBro1p .rough-node .label text,#mermaid-svg-pMNlGc7ArNnBro1p .node .label text,#mermaid-svg-pMNlGc7ArNnBro1p .image-shape .label,#mermaid-svg-pMNlGc7ArNnBro1p .icon-shape .label{text-anchor:middle;}#mermaid-svg-pMNlGc7ArNnBro1p .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-pMNlGc7ArNnBro1p .rough-node .label,#mermaid-svg-pMNlGc7ArNnBro1p .node .label,#mermaid-svg-pMNlGc7ArNnBro1p .image-shape .label,#mermaid-svg-pMNlGc7ArNnBro1p .icon-shape .label{text-align:center;}#mermaid-svg-pMNlGc7ArNnBro1p .node.clickable{cursor:pointer;}#mermaid-svg-pMNlGc7ArNnBro1p .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-pMNlGc7ArNnBro1p .arrowheadPath{fill:#333333;}#mermaid-svg-pMNlGc7ArNnBro1p .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-pMNlGc7ArNnBro1p .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-pMNlGc7ArNnBro1p .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-pMNlGc7ArNnBro1p .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-pMNlGc7ArNnBro1p .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-pMNlGc7ArNnBro1p .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-pMNlGc7ArNnBro1p .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-pMNlGc7ArNnBro1p .cluster text{fill:#333;}#mermaid-svg-pMNlGc7ArNnBro1p .cluster span{color:#333;}#mermaid-svg-pMNlGc7ArNnBro1p div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-pMNlGc7ArNnBro1p .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-pMNlGc7ArNnBro1p rect.text{fill:none;stroke-width:0;}#mermaid-svg-pMNlGc7ArNnBro1p .icon-shape,#mermaid-svg-pMNlGc7ArNnBro1p .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-pMNlGc7ArNnBro1p .icon-shape p,#mermaid-svg-pMNlGc7ArNnBro1p .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-pMNlGc7ArNnBro1p .icon-shape .label rect,#mermaid-svg-pMNlGc7ArNnBro1p .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-pMNlGc7ArNnBro1p .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-pMNlGc7ArNnBro1p .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-pMNlGc7ArNnBro1p :root{–mermaid-font-family:\”trebuchet ms\”,verdana,arial,sans-serif;}
安装 Android CLI
配置 PATH + JAVA_HOME
android info 验证 SDK
android init
按需 android skills add
android create 或打开已有项目
android describe 分析结构
gradlew assembleDebug 构建
android run –apks 部署
android screen capture 验证 UI
需要最新文档时 android docs search
逐步命令示例:
# 1. 验证环境
android —version
android info
java –version
# 2. 初始化 Agent skills
android init
# 3. 按项目需要安装专项 skills(示例)
android skills add —skill=agp-9-upgrade
android skills add —skill=edge-to-edge
# 4. 从零创建项目(可选)
android create list
android create –o .\\MyApp empty-activity-agp-9
# 5. 进入 Android 项目根目录(含 settings.gradle.kts)
cd path\\to\\your-android-project
# 6. 分析项目结构与产物路径
android describe
# 7. Gradle 构建 + CLI 部署(需连接设备或模拟器)
.\\gradlew assembleDebug
android run —apks=app\\build\\outputs\\apk\\debug\\app-debug.apk —debug
# 8. 截屏验证(解锁设备后效果更好)
android screen capture –a –o .\\screen.png
# 9. 查阅最新官方文档片段(可选)
android docs search 'edge to edge insets'
打开项目时注意: 用 Android Studio 打开 项目根目录(含 settings.gradle.kts 的层级),不要只打开 app/ 子模块,否则会在错误位置生成 .idea 配置。
Windows 平台限制
官方 Known issues 当前包括:
| android emulator * | Windows 上整组命令暂不可用;请用 AS Device Manager 或已配置的 AVD |
| PowerShell 一键 curl 安装 | 暂不支持,请用 winget 或手动下载 |
| 构建类命令 | 依赖 Java;未配置 JAVA_HOME 时 gradlew 会失败(exit code 9009) |
| android studio * | 需 Quail 2 Canary 1+ 与 Gemini in AS;纯终端工作流可跳过 |
数据收集说明
Android CLI 会收集基础使用 telemetry(详见 官方文档 Data collected):
- 收集:子命令名、部分固定选项名(如 –sdk、medium_phone profile)、匿名化后的异常栈
- 不收集:命令输出内容、自定义项目名、本地路径、Maven 坐标等用户输入
企业 CI 或合规场景部署前,可对照官方说明评估是否满足内网策略。
常见问题
android 命令找不到
- 确认 android.exe 所在目录已加入系统 PATH
- 修改 PATH 后重启终端或 IDE
- 临时可用完整路径:C:\\path\\to\\android.exe –version
AGP 版本不兼容
- 升级 Android Studio 到支持项目 AGP 的版本(AGP 9.x 需 Panda 2+)
- 或降级项目 AGP/Gradle(需改 libs.versions.toml、gradle-wrapper.properties 等)
android describe / android run 失败
- 检查 java -version 是否可用
- 设置 JAVA_HOME 指向 AS 的 JBR 或已下载的 JDK
- 在项目根目录执行,而非 app/ 子目录
- android run 须带 –apks= 且 APK 已存在;先执行 .\\gradlew assembleDebug
android docs 无结果或 fetch 失败
- 确认 CLI 已 android update 到较新版本
- kb:// URL 须从 docs search 结果中原样复制,勿手写路径
Skills 装完后 Agent 没反应
- 确认 skill 已安装到对应 Agent 的 skills 目录
- 尝试 android skills add –agent=<agent名> 显式指定
- Cursor 等 IDE 可能需要重启后才会加载新 skills
设备截屏全黑
- 多为设备锁屏或息屏;解锁后再执行 android screen capture
延伸阅读
- Android CLI 与 Skills:用任意 Agent 约 3 倍速搭建项目(Google 博客)
- Agent 工具与资源(中文)
- Android CLI 概览
- Download Android CLI
- Android CLI Release Notes
- AGP 与 Android Studio 兼容表
- android/skills GitHub 仓库
- Android CLI Specialist Skill 说明
- 命令行构建 APK(gradlew)
文档基于 Android CLI 1.0、android/skills 与 Google 2026-04 官方博客整理。命令与版本以本机 android –version 及官方文档为准;AI 辅助生成的配置请在实际环境中验证后再用于生产流水线。






