sdkmanager

您可以透過指令列工具 sdkmanager 來檢視、安裝、更新及解除安裝屬於 Android SDK 的套件。如果您使用的是 Android Studio,可以由 IDE 來管理 SDK 套件,而不需要使用上述工具。

sdkmanager 工具隨附於 Android SDK 工具套件 (25.2.3 或以上版本) 中。請按照下列步驟安裝:

  1. 前往 Android Studio 下載頁面下載「command line tools only」(僅有指令列工具) 套件。
  2. 解壓縮套件,然後移動到任意目錄內。
  3. 如要安裝最新版 sdkmanager,請在已解壓縮套件的目錄內執行以下指令:

    cmdline-tools/bin/sdkmanager --install "cmdline-tools;latest"
    

    您可能需要使用 --sdk_root 旗標指定安裝目錄,如 android_sdk

  4. 安裝完畢的 sdkmanager 位於 android_sdk/cmdline-tools/latest/bin/

使用方式

您可以使用 sdkmanager 執行下列工作。

列出已安裝及可用套件

sdkmanager --list [options] \
           [--channel=channel_id] // Channels: 0 (stable), 1 (beta), 2 (dev), or 3 (canary)

選擇 channel 項目,來納入最多包含 channel_id 在內一個管道的套件。例如,指定測試管道來列出來自所有管道的套件。

安裝套件

sdkmanager packages [options]

packages 引數是一條 SDK 樣式路徑 (如 --list 指令所示),並用雙引號括住 (例如 "build-tools;30.0.2""platforms;android-28")。您可以傳遞多條套件路徑,但這些路徑必須置於在同一組雙引號中並以空格分開。

以下將舉例說明安裝 API 層級 28 的最新平台工具 (包括 adbfastboot), SDK 工具的方式:

sdkmanager "platform-tools" "platforms;android-28"

或者,您可以傳送一個能指定所有套件的文字檔:

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]

選項

下表列出上述指令的可用選項。

選項 說明
--sdk_root=path 使用指定的 SDK 路徑,而非包含這項工具的 SDK
--channel=channel_id 納入僅限於 channel_id 通道內的套件。可用的通道如下:

0 (穩定版)、1 (Beta 版)、2 (開發版) 和 3 (測試版)。

--include_obsolete 將過時套件納入套件清單或套件更新中。 僅用於 --list--update
--no_https 強制所有連線使用 HTTP 而非 HTTPS。
--verbose 以詳細模式輸出。系統會列印出錯誤、警告和一些重要訊息。
--proxy={http | socks} 透過指定類型的代理伺服器進行連線:適用 HTTP 或 FTP 等高階通訊協定的 http,或用於 SOCKS (V4 或 V5) 代理伺服器的 socks
--proxy_host={IP_address | DNS_address} 使用的代理 IP 或 DNS 位址。
--proxy_port=port_number 連線用的代理通訊埠編號。