sdkmanager
是一个命令行工具,可用于查看、安装、更新和卸载 Android SDK 的软件包。如果您使用的是 Android Studio,则无需使用此工具,而是可以 从 IDE 管理您的 SDK 软件包。
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 参数是 SDK 样式路径,如 --list
命令所示,用引号括起来。例如,"build-tools;34.0.0"
或 "platforms;android-33"
。
您可以传递多个软件包路径,路径之间用空格分隔,但每个路径都必须用自己的引号括起来。例如,以下是如何安装最新的平台工具和 API 级别 33 的 SDK 工具
sdkmanager "platform-tools" "platforms;android-33"
或者,您可以传递一个指定所有软件包的文本文件
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,或者它是针对没有安装 GUI 的 CI 服务器或其他无头 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 或 FTP 等高级协议,使用 http ;对于 SOCKS(V4 或 V5)代理,使用 socks 。 |
--proxy_host={IP_address | DNS_address}
|
要使用的代理的 IP 或 DNS 地址。 |
--proxy_port=port_number
|
要连接到的代理端口号。 |