Android CLI 是一个命令行界面,可让您使用任意工具更轻松高效地为 Android 构建应用。它为智能体优先工作流标准化了核心开发能力,为开发者提供了官方工具、技能和知识的入口,以便更有效地进行开发。它还可以简化 CI、维护和任何其他脚本自动化,以适应 Android 开发日益分布式的特性。
例如,智能体或脚本可以使用 CLI 自动执行环境设置、从模板搭建新项目,以及直接从终端管理虚拟设备。它还让智能体能够访问 Android 技能 和专门的 Android 知识库,以帮助确保您的 项目应用 Android 推荐的模式和最佳实践。
安装 Android CLI
如需安装 Android CLI,请按以下步骤操作:
如需确保您使用的是最新版本,请更新 Android CLI:
android update
如需检查您的机器上是否已安装 Android CLI,请运行 which android 或 command -v android:如果返回路径,则表示已安装。
为智能体设置
如需帮助智能体了解和使用 Android CLI,请运行 init 以安装 android-cli 技能:
android init
已知问题
- 目前,适用于 Windows 的
android emulator命令已停用。
如果您遇到任何问题或希望提供反馈,请 报告 bug。
全局选项
这些是可选标志,您可以与其他 Android CLI 命令搭配使用。
-h, --help
用法: android <command> -h
说明: 显示所讨论工具或特定命令的帮助手册。
示例:
android -handroid create -h
--sdk
用法: android --sdk=<path-to-sdk> <command>
说明: 您要用于后续命令的 Android SDK 的路径。您可以使用 --sdk 设置暂时替换默认 Android SDK,而无需在每次想要切换时都更改您的全局环境变量。如需检查您默认使用的 Android SDK,请运行
android info。
示例: android --sdk=<path/to/sdk> sdk list
命令
本部分列出了所有 Android CLI 命令,并介绍了它们的作用。
所有这些命令都应以 android 开头,例如
android create、android run 等。可选修饰符用方括号 [] 括起来,而必需的实参则不括起来。
create
用法: android create [--dry-run] [--verbose] [--name=<application-name>] [--output=<dest-path>] [<template-name>]
说明: 从模板初始化新项目。如需查看模板选项,请运行 android create -h。
实参(必需):
-o, --output- 目标项目目录路径。
选项:
--dry-run- 模拟整个项目创建过程,但实际上不 保存任何文件。例如,您可以先执行试运行,了解不同模板的作用,然后再确定要使用哪个模板。--verbose- 启用详细输出,包括从模板复制哪些 文件等信息。--name=<application-name>- 项目目录的名称。如果省略,则使用输出目录。<template-name>- 用于创建新项目的模板的名称。 如果省略,则使用empty-activity-agp-9。
示例: android create --dry-run --verbose empty-activity-agp-9
create list
用法: android create list
说明: 列出所有可用于创建新项目的模板。
describe
用法: android describe [--project_dir=<project-directory>]
说明: 分析 Android 项目以生成描述性元数据。 此命令会识别并输出 JSON 文件的路径,这些文件详细说明了项目的结构,包括构建目标及其对应的输出工件位置(例如 APK 文件)。借助这些信息,其他工具和命令可以高效地找到构建工件。
选项:
--project_dir- 要描述的项目目录。如果省略,则使用当前目录。
示例: android describe --project_dir=/path/to/your/project
docs
用法:
android docs search <query>android docs fetch <kb-url>
说明: android docs 命令是一个两步流程,用于
直接从 CLI 访问 Android 知识库。
首先,使用 search 命令搜索与查询相关的文档。搜索结果将包含以 kb:// 开头的特殊网址,然后您可以将这些网址与 fetch 命令搭配使用,以将文档命令输出到终端。
示例:
android docs search 'How do I improve my app performance?'android docs fetch kb://android/topic/performance/overview
emulator create
用法: android emulator create [--list-profiles] [--profile=<profile-name>]
说明: 创建虚拟设备。
选项:
--list-profiles- 列出可用于创建 设备的设备配置文件。--profile=<profile-name>- 使用指定的配置文件创建设备。如果省略此选项,系统将创建medium_phone配置文件。
emulator list
用法: android emulator list
说明: 列出可用的虚拟设备。
emulator start
用法: android emulator start <device-name>
说明: 启动指定的虚拟设备。
实参(必需):
<device-name>- 要启动的设备名称(例如medium_phone)。 使用android emulator list查看可用设备。
示例: android emulator start medium_phone
emulator stop
用法: android emulator stop <device-serial-number>
说明: 停止指定的虚拟设备。
实参(必需):
<device-serial-number>- 要停止的设备序列号。
示例: android emulator stop emulator-5554
info
用法: android info
说明: 显示所用默认 Android SDK 的路径。如需更改
所用的 Android SDK,请使用 --sdk。
init
用法: android init
说明: 通过安装 android-cli 技能为智能体设置环境。
layout
用法: android layout [--pretty] [--output] [--diff]
说明: 以 JSON 格式返回活跃 Android 应用(通过实体设备或模拟器连接)的界面布局。
选项:
-p, --pretty- 使用缩进和换行符设置 JSON 输出的格式 以便用户阅读。-o, --output- 指定用于保存布局树的文件位置。如果省略,JSON 将直接输出到 stdout。-d, --diff- 返回自上次内部快照(上次运行布局时)以来发生更改的布局元素的列表,而不是完整的布局树。
示例:: android layout --output=./hierarchy.json
skills add
Android 技能是特殊说明,旨在帮助智能体更好地理解和执行遵循 Android 开发最佳实践和指南的特定模式。如需了解详情,请参阅 Android 技能简介。
用法: android skills add [--all] [--agent=<agent-name>] [--skill=<skill-name>]
说明: 将 Android 技能安装到所有检测到的智能体的技能目录中。如果您没有任何现有智能体目录,并且未指定特定智能体,则技能将安装到 ~/.gemini/antigravity/skills 中的 Gemini 和 Antigravity。
选项:
--all- 一次添加所有 Android 技能。如果省略(且未指定--skill),则只会安装android-cli技能。--agent- 要为其安装技能的智能体列表,以逗号分隔。如果省略,则技能将安装到所有检测到的智能体。--skill- 您要安装的技能名称。如果省略(且未指定--all),则只会安装android-cli技能。
示例: android skills add --agent='gemini' edge-to-edge
skills find
用法: android skills find <string>
说明: 查找与给定字符串匹配的技能。
实参(必需):
string- 与技能说明匹配的字符串。
示例: android skills find 'performance'
skills list
用法: android skills list [--long]
说明: 列出可用的技能。
选项:
--long- 输出每个技能的其他信息,包括技能的 说明以及已安装该技能的智能体。
skills remove
用法: android skills remove [--agent] --skill=<skill-name>
说明: 移除技能。如果您未指定特定智能体,则技能将从所有智能体中移除。
实参(必需):
--skill- 要移除的技能的名称。
选项:
--agent- 要从中移除技能的智能体列表,以逗号分隔。如果省略,则技能将从所有智能体中移除。
示例: android skills remove --agent='gemini' --skill=edge-to-edge
screen capture
用法: android screen capture [--output] [--annotate]
说明: 截取已连接设备的屏幕截图。
选项:
-o, --output- 指定用于保存屏幕截图的文件位置。如果省略,原始 PNG 数据将直接输出到 stdout。-a, --annotate- 在图片上检测到的所有界面元素 周围绘制带标签的边界框,以与resolve命令搭配使用。
示例: android screen capture --output=ui.png
screen resolve
用法: android screen resolve --screenshot=<path> --string=<string>
说明: 将使用 screen capture 截取的带注释的屏幕截图中的视觉标签转换为实际屏幕坐标 (x, y)。有助于编写点击元素的脚本,而无需手动计算其位置。
标志:
--screenshot- 带注释的屏幕截图的路径。--string- 包含至少一个占位符的字符串,该占位符对应于格式为#<number>的界面元素标签。#<number>部分将被屏幕坐标替换。
示例:
如果标签 5 的坐标为 (500, 1000),则命令
android screen resolve --screenshot=ui.png --string="input tap #5"
返回输出
input tap 500 1000
sdk install
用法: android sdk install <package[@version]> [--beta] [--canary] [--force]
说明: 安装指定的 SDK 软件包。
实参(必需):
package[@version]- 要安装的软件包的列表,以空格分隔。如果未指定版本,则安装渠道(默认情况下为稳定版渠道)中软件包的最新版本。
选项:
--beta- 包含 Beta 版软件包。--canary- 包含 Canary 版软件包。--force- 强制降级到旧版本。
示例:
android sdk install platforms/android-34 build-tools/34.0.0- 安装 Android SDK 平台 34 和 SDK 构建工具 34.0.0 软件包的最新版本。android sdk install platforms/android-34@2- 安装 Android SDK 平台 34 软件包的版本 2。android sdk install --canary system-images/android-35/google_apis/x86_6- 从 Canary 版渠道安装 Android 35 系统映像的最新版本。android sdk install --force platforms/android-33@1- 从稳定渠道恢复到 Android SDK 平台 33 软件包的版本 1 。
sdk list
用法: android sdk list <package-pattern>
说明: 列出已安装和可用的 SDK 软件包。
实参(必需):
<package-pattern>- 按模式过滤软件包。支持正则表达式。
选项:
--all- 显示所有已安装和可用的软件包。--all-versions- 显示每个软件包的所有版本。--beta- 包含 Beta 版软件包。--canary- 包含 Canary 版软件包。
sdk remove
用法: android sdk remove <package-name>
说明: 从 SDK 中移除软件包。
实参(必需):
<package-name>- 要移除的软件包的名称。
示例: android sdk remove build-tools/36.1.0
run
用法: android run [--debug] [--activity=<activity-name>] [--device=<serial-number>] [--type=<param>] --apks=<apk-paths>
说明: 将 Android 应用部署到已连接的设备或模拟器。它不会执行任何构建步骤;您必须提供要安装的 APK 文件的路径。
实参(必需):
--apks- 要安装的 APK 文件的路径列表,以英文逗号分隔,您 要安装。该路径相对于您当前在文件系统中的位置。
选项:
--activity- APK 安装后要启动的 activity 的名称。如果有多个 activity,您必须指定一个要最初启动的 activity。--debug- 以调试模式部署应用。以调试模式运行 应用后,您必须从 IDE(例如 Android Studio)或命令行工具连接调试器,才能开始调试。--device- 目标设备或模拟器的序列号。仅在连接多个设备时才需要使用。如需查找设备序列号,请运行adb devices。--type- 要启动的组件类型。如果您想直接启动后台服务而不是界面 activity,请使用此选项。 支持的类型:ACTIVITYWATCH_FACETILECOMPLICATIONDECLARATIVE_WATCH_FACE
示例:
android run --apks=app/build/outputs/apk/debug/app-debug.apk- 将 单个 APK 部署到默认设备。android run --apks=base.apk,density-hdpi.apk,lang-en.apk- 将多个 APK 部署到默认设备。android run --apks=app-debug.apk --type=SERVICE --activity=.sync.DataSyncService- 测试没有 activity 的服务。android run --apks=app-debug.apk --device=emulator-5554- 将 APK 部署到特定设备。
sdk update
用法: android sdk update [--beta] [--canary] [<package-name>]
说明: 将一个或所有软件包更新到渠道(默认情况下为稳定版渠道)中的最新版本。如果您未指定软件包,则所有软件包都将更新。
选项:
<package-name>- 要更新的软件包的名称。--beta- 包含 Beta 版软件包。--canary- 包含 Canary 版软件包。--force- 强制降级到旧版本。
示例:
android sdk update- 检查并安装 SDK 中所有内容的更新。android sdk update build-tools/34.0.0- 将 Android SDK 构建 工具 34.0.0 软件包更新到稳定版渠道中的最新版本。android sdk update --canary platforms/android-35- 将 Android SDK 平台 35 软件包更新到 Canary 版渠道中的最新版本。
update
用法: android update
说明: 更新 Android CLI。
-V, --version
说明: 显示 Android CLI 的当前版本。