sdkmanager

sdkmanager 是一項指令列工具,可用於查看、安裝 更新及解除安裝 Android SDK 的套件使用 Android 裝置 Studio 之後,您不需要使用這項工具,您也可以管理 來自 IDE 的 SDK 套件

sdkmanager 工具是在 Android SDK 指令列工具套件。 如要使用 SDK Manager 安裝某個版本的指令列工具, 步驟如下:

  1. 下載最新的「僅限指令列工具」 請前往 Android Studio 下載頁面下載套件 解壓縮套件。
  2. 將解壓縮後的 cmdline-tools 目錄移至新目錄 例如 android_sdk這個新目錄就是 Android SDK 目錄。
  3. 在解壓縮的 cmdline-tools 目錄中建立 子目錄,名為 latest
  4. 移動原始的 cmdline-tools 目錄內容,包括 lib 目錄、bin 目錄 NOTICE.txt 檔案和 source.properties 檔案 新建立的 latest 目錄現在您可以使用指令列 運用這個位置的工具
  5. (選用) 如要安裝舊版指令列工具,請執行 以下指令:

    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。例如,指定要列出的初期測試版本 來自所有管道的套裝方案

安裝套件

如要安裝套件,請使用以下語法:

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 的無頭 Linux 裝置, 執行下列指令:

sdkmanager --licenses

這項指令會提示您接受尚未接受的任何授權。

選項

下表羅列了上一節列出的可用指令選項:

選項 說明
--sdk_root=path 使用指定的 SDK 路徑,而非包含這項工具的 SDK。
--channel=channel_id 納入 channel_id 以下 (含) 發布版本中的套件。可用 管道包括:

0 (穩定版)、1 (Beta 版)、2 (開發人員版)、 和 3 (Canary 版)。

--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 連線用的代理通訊埠編號。