Android CLI 与 Skills 入门实践
面向需要在终端、CI/CD 或 AI Agent 工作流中做 Android 开发的工程师。
官方入口:Agent 工具与资源 · Android CLI 概览 · android/skills 仓库
目录
- [背景:为什么需要 Android CLI](#背景:为什么需要 Android CLI)
- [Agent 工具栈:CLI、Skills 与 Knowledge Base](#Agent 工具栈:CLI、Skills 与 Knowledge Base)
- [与 Android Studio 的分工](#与 Android Studio 的分工)
- 环境要求与版本兼容
- [安装 Android CLI(Windows)](#安装 Android CLI(Windows))
- [配置 PATH 与 Java](#配置 PATH 与 Java)
- 常用命令速查
- [Android Skills 详解](#Android Skills 详解)
- [Android Knowledge Base 详解](#Android Knowledge Base 详解)
- [当前可用的 Skills 清单](#当前可用的 Skills 清单)
- 推荐上手流程
- [Windows 平台限制](#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 与调试。
安装与分发关系:
text
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 仓库:
powershell
# 安装单个 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 兼容表:
| Android Studio 版本(代号) | 支持 AGP 范围 |
|---|---|
| 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
| AGP 版本 | 最低 Gradle 版本 |
|---|---|
| 9.1 | 9.3.1 |
| 8.13 | 8.13 |
Java
| 使用方式 | 是否需要配置 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(推荐)
powershell
winget install --id Google.AndroidCLI
方式二:手动下载
从 Download Android CLI 获取安装包,解压后将 android.exe 所在目录加入系统 PATH。
验证安装
powershell
android --version
android info
android info 应输出 SDK 路径,例如:
text
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 会话):
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:
text
--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 内置 Skills(如 Cursor 官方) | Android 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)------两步检索:
powershell
# 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 的分工
| Android Skills | Knowledge Base | |
|---|---|---|
| 形态 | 步骤化 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 为准。
基础 / 构建
| Skill | 用途 |
|---|---|
android-cli |
编排 android 命令:建项目、部署、SDK、诊断 |
agp-9-upgrade |
迁移到 AGP 9(不含 KMP 项目) |
r8-analyzer |
分析 R8/ProGuard keep 规则,优化包体 |
UI / Compose
| Skill | 用途 |
|---|---|
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
| Skill | 用途 |
|---|---|
camera1-to-camerax |
Camera1/Camera2 → CameraX |
appfunctions |
暴露 App Functions,供系统/Agent 无 UI 调用 |
display-glasses-with-jetpack-compose-glimmer |
XR 眼镜 + Compose Glimmer UI |
Google Play / 身份
| Skill | 用途 |
|---|---|
play-billing-library-version-upgrade |
Play Billing Library 升级 |
engage-sdk-integration |
Play Engage SDK 集成与排错 |
verified-email |
Credential Manager 验证邮箱流程 |
性能 / 测试
| Skill | 用途 |
|---|---|
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
逐步命令示例:
powershell
# 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_phoneprofile)、匿名化后的异常栈 - 不收集:命令输出内容、自定义项目名、本地路径、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 辅助生成的配置请在实际环境中验证后再用于生产流水线。