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 以下のチャンネルからのパッケージを含めることができます。たとえば、Canary チャンネルを指定すると、すべてのチャンネルのパッケージのリストを表示できます。

パッケージをインストールする

パッケージをインストールするには、次の構文を使用します。

sdkmanager packages [options]

packages 引数は、--list コマンドで表示されるような SDK 形式のパスを引用符で囲ったものです。たとえば、"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 以下のチャンネルのパッケージを含めます。指定できるチャンネルは次のとおりです。

0(安定)、1(ベータ版)、2(開発)、3(Canary)。

--include_obsolete 廃止されたパッケージをパッケージ リストまたはパッケージの更新の対象とします。 --list--update でのみ使用します。
--no_https HTTPS ではなく HTTP を使用することをすべての接続に強制します。
--newer --list では、新しいパッケージまたは更新可能なパッケージのみを表示します。
--verbose 詳細出力モード。エラー、警告、情報の各メッセージが出力されます。
--proxy={http | socks} 指定したタイプのプロキシ経由で接続します。タイプは、http(HTTP、FTP などのハイレベルのプロトコル用)または socks(SOCKS V4 または SOCKS V5 のプロキシ用)です。
--proxy_host={IP_address | DNS_address} 使用するプロキシの IP アドレスまたは DNS アドレス。
--proxy_port=port_number 接続先のプロキシポート番号。