Android SDK: sdkmanager 命令行工具的使用(查看、安装、更新、卸载软件包)
阅读原文时间:2021年04月20日阅读:1

本文链接: https://blog.csdn.net/xietansheng/article/details/85092056

sdkmanager命令行工具在 Android SDK Tools(25.2.3+版本)包中提供,可以查看、安装、更新、卸载 Android SDK 的软件包。

sdkmanager命令在 SDK 中的位置: {Android_SDK}/tools/bin/

sdkmanager 官网介绍: https://developer.android.google.cn/studio/command-line/sdkmanager

1. sdkmanager 语法格式

Usage: 
  sdkmanager --help
  sdkmanager [--uninstall] [<common args>] [--package_file=<file>] [<packages>...]
  sdkmanager --list [<common args>]
  sdkmanager --update [<common args>]
  sdkmanager --licenses [<common args>]
  sdkmanager --version

2. 查看 已安装的包 和 有效的包

查看命令:

sdkmanager --list       // 列出所有 已安装的包、有效的包 和 可以更新包

命令示例:

/*
 * 输如 "sdkmanager --list" 命令, 结果大致如下所示,
 * 先展示已安装的包列表, 再展示所有的有效包列表(按 Path 名称排序)
 * 内容非常多, 可以通过 | 管道过滤显示。
 */
xiets@ubuntu:~/android-sdk/tools/bin$ ./sdkmanager --list
Installed packages:=====================] 100% Computing updates...
  Path                 | Version | Description                | Location
  -------              | ------- | -------                    | -------
  platform-tools       | 28.0.1  | Android SDK Platform-Tools | platform-tools/
  platforms;android-28 | 6       | Android SDK Platform 28    | platforms/android-28/
  tools                | 26.1.1  | Android SDK Tools 26.1.1   | tools/

Available Packages:
  Path                                      | Version | Description
  -------                                   | ------- | ------- 
  build-tools;28.0.3                        | 28.0.3  | Android SDK Build-Tools 28.0.3
  docs                                      | 1       | Documentation for Android SDK
  emulator                                  | 28.0.20 | Android Emulator
  platform-tools                            | 28.0.1  | Android SDK Platform-Tools
  platforms;android-28                      | 6       | Android SDK Platform 28
  sources;android-28                        | 1       | Sources for Android 28
  system-images;android-28;google_apis;x86  | 7       | Google APIs Intel x86 Atom System Image
  tools                                     | 26.1.1  | Android SDK Tools
  ...

Available Updates:
  ID         | Installed    | Available   
  -------    | -------      | -------     
  emulator   | 28.0.22      | 28.0.23     
  ndk-bundle | 19.0.5232133 | 19.1.5304403

3. 安装 软件包

安装命令:

sdkmanager <packages>

其中packages参数为软件包的Path名称,即通过sdkmanager --list命令查看的列表中的Path名称,packages参数 必需要使用引号引起来,可同时添加多个packages参数同时安装多个包(多个包之间用空格隔开,并各自使用引号引起来)。

命令示例:

// 安装平台工具包(adb 和 fastboot 命令的包)
sdkmanager "platform-tools"

// 同时安装多个包
sdkmanager "platform-tools" "build-tools;28.0.3" "platforms;android-28"

4. 更新 已安装的包

更新命令:

sdkmanager --update         // 更新所有已安装的软件包

5. 卸载 已安装的包

卸载命令:

sdkmanager --uninstall <packages>

命令示例:

// 卸载单个软件包
sdkmanager --uninstall "build-tools;28.0.0"

// 同时卸载多个包
sdkmanager --uninstall "build-tools;28.0.0" "platforms;android-26"

6. [Options] 额外参数

上述命令均可添加若干个额外的可用选项参数:

--sdk_root=<path>       // 使用指定的 SDK 路径, 而不是当前 sdkmanager 命令
                        // 的 tools 包所在的 SDK 路径

--channel=<channel_id>  // 包含软件包的更新渠道, channel_id: 0 (Stable), 
                        // 1 (Beta), 2 (Dev), 3 (Canary)

--include_obsolete      // 包含过时的软件包, 只对 --list 和 --update 命令有效
--no_https              // 所有链接强制使用 HTTP, 而不是 HTTPS
--verbose               // 详细输出模式, 输出 Error, Warn, Info 级别的消息

--proxy=<http|socks>                        // 指定代理的 协议
--proxy_host=<IP_address|DNS_address>       // 指定代理的 IP地址 或 DNS地址
--proxy_port=<port_number>                  // 指定代理的 端口号

命令格式:

sdkmanager [--list|--update|--uninstall] [packages] [options]

命令示例:

// 列出所有已安装和有效的包, 并且包含过时的包, 并且详细输出日志
sdkmanager --list --include_obsolete --verbose

7. 跨平台安装 软件包

如果你希望在当前系统平台下载安装其他系统平台的 Android SDK 软件包,可以设置一个REPO_OS_OVERRIDE环境变量,指定需要下载的系统平台("windows", "macosx", or "linux")对应的软件包。

例如在macosx系统上,下载安装windows系统 Android SDK 对应的platform-tools软件包,命令如下:

# 先临时设置需要下载的平台的环境变量
export REPO_OS_OVERRIDE="windows"

# 下载 Windows 系统 Android SDK 对应的 platform-tools 软件包
# 跨平台下载需要使用 --sdk_root 指定下载保存的目录(避免和当前系统的 SDK 软件包混淆)
sdkmanager "platform-tools" --sdk_root=/Users/<UserName>/android-win

下载完成后查看,可以看到命令文件均是 Windows 系统的 exe 文件: