sdkmanager 是一个命令行工具,您可以用它来查看、安装、更新和卸载 Android SDK 的软件包。如果使用 Android Studio,则无需使用此工具,而可以从 IDE 管理 SDK 软件包。
Android CLI
下载 Android CLI使用 Android CLI 管理 Android SDK 的软件包
sdkmanager 工具已弃用。
请改用 Android CLI android sdk 命令。android sdk [install|list|update|remove]sdkmanager 工具在 Android SDK 命令行工具软件包中提供。如需使用 SDK 管理器安装某个版本的命令行工具,请按以下步骤操作:
- 从 Android Studio 页面下载最新的命令行工具软件包,然后提取该软件包。
- 将解压缩的
cmdline-tools目录移至您选择的新目录,例如 android_sdk。这个新目录就是您的 Android SDK 目录。 - 在解压缩的
cmdline-tools目录中,创建一个名为latest的子目录。 - 将原始
cmdline-tools目录内容(包括lib目录、bin目录、NOTICE.txt文件和source.properties文件)移动到新创建的latest目录中。现在,您就可以从这个位置使用命令行工具了。 (可选)如需安装旧版命令行工具,请运行以下命令:
将android_sdk/cmdline-tools/latest/bin/sdkmanager --install "cmdline-tools;version"
version替换为您要安装的版本,例如5.0。
用法
您可以使用 sdkmanager 列出已安装软件包和可用软件包、安装软件包以及更新软件包。如需了解详情,请参阅以下部分。
列出已安装和可用的软件包
如需列出已安装和可用的软件包,请使用以下语法:
sdkmanager --list [options] \
[--channel=channel_id] // Channels: 0 (stable), 1 (beta), 2 (dev), or 3 (canary)
使用 channel 选项,纳入从某个渠道到 channel_id(含)的软件包。例如,指定 Canary 版渠道以列出所有渠道的软件包。
安装软件包
如需安装软件包,请使用以下语法:
sdkmanager packages [options]
packages 参数是 --list 命令列出的 SDK 样式路径,该路径括在引号中。例如,"build-tools;36.0.0" 或 "platforms;android-36"。
您可以传递多个软件包路径(用空格分隔),但各个路径必须括在各自的一组引号中。例如,下面展示了如何安装最新的平台工具以及适用于 API 级别 36 的 SDK 工具:
sdkmanager "platform-tools" "platforms;android-36"
或者,您也可以传递一个指定了所有软件包的文本文件:
sdkmanager --package_file=package_file [options]
package_file 参数指定了文本文件所在的位置,该文件中的每一行都代表一个要安装的软件包的 SDK 样式路径(不带引号)。
如需卸载,请添加 --uninstall 标记:
sdkmanager --uninstall packages [options] sdkmanager --uninstall --package_file=package_file [options]
如需安装 CMake 或 NDK,请使用以下语法:
sdkmanager --install ["ndk;major.minor.build[suffix]" | "cmake;major.minor.micro.build"] [--channel=channel_id] // NDK channels: 0 (stable), 1 (beta), or 3 (canary)
例如,使用以下命令安装指定 NDK 版本(无论其当前位于哪个渠道):
sdkmanager --install "ndk;21.3.6528147" --channel=3 // Install the NDK from the canary channel (or below) sdkmanager --install "cmake;10.24988404" // Install a specific version of CMake
更新所有已安装的软件包
如需更新所有已安装的软件包,请使用以下语法:
sdkmanager --update [options]
接受许可
您必须为已安装的每个软件包接受必要的许可。 当您通过 Android Studio 安装软件包时,就需要在安装过程中完成此步骤。
如果您未安装 Android Studio,或者它适用于 CI 服务器或其他未安装 GUI 的无头 Linux 设备,请在命令行中运行以下命令:
sdkmanager --licenses
系统会提示您接受所有尚未接受的许可。
选项
下表列出了上一部分中所列命令的可用选项:
| 选项 | 说明 |
|---|---|
--sdk_root=path
|
使用指定的 SDK 路径,而不是包含此工具的 SDK。 |
--channel=channel_id
|
纳入到 channel_id(含)的渠道中的软件包。可用的渠道包括:
|
--include_obsolete
|
在列出或更新软件包时纳入已过时的软件包。
仅适用于 --list 和 --update。
|
--no_https
|
强制所有连接使用 HTTP 而不是 HTTPS。 |
--newer
|
使用 --list 时,仅显示新的或可更新的软件包。
|
--verbose
|
详细输出模式。该模式会输出错误、警告和参考性消息。 |
--proxy={http | socks}
|
通过给定类型的代理建立连接:用 http 指定高层级协议(如 HTTP 或 FTP)的代理,或用 socks 指定 SOCKS(V4 或 V5)代理。
|
--proxy_host={IP_address | DNS_address}
|
要使用的代理的 IP 或 DNS 地址。 |
--proxy_port=port_number
|
要连接到的代理端口号。 |