Android CLI 与 Skills 入门实践

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 installDebugadb shell screencap 等命令,容易因环境差异失败。

Android CLIandroid 命令)是 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 Baseandroid 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 runandroid 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_HOMEgradlew 会失败(exit code 9009)
android studio * 需 Quail 2 Canary 1+ 与 Gemini in AS;纯终端工作流可跳过

数据收集说明

Android CLI 会收集基础使用 telemetry (详见 官方文档 Data collected):

  • 收集:子命令名、部分固定选项名(如 --sdkmedium_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.tomlgradle-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 1.0、android/skills 与 Google 2026-04 官方博客整理。命令与版本以本机 android --version 及官方文档为准;AI 辅助生成的配置请在实际环境中验证后再用于生产流水线。