sdkmanager
是一項指令列工具,可用於檢視、安裝、更新及解除安裝 Android SDK 的套件。如果您使用的是 Android Studio,您不需要使用這項工具,可以改為透過 IDE 管理 SDK 套件。
sdkmanager
工具隨附於 Android SDK 指令列工具套件中。如要使用 SDK Manager 安裝某個版本的指令列工具,請按照下列步驟操作:
- 請前往 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
以下 (含) 的發布版本納入套件。例如,指定測試管道來列出來自所有管道的套件。
安裝套件
如要安裝套件,請使用以下語法:
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,或是將其用於持續整合 (CI) 伺服器或其他無頭 Linux 裝置 (未安裝 GUI),請透過指令列執行下列指令:
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
|
連線用的代理通訊埠編號。 |