
本文介绍什么是Android CLI同时介绍常用的命令 和 Android Skills。一、什么是Android CLIAndroid CLI是 Google 在2026年4月推出的一种全新命令行界面。它意在面向 AI Agent 驱动开发和自动化脚本的新场景包括项目创建、SDK管理、模拟器操作等能力。按官方的说法它是一个让你用任意选择的工具更高效地构建 Android 应用的命令行界面把智能体优先agent-first工作流里最核心的开发能力标准化同时给模型和脚本提供官方工具、官方技能、官方知识的统一入口。官方举了四个典型场景自动完成环境搭建SDK、平台组件等基于模板搭起一个新项目的骨架直接从终端管理虚拟设备模拟器用历程Journeys测试应用也就是说以前分散在adb、sdkmanager、avdmanager里的那些活现在有了一个统一的、专门为 Agent 和脚本设计的入口。Andriod CLI的第一个版本是 0.7发布于 2026 年 4 月之后进入快速迭代功能几乎每月都在变本文写作时我本机装的是 1.0.16261425。1.1 它和 adb、sdkmanager、gradlew 是什么关系Android 开发并不缺命令行工具adb、sdkmanager、avdmanager、gradlew大家都很熟。Android CLI并不是把它们删掉重来而是把同一个终端里的常见操作收拢成一套语法统一的命令以前干什么Android CLI 里对应adb install/adb shell am start装 APK、启动 Activityandroid run还支持增量安装adb devices/emulator -list-avds看设备和虚拟设备android emulator listsdkmanager安装、更新、卸载 SDK 组件android sdk install/update/remove/listavdmanager创建和管理虚拟设备android emulator create/start/stopadb shell uiautomator dump、手工截图看界面结构、截屏、算坐标android layout、android screen capture/resolve打开浏览器翻文档查官方文档android docs search/fetch有一点要特别注意android run不管构建。官方原文说得很清楚它不会执行任何构建步骤您必须提供要安装的 APK 文件的路径。所以gradlew该跑还得跑android run接的是构建完成之后那一段。二、安装Android CLI2.1 不同平台安装Linuxcurl-fsSLhttps://dl.google.com/android/cli/latest/linux_x86_64/install.sh|bashMac// Apple 芯片的curl-fsSLhttps://dl.google.com/android/cli/latest/darwin_arm64/install.sh|bash// Intel芯片的curl-fsSLhttps://dl.google.com/android/cli/latest/darwin_x86_64/install.sh|bashWindowscurl.exe-fsSLhttps://dl.google.com/android/cli/latest/windows_x86_64/install.cmd-o%TEMP%\i.cmd%TEMP%\i.cmd以上三条都是本地安装只给你的用户账号装不需要管理员权限。如果你想让这台机器上的所有用户都能用把install.sh换成install_root.sh、install.cmd换成install_admin.cmd即可需要sudo或管理员权限。2.2 确认版本android--versionandroid info实测输出是这样的android--version1.0.16261425android info sdk: C:\Users\{用户名}\AppData\Local\Android\Sdk version:1.0.16261425 launcher_version:1.0.16261425android info的作用是告诉你它用的是哪个 SDK。机器上同时装着好几个 SDK 是常事这一步能避免命令装到了另一个 SDK 上这种莫名其妙的排查。装没装上还可以用官方推荐的方式确认which androidLinux/macOS或command -v android返回路径就是装好了。2.3 初始化android initandroid init做的是给 Agent 做设置它会把android-cli这个技能安装到本机被识别到的各个 AI 编码工具里好让它们知道有这么一套命令、该怎么用。跑完再执行android skills list就能看到技能装给了哪些工具Installed for: claude-code, codex, cursor, github-copilot, lingma, qoder, qoder-cn, reasonix, trae-cn红框是我本地设备被 Connection refusedGitHub 拉不到技能包。2.4 其他安装方式除了前面的curl | bash官方还给每个平台都准备了包管理器这条路。如果你的机器上已经有对应的包管理器这条路更好维护Linuxapt-getcurl-fsSLhttps://dl.google.com/linux/linux_signing_key.pub|sudotee/etc/apt/keyrings/google.asc/dev/nullsudosh-cecho deb [archamd64 signed-by/etc/apt/keyrings/google.asc] http://dl.google.com/android/cli/latest/debian/ stable main /etc/apt/sources.list.d/android-cli.listsudoapt-getupdatesudoapt-getinstallandroid-climacOSHomebrewbrew tap android/tap brewinstallandroid-cliWindowswingetwingetinstall--idGoogle.AndroidCLI直接下载二进制也可以从下载页把对应平台的可执行文件下下来Linux/macOS 是androidWindows 是android.exe自己放进PATH里。装好之后记得养成一个习惯——定期更新android update2.5 装到哪里去了实测我在 Windows 11 上用install.cmd本地安装文件落在C:\Users\{用户名}\AppData\AndroidCLI\android.exe同时安装脚本把这个目录写进了用户级 PATH。所以如果你发现cmd / PowerShell里能用、而某个继承了旧环境变量的终端里报command not found先检查一下 PATH 刷新或者直接用绝对路径调用。2.6 官方已知问题官方文档已知问题一节里明确写了两条适用于 Windows 的android emulator命令目前已停用。目前不支持从 Windows PowerShell 下载 Android CLI。Windows 上请用 cmd 或 winget 那条路我在 Windows 上实测的补充android emulator create --list-profiles能正常列出设备配置文件说明模拟器相关能力并非全部不可用而android emulator list返回为空——因为我还没创建过任何虚拟设备。这块属于官方正在调整的部分用之前建议先跑一次确认。2.7 用 .androidrc 固化配置如果一个参数你每次都要敲就该把它写进配置文件。新建一个.androidrcmacOS / Linux~/.androidrcWindows%USERPROFILE%\.androidrc内容就是命令行参数一行一个。最典型的就是指定默认 SDK--sdkpath-to-sdk这样每次调用 Android CLI 都会自动带上这个参数不用再改全局环境变量。三、Android Skills3.1 Android Skill 简述Android Skills 是 Google 提供的、经过 AI 优化的指令集目的是让 AI 工具和智能体更好地理解和执行符合 Android 最佳实践的特定模式。它们存放在官方 GitHub 仓库goo.gle/android-skills里遵循 智能体技能 开放标准因此任何支持技能的 AI 工具都能用不绑定某一家。它解决的是模型的知识有截止日期、而 Android 的写法一直在变这个问题。3.2 能帮 Agent 做什么官方给出的例子包括从 XML 迁移到 Compose升级到 AGP 9搭建 Navigation 3 这类较新的框架让应用界面全屏显示edge-to-edge审核 R8 配置提升性能官方总结了它的四个好处掌握专业知识——把 Android 特有上下文按需喂给模型突破模型训练周期的限制可重复的工作流——多步任务有标准指令结果更一致资源捆绑——脚本、模板、文档都放在一个SKILL.md附近不用每次手动往提示里塞文件共享专业知识——团队自己的 Android 开发套路可以打包成技能统一访问和协作。3.3 常用命令官方推荐用Android CLI来发现、下载和管理技能android skills list# 列出可用技能默认显示详细信息android skills list--long# 附上技能说明和已安装的代理android skillsfindperformance# 按关键字查找技能android skillsaddedge-to-edge# 安装已安装则更新到最新版android skillsadd--all# 一次性安装/更新全部技能android skillsadd--agentgeminiedge-to-edge# 只装给指定代理android skills update# 让技能保持最新android skills remove edge-to-edge# 卸载几点说明skills add默认会装到所有检测到的代理目录里如果一个代理目录都没有也没指定--agent它会装到~/.gemini/antigravity/skills供Gemini和Antigravity使用。skills add同时承担更新的职责。如果你改过某个技能的内容一定要把它改名否则下次skills add会直接覆盖你的修改这是官方文档的明确提醒。新版本里skills list默认就显示详细信息还能用--agent agent只看某个代理装了什么。3.4 技能是怎么被触发的不需要你手动指定。智能体会根据你的任务自动激活相关技能——你只要正常提要求比如把我的应用界面改成全屏的如果这个技能可用Agent 会自己找到并用上。如果用的是Android Studio里的Gemini还可以在聊天窗口直接输入技能名手动调用。3.5 自己写一个 Skill团队内部的套路也能打包成技能。规则不复杂技能必须放在项目根目录的.skills/或.agent/skills/下一个技能一个目录目录里放一个SKILL.md文件名区分大小写可以用子目录归类例如skills/ui-flows/skill-name/SKILL.md目前只支持项目代码库内的技能。SKILL.md由 YAML 元数据块 Markdown 正文组成--- name: skill-name description: A description of what this skill does and when to use it. metadata: author: example-org version: 1.0 --- Skill content格式上的硬性要求项目要求name唯一标识与目录名一致最多 64 个字符只允许小写字母、数字和连字符description说清楚做什么以及什么时候该用最多 1024 个字符正文建议 1000020000 个字符约 25005000 token超出就把细节挪到资源文件里主文件想保持简洁可以在技能目录里加三个可选子目录scripts/可执行脚本references/详细技术文档assets/模板、示意图、JSON 架构等静态资源在SKILL.md里引用时用技能根目录的相对路径例如运行scripts/cleanup.py。四、常用命令以下命令都以android开头。方括号[]表示可选尖括号表示必填。4.1 项目android create——从模板初始化一个新项目。android create --dry-run--nameMyApp--output./MyApp--dry-run空跑一遍不写任何文件。想先看看某个模板会生成什么用这个最合适。--verbose详细输出连从模板复制了哪些文件都告诉你。--nameapplication-name项目名官方示例是My Application。-o, --outputdest-path目标项目目录路径默认当前目录。--minSdkapi-level应用支持的最低 API 级别默认由模板决定。template-name模板名省略时用默认模板见下。实测一次--dry-run确认它确实什么都不写 android create --dry-run --nameMyApp --output./MyApp INFO: Processing template empty-activity INFO: Dry run: Would install Android SDK package platforms/android-36 INFO: Successfully created project Empty Activity at ...这条输出里有两条容易被忽略的信息默认模板在当前版本叫empty-activity官方概览页写的是empty-activity-agp-9版本之间改过名以--list为准它明说了会安装platforms/android-36——创建项目时会顺带把所需的 SDK 平台装上离线环境下要提前留意这一步。android create list——列出可用项目模板。⚠️ 这里有个文档与实现的差异务必注意官方文档写的是android create list但我本机1.0.16261425执行它直接报错Missing required option: --name当前版本的写法是把list当成一个标志android create--list执行后它会先下载模板包再列出模板实测输出https://dl.google.com/android/repository/templates-sdk-package-15508551.zip... Unzipping build/templates...... Template name Template description Tags empty-activity (default) Empty Activity compose,activity,agp-9这也印证了一件事从 1.0.15498356 起项目模板不再打包在 CLI 二进制里而是每次从 SDK 软件包动态下载这样新项目总能拿到最新模板代价是第一次执行要联网。android describe——分析项目生成描述性元数据。android describe--project_dir/path/to/your/project它会识别并输出 JSON 文件的路径里面详细说明项目结构包括 build 目标以及对应的产物位置比如 APK 文件路径。这一步的意义在于脚本和 Agent 不用再去猜app/build/outputs/...这一长串路径直接读元数据即可。⚠️ 选项以android create -h的实际输出为准。本文写作时它的选项列表里列了--list、--minSdk、--name、--output却没有列出--dry-run而实测--dry-run是能正常工作的——这类帮助与实现不同步的情况在这套工具上并不少见。4.2 模拟器android emulator list# 列出可用的虚拟设备android emulator create --list-profiles# 列出可用的设备配置文件android emulator create--profilemedium_phone# 按指定配置创建android emulator start medium_phone# 启动android emulator stop emulator-5554# 停止用序列号如果create时不给--profile默认创建medium_phone。实测--list-profiles的输出large_desktop medium_desktop medium_phone medium_tablet small_desktop small_phone从版本说明里还能看到两个变化android emulator系列命令不区分大小写了以及前面提过的——Windows 上该命令目前被官方标注为停用。4.3 SDK包管理android sdk listpackage-pattern# 列出已安装和可用的包支持正则android sdk list--all--all-versions--beta--canary# 全量/所有版本/含 Beta/含 Canaryandroid sdkinstallplatforms/android-34 build-tools/34.0.0 android sdkinstallplatforms/android-342# 指定版本android sdkinstall--canarysystem-images/android-35/google_apis/x86_6 android sdk update# 更新全部android sdk update build-tools/34.0.0# 更新指定包android sdk remove build-tools/36.1.0# 卸载--beta/--canary把渠道里的预发布版本也纳入范围--force强制降级到旧版本不给版本号时装的是所选渠道里的最新版默认稳定渠道。实测查询平台包的输出 android sdk list platforms/android Installed packages: (no installed packages match pattern platforms/android)新版本还给sdk家族加了一个很实用的能力通过--platform os_arch指定非宿主平台。也就是说你可以在 Windows 上检查、解析、安装给 Linux 或 macOS 用的组件这对跨平台 CI 很有用。另外sdk remove支持一次移除多个包sdk resolve支持按 SHA 解析。4.4 文档查询android docs是一个两步流程直连 Android 官方知识库android docs searchhow to improve app performanceandroid docs fetch kb://android/topic/performance/overview先search搜结果里会给出以kb://开头的特殊网址再把网址交给fetch文档正文就打印在终端里Fetching docs from: kb://android/topic/performance/overview Title: App performance guide URL: kb://android/topic/performance/overview ---------------------------------------- # App performance guide ...这里以搜索“compose”为例看命令截图效果第一次执行search时会先准备索引实测日志是这样的Waiting for index to be ready... Knowledge Base zip not found. Downloading... Downloading Knowledge Base ... ... Knowledge Base zip updated successfully. Index created with 5174 items and committed.也就是说它会把整个 Android 知识库的索引下载到本地本次是 5174 条之后搜起来就是本地的了。这条命令对 Agent 尤其有价值——模型查文档不用再去翻网页直接在终端里拿。4.5 其他看界面布局android layoutandroid layout--pretty--output./hierarchy.json它把已连接设备真机或模拟器上的界面布局以 JSON 形式返回。默认只返回可交互元素加--full返回整棵树加--diff只返回自上次快照以来发生变化的元素加--no-idle则不等待界面空闲。实测提醒我在没有连接任何设备的情况下执行android layout命令一直处于等待状态直到超时。所以这条命令要配合设备使用。截屏与坐标android screen capture/android screen resolveandroidscreencapture--outputui.png--annotateandroidscreenresolve--screenshotui.png--stringinput tap #5--annotate会在检测到的界面元素周围画上带标签的边界框screen resolve再把这些视觉标签#5这种占位符换算成真实坐标返回input tap 500 1000这样的命令。**这一步的意义是让脚本或 Agent 不用人眼去量坐标就能点中控件。**新版本里这套边缘检测换成了 Canny 算法识别更准。部署运行android runandroid run--apksapp/build/outputs/apk/debug/app-debug.apk android run--apksbase.apk,density-hdpi.apk,lang-en.apk android run--apksapp-debug.apk--deviceemulator-5554 android run--apksapp-debug.apk--activity.MainActivity--debug--apksAPK 路径列表逗号分隔必填--activity装完要启动的 Activity--device目标设备序列号只在有多个设备时才需要--debug以调试模式部署之后需要自己连调试器--type要启动的组件类型支持ACTIVITY、WATCH_FACE、TILE、COMPLICATION、DECLARATIVE_WATCH_FACE——用来直接拉起没有界面的后台服务、表盘等。还记得前面说的吗——android run不做构建APK 得你自己先用 Gradle 构建出来。从版本说明看官方在快这件事上下了功夫新增独立的android install命令带增量 APK 推送“比 adb 快几个数量级”1.0.16251017 又用零复制内核系统调用进一步加速了增量补丁android run支持--use-delta-install直接享受增量安装。其他杂项android info# 显示默认 Android SDK 的路径android init# 为代理安装 android-cli 技能android update# 更新 Android CLI 本身android completion# 生成并安装 Bash / Zsh / PowerShell 的补全脚本android -V,--version# 查看当前版本其中completion是 1.0.16251017 新增的装上补全脚本之后敲android按 Tab 就有提示日常用起来舒服很多。另外还有一个全局选项值得记住android--sdkpath/to/sdksdk list--sdk可以临时替换默认 SDK不用每次切换都去改全局环境变量。要查看当前默认用的是哪个 SDK跑android info。4.6 借用 Android Studio 的能力studio 子命令这是我觉得最值得关注的一块。android studio命令让 CLI以及 CLI 背后的 Agent连接到一个正在运行的 Android Studio 实例直接借用 IDE 的深度分析能力命令作用android studio check查看运行中的 Studio 实例状态、列出打开的项目先跑它验证连通性android studio analyze-file path用 IDE 的检查引擎分析文件找错误、警告和 lintandroid studio find-declaration symbol在整个项目里找符号的声明位置语义解析android studio find-usages symbol找符号的所有引用android studio open-file path在 Studio 编辑器里打开文件android studio render-compose-preview path composable渲染 Compose 预览可输出 PNG还能打印语义树android studio version-lookup artifacts...查依赖、平台、SDK 工具的最新版本举个例子android studio find-usages--shortHotelDetailScreen android studio render-compose-preview --output-image-filepreview_hotel.png --print-semantics\app/src/main/java/com/example/myapp/ui/DetailScreen.kt HotelDetailScreenPreview android studio version-lookup androidx.compose.ui:ui com.android.application agp kotlinrender-compose-preview的--print-semantics会把 Compose 预览的无障碍语义树以 JSON 输出Agent 就能看懂界面结构、甚至校验布局这在做视觉测试时非常有用。version-lookup支持三类标识符Maven 库groupId:artifactId、Gradle 插件 ID以及一批关键字——gradle、studio、agp、ndk、sdk、emulator、adb、compose、kotlin、android、platform-tools、cmdline-tools、build-tools。以前手动去网上查版本号现在一条命令就够。⚠️前置条件官方标注这是预览能力——你必须在Android Studio Quail 2 Canary 1 或更高版本里打开项目并且已在 Android Studio 中启用 Gemini 并登录。多个实例同时开着时用--pid指定 PID、用--project指定项目名。五、最佳实践结合官方文档和我的实测整理几条我认为最实用的做法。1. 装完先android init。这是让 AI Agent 真正会用这套命令的前提。跑完用android skills list确认技能装给了你要用的那些工具。2. 新建项目前先--dry-run。android create --dry-run --verbose能让你在不产生任何文件的情况下看清模板到底生成什么。3. 别把产物路径写死。用android describe拿到 JSON 元数据让脚本和 Agent 从元数据里读 APK 的路径构建变体一改也不会崩。4. 多 SDK 的场景用.androidrc而不是改环境变量。平时固定一个默认 SDK临时需要换就用android --sdkpath command覆盖改完即失效不会污染环境。5. 定期android update。官方自己也在提示里写了这句话请定期运行android update及时跟进新功能。技能那边则用android skills update。这个 CLI 迭代非常快隔一两个月就是一批新命令。6. CI 里把它当作标准化入口。环境准备用android sdk install起设备用android emulator装包用android install/android run界面检查用android layout/android screen capture。跨平台镜像构建时记得用--platform指定目标平台。7. 让 Agent 用android而不是自己拼 adb。给 Agent 的指令里可以直接写用 Android CLI 部署并截图它会走官方路径命令语义稳定、错误提示清晰不容易拼出一串脆弱的adb shell管道。8. 更新自己的技能前先改名。自定义过的技能一旦被skills add更新就会覆盖改名是唯一的保护方式。9. 文档查询交给 CLI。查资料时优先android docs search拿到的是官方知识库的原文比让模型凭记忆背 API 靠谱得多。六、优势和劣势优势1. 官方统一入口终结工具散落。项目创建、SDK 管理、虚拟设备、安装运行、界面检查、文档检索、技能管理全在一套命令里语法统一学习成本低。2. 为 Agent 而生。这是它区别于 adb 一代工具的根本点提供官方的工具、技能和知识入口让 Agent 按Android 推荐的做法干活而不是靠模型自由发挥。加上android studio子命令能借用 IDE 的语义分析能力Agent 第一次真正用上了编译器的视角。3. 生命周期与 SDK / Studio 同步。项目模板从 SDK 包动态下载新项目永远拿到最新模板sdk保存的许可文件格式与旧版 SDK 工具、Gradle 插件保持一致Antigravity 2.0 也把它作为可选的资源包集成。4. 能跨平台管 SDK。--platform os_arch让你在一台机器上检查、安装其他操作系统和 CPU 架构的组件这对多平台 CI 很关键。5. 性能上的改进是实打实的。增量安装做到了比 adb 快几个数量级1.0.16251017 又用零复制系统调用继续优化。6. 可脚本化、可进 CI。命令都面向脚本设计--dry-run、JSON 输出、kb://可编程网址、--print-semantics配合历程还能在 CI/CD 里跑用户流程验证。劣势1. 太年轻语法还在变。2026 年 4 月才有第一个版本5 个月时间就迭代到 1.0.16xxxx官方版本说明页列到 1.0.16251017我本机已经是 1.0.16261425几乎每次更新都在动命令。最直接的证据就是本文写到的那个坑官方文档写android create list本机 1.0.16261425 执行直接报错必须写android create --list。看文档时一定要以-h的实际输出为准。2. Windows 上的短板很明显。官方已知问题里写着android emulator命令目前已停用且不支持从 Windows PowerShell 下载安装。3. 强依赖网络国内可能受影响。模板、技能、知识库都是按需从网上下载。我在第一次实测android skills list时就直接撞上了墙Warning: Could not download latest skills: Failed to connect to https://github.com/android/skills/releases/latest/download/android-skills.zip: io: Connection refused技能列表因此只能显示本地已有的部分。如果你的网络访问 GitHub 有困难skills相关的命令会比较难受好消息是android docs的知识库索引我这边能正常拉取实测一次就建好了 5174 条索引。4. 它不构建。android run只做安装和启动构建仍旧是 Gradle 的活。所以它替代不了gradlew只是补上了构建之后的那一段。5. 部分能力有前置条件。android layout、screen capture需要已连接的设备android studio系列需要 Android Studio Quail 2 Canary 1 以上、启用并登录 Gemini没有设备时android layout会一直等待我实测卡到超时。6. 会收集使用数据。官方说明收集的是命令与子命令的调用、非位置参数或选项的名称、与预定义系统选项对应的取值例如模拟器模板名、代理名、以及匿名化后的堆栈轨迹。官方明确表示不会收集命令响应也不会收集用户自定的输入内容——比如执行android create --namecom.company.internal.app之类的命令它只记录存在--name这个参数不记录参数值。七、用历程测试应用Journeys这是Android CLI里思路最新的一块能力值得单独说说。Journeys历程利用 AI 的视觉和推理能力根据你的自然语言指令去导航和测试你的应用。它随Android CLI一起提供相应的技能所以你可以更准确地说是让你的 Agent把一组自然语言指令定义成一个旅程再由你选定的代理把这些指令转换成对应用的真实操作。断言也可以写成自然语言描述代理会根据它在设备上看到的内容来评估。用法上官方建议的起手式很朴素使用Android CLI时直接让代理帮你为应用的核心体验创建历程然后再让它到设备上跑一遍。由于整个流程都在终端里完成你还能把历程放进 CI/CD让每次构建都自动跑一遍关键用户流程。如果你用的是Android Studio那边也有一套对应的Journeys能力可以在 IDE 里做同样的事。八、参考资料Android CLI 概览Android CLI 版本说明下载 Android CLI含 apt-get / Homebrew / winget 安装方式Android CLI 对 Journey 的支持Android skills 概览浏览 Android 技能Android skills GitHub 仓库智能体技能开放标准报告 Android CLI 的问题