SDK Platform:概要、バージョンとAndroid SDK Manager

著者: IT Sectr 公開日: 2026-02-09 読了時間: 11 分

Android SDK Platformは、オペレーティングシステムの特定バージョン向けのライブラリ、システムイメージ、ツールのセットです。各プラットフォームはAPI Levelに関連付けられており、Android APIクラスを含むandroid.jar、ランタイムコンポーネント、エミュレータが含まれます。Google Developer Documentation、2026年によると、開発者はターゲットOSバージョンに対してコードをコンパイルするためにSDK Platformを使用します。インストールされたプラットフォームがないと、APKをビルドしたりエミュレータでアプリケーションを実行したりすることはできません。SDK Managerはこれらのコンポーネントのダウンロード、更新、削除を管理します。

重要なポイント

  • SDK Platform — 特定のAPI Levelに対応するAndroidバージョン向けのライブラリとツールのセット。
  • API Level — 利用可能なクラスとメソッドを定義するAndroid SDKバージョンの数値識別子。
  • SDK Manager — SDK Platform、Tools、システムイメージをインストール、更新、削除するためのツール。
  • compileSdk — アプリケーションのコンパイルに使用するSDK Platformバージョン。最新の安定版である必要があります。
  • targetSdk — アプリケーションがテストされたAPI Levelであり、ランタイム動作が最適化されるバージョン。

SDK Platformとは

SDK PlatformはAndroid SDKの基本的なコンポーネントであり、特定のAndroidバージョン向けのアプリケーションを開発するためのライブラリとツールの完全なセットを提供します。各プラットフォームはAPI Level(新しいOSリリースとともに増加する整数)で識別されます。例えば、Android 13はAPI Level 33、Android 14はAPI Level 34、Android 15はAPI Level 35に対応します。

Android Studio(IDE)とは異なり、SDK Platformにはコードエディタやデバッガは含まれていません。これはコンパイラとビルドシステムに接続するシステムレイヤーです。開発者がimport android.app.Activityと記述すると、コンパイラは特定のSDK Platformのandroid.jarからこのクラスを取得します。必要なAPI Levelのプラットフォームがインストールされていないと、コードはコンパイルされません。

Googleは各安定版Androidバージョンに対して新しいSDK Platformをリリースします。その歴史はAndroid 1.0(API 1)からAndroid 15(API 35)まで35以上のAPI Levelに及びます。各プラットフォームは下位互換性があります。API Level 21用に書かれたコードはAPI Level 35でも動作しますが、その逆はできません。

バージョンごとに個別のSDK Platformが必要な理由

Androidは急速に進化しており、各バージョンで新しいAPIが追加され、既存の動作が変更され、制限が導入されます。例えば、Android 10(API 29)はScoped Storageを導入し、Android 12(API 31)はSplashScreen APIを、Android 14(API 34)は必須のBroadcastReceiverフラグを導入しました。開発者はこれらの機能を利用するために、現在のプラットフォームに対してアプリケーションをコンパイルする必要があります。

同時に、アプリケーションは古いOSバージョンでも実行できます。そのために、GradleではminSdk(アプリケーションが実行される最小API Level)が指定されます。コードはバージョンチェックと条件付きAPI呼び出しを使用します。このアプローチにより、新機能を失うことなく互換性が確保されます。

AndroidバージョンAPI Levelコードネームリリース年
Android 1231Snow Cone2021
Android 1333Tiramisu2022
Android 1434Upside Down Cake2023
Android 1535Vanilla Ice Cream2024

SDK Platformの構成:主要コンポーネント

SDK Platformは単一のファイルではなく、アプリケーションのコンパイル、ビルド、テストを共に保証するコンポーネントのセットです。主要な要素はandroid.jar — このバージョンに含まれるAndroid APIクラスを含むアーカイブです。このファイルはKotlinまたはJavaコンパイラに接続し、開発者が利用できるクラス、メソッド、アノテーションを決定します。

システムイメージとエミュレータ

各SDK Platformには、Android Virtual Deviceエミュレータ用のSystem Image(オペレーティングシステムイメージ)が含まれています。対応するイメージがないと、エミュレータは必要なAPI Levelの仮想デバイスを起動できません。System Imagesにはいくつかのタイプがあります:Google APIs(Googleサービス付き)、Google Play(Play Store付き)、AOSP(Googleサービスなしの純粋なAndroid)。

ビルドツールとデバッグツール

SDK Platformには、このAPI Levelに最適化されたBuild-ToolsとPlatform-Toolsのバージョンが含まれています。Build-Toolsにはaapt2(Android Asset Packaging Tool)、dx/d8(Dalvik/ARTコンパイラ)、ApkSignerが含まれます。Platform-ToolsはADB(Android Debug Bridge)、fastboot、SQLiteを提供します。これらのツールはSDK Managerを介してSDK Platformとは独立して更新されます。

プラットフォームリソース

各プラットフォームには、標準のAndroidリソース(システムテーマ、スタイル、アニメーション、色、寸法)が含まれています。これらのリソースはコンパイル中に使用されます。開発者が@android:style/Theme.Material.Lightを参照すると、ビルドシステムはSDK Platformのリソースから定義を取得します。これにより、すべてのデバイスでシステムコンポーネントの一貫した外観が保証されます。

コンポーネント説明サイズ(目安)
android.jarコンパイル用Android APIライブラリ50~120 MB
System Imageエミュレータ用OSイメージ600~1500 MB
Build-ToolsAPKおよびAABビルドツール200~400 MB
Platform Resourcesシステムリソース(テーマ、スタイル)30~80 MB
Skinsエミュレータ用デバイスプロファイル10~50 MB

API LevelとSDK Platformバージョン

API LevelはAndroid SDKバージョンの整数識別子です。各Androidリリースは単調増加する1つのAPI Levelに対応します。開発者はbuild.gradleの3つの主要パラメータ(compileSdk、minSdk、targetSdk)でAPI Levelを指定します。これらのパラメータの選択により、利用可能なAPIとシステムがアプリケーションを処理する方法が決まります。

GoogleはminSdkを現在の配布しきい値より低くしないことを推奨しています。Android Studio Distribution Dashboard(2026年)によると、約95%のデバイスがAndroid 8.0(API 26)以上で動作しています。compileSdkは最新の安定版である必要があります。これにより、新しいAPIへのアクセスが可能になり、lintチェックで非推奨メソッドを検出できます。

API Levelの進化:主要な変更点

新しいAPI Levelごとに、Googleは重要な変更を導入します。Android 6.0(API 23)はランタイム権限を追加しました。アプリケーションはインストール時ではなく実行時に権限を要求します。Android 8.0(API 26)は自動入力フォームと通知チャネルを導入しました。Android 12(API 31)はインテントへのアプローチを根本的に変更しました。SplashScreen APIとexported属性によるコンポーネントのエクスポートが登場しました。Android 14(API 34)はBroadcastReceiverのフラグ指定を必須にし、フォアグラウンドサービスに厳格な制限を導入しました。

API Levelの歴史を理解することは、開発者が正しい互換性戦略を選択するのに役立ちます。アプリケーションがcompileSdk 35を使用しているがminSdk 26の場合、コードはBuild.VERSION.SDK_INTによるバージョンチェック後にのみAPI 35のメソッドを呼び出すことができます。このアプローチはバージョンゲート開発と呼ばれ、業界標準です。

AndroidAPI主な革新
6.0 Marshmallow232015ランタイム権限
8.0 Oreo262017通知チャネル、自動入力
10292019Scoped Storage、ダークテーマ
12312021SplashScreen、exported属性
14342023Broadcastフラグ、フォアグラウンドサービス

SDK Manager:インストールと設定

SDK ManagerはAndroid SDKコンポーネントを管理するためのツールです。新しいSDK Platformのインストール、既存の更新、古いものの削除を行います。SDK ManagerはAndroid Studioのグラフィカルインターフェースと、sdkmanagerを介したコマンドラインツールの両方で利用できます。コマンドラインのSDK Managerは、グラフィカルインターフェースがないCI/CDパイプラインでの使用に便利です。

SDK ManagerはプラットフォームをAndroid SDKディレクトリにインストールします。デフォルトの場所は、LinuxとmacOSでは$HOME/Android/Sdk、Windowsでは%LOCALAPPDATA%\Android\Sdkです。platformsディレクトリの中にはandroid-{API Level}という名前のフォルダがあり、それぞれに完全なSDK Platformが含まれています。

sdkmanagerによるSDK Platformのインストール

sdkmanagerコマンドは「platforms;android-{API}」形式のパッケージ識別子を受け入れます。例えば、SDK Platform 35をインストールするコマンドは次のようになります:

bash
# API Level 35用のSDK Platformをインストール
sdkmanager "platforms;android-35"

# 1つのコマンドで複数のプラットフォームをインストール
sdkmanager "platforms;android-34" "platforms;android-33" "platforms;android-31"

# インストール済みプラットフォームの一覧
sdkmanager --list_installed | grep platforms

# 古いプラットフォームを削除
sdkmanager --uninstall "platforms;android-28"

Gradleによる自動インストール

最新のAndroidプロジェクトはGradle Pluginを使用しており、最初のビルド時に自動的にSDK Platformをインストールできます。これを行うには、build.gradleでcompileSdkを指定し、ローカル設定にSDKディレクトリを追加する必要があります。Android Studioはプロジェクトを開く際に不足しているプラットフォームのインストールも提案します。Gradle同期ウィンドウの「Install SDK Platform」ボタンをクリックするだけです。

SDK Managerを介してSDK Platformを定期的に更新することが重要です。プラットフォームとともにBuild-ToolsとPlatform-Toolsも更新され、ビルドパフォーマンスとデバッグの安定性に影響します。Googleは2~3週間ごとにSDKの更新を確認することを推奨しています。特にGoogle Playでアプリケーションの新バージョンを公開する前には重要です。

エミュレータ用システムイメージの設定

特定のAPI Levelでエミュレータを実行するには、同じバージョンのSystem Imageをインストールする必要があります。SDK Managerは異なるアーキテクチャ(x86_64、arm64-v8a)とタイプ(Google APIs、Google Play、AOSP)のイメージをダウンロードできます。イメージのダウンロード後、AVD Managerがそれに基づいて仮想デバイスを作成します。

bash
# API 35用のGoogle APIs付きSystem Imageをインストール
sdkmanager "system-images;android-35;google_apis;x86_64"

# コマンドラインでAVDを作成
avdmanager create avd -n pixel8 -k "system-images;android-35;google_apis;x86_64"

# 作成済みAVDの一覧
avdmanager list avd

GradleのcompileSdk、targetSdk、minSdk

build.gradleの3つのパラメータが、アプリケーションとSDK Platformの連携方法を定義します。compileSdkはコンパイルに使用されるAPI Levelです。このパラメータはコードで利用可能なAndroid APIクラスを指定します。compileSdkは3つの中で最も新しいものである必要があり、ランタイムの動作には影響しません。アプリケーションはコンパイルされますが、デバイスで利用可能なAPIのみを使用します。

minSdkはアプリケーションをインストールできる最小のAPI Levelです。Google PlayはminSdkより低いバージョンのデバイスへのアプリケーションのインストールを許可しません。このパラメータは互換性のしきい値を定義し、ユーザーカバレッジに影響します。minSdkが低いほど多くのデバイスがサポートされますが、チェックなしで使用できる新しいAPIは少なくなります。

targetSdkはアプリケーションがテストされたAPI Levelです。AndroidシステムはtargetSdkを使用して動作変更を適用します。アプリケーションが新しいAPI Levelに更新されていない場合、システムは古いバージョン用の互換モードを有効にします。Google PlayではtargetSdkが一定レベル以上であることが要求されます。2026年時点ではAPI 34(Android 14)です。

Gradle設定例

groovy
android {
    compileSdk 35

    defaultConfig {
        applicationId "com.example.app"
        minSdk 26
        targetSdk 35
        versionCode 1
        versionName "1.0"
    }

    compileOptions {
        sourceCompatibility JavaVersion.VERSION_17
        targetCompatibility JavaVersion.VERSION_17
    }
}

// Android SDKバージョンはSDK Managerを介してインストールする必要があります
// sdkmanager "platforms;android-35"

compileSdk、minSdk、targetSdkの選び方

選択戦略はプロジェクトの目標によって異なります。新しいアプリケーションの場合:compileSdk — 最新の安定版(2026年初頭時点で35)、minSdk — API 26(Android 8.0、デバイスの95%をカバー)、targetSdk — 最新の安定版。既存のアプリケーションを更新する場合:compileSdkは直ちに引き上げ、targetSdk — すべての動作変更のテスト後、minSdk — 古いデバイスのサポートを終了する必要がある場合のみ。

Googleは新しいAndroidバージョンのリリースから1年以内にtargetSdkを更新することを要求しています。この要件を満たさないアプリケーションはGoogle Playで更新を公開できません。期限を追跡するには、公式のAndroid OSアップデートカレンダーを使用してください。

パラメータ目的推奨
compileSdkコンパイル用APIバージョン最新の安定版
minSdk最小サポートバージョン95%カバレッジのためにAPI 26
targetSdk動作変更用バージョン最新の安定版+テスト

コードでのSDK Platform使用例

異なるAndroidバージョン向けに開発する場合、APIの利用可能性を考慮する必要があります。アプリケーションがcompileSdk 35を使用しているがAPI 31のデバイスで実行される場合、API 34で追加されたメソッドを呼び出すとNoSuchMethodErrorまたはAbstractMethodErrorが発生します。新しいAPIを安全に呼び出すために、Build.VERSION.SDK_INTを使用したバージョンチェックが用いられます。

ランタイムでのAPI Levelチェック

kotlin
class FeatureChecker {
    fun registerNotificationChannel(context: Context) {
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
            // 通知チャネルはAPI 26から利用可能
            val channel = NotificationChannel(
                "updates",
                "更新",
                NotificationManager.IMPORTANCE_DEFAULT
            )
            val manager = context.getSystemService(NotificationManager::class.java)
            manager.createNotificationChannel(channel)
        }
    }
}

@RequiresApiを使用した新しいAPIの利用

特定のバージョンでのみ呼び出されるメソッドには、@RequiresApiアノテーションを使用します。これにより、lintチェックに対してメソッドが安全であることを伝え、警告を無効にします。SDK_INTチェックと組み合わせることで、アノテーションはコードをよりクリーンにし、レビュアーにとって理解しやすくします。

kotlin
@RequiresApi(Build.VERSION_CODES.UPSIDE_DOWN_CAKE)
fun scheduleExactAlarm(manager: AlarmManager, time: Long) {
    // API 34:SCHEDULE_EXACT_ALARMフラグ付きscheduleExact
    if (manager.canScheduleExactAlarms()) {
        manager.setExact(AlarmManager.RTC_WAKEUP, time, pendingIntent)
    } else {
        // SCHEDULE_EXACT_ALARM権限をリクエスト
        val intent = Intent(Settings.ACTION_REQUEST_SCHEDULE_EXACT_ALARM)
        context.startActivity(intent)
    }
}

fun safeScheduleAlarm(context: Context, triggerTime: Long) {
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.UPSIDE_DOWN_CAKE) {
        scheduleExactAlarm(getAlarmManager(context), triggerTime)
    } else {
        // 権限チェックなしの古いsetExactメソッド
        getAlarmManager(context).setExact(AlarmManager.RTC_WAKEUP, triggerTime, pendingIntent)
    }
}

インストールされているSDK Platformの確認

開発者のデバイスやCIにインストールされているSDK Platformのバージョンを確認する必要がある場合があります。これはADBを介して、またはアプリケーションコードでプログラム的に行うことができます。デバイスのAPI Levelを知ることは、バージョン固有の動作をテストする際に役立ちます。

kotlin
fun logDeviceInfo() {
    with (Build.VERSION) {
        Log.d("SDK_Demo", "SDK_INT: $SDK_INT")
        Log.d("SDK_Demo", "RELEASE: $RELEASE")
        Log.d("SDK_Demo", "CODENAME: $CODENAME")
        Log.d("SDK_Demo", "PREVIEW_SDK_INT: $PREVIEW_SDK_INT")
    }
    // 出力:SDK_INT: 35、RELEASE: 15、CODENAME: REL
}

よくある質問

SDK PlatformとAndroid Studioの違いは何ですか?

Android StudioはIDEであり、SDK Platformはコンパイルのためのライブラリとツールのセットです。StudioはアプリケーションをビルドするためにSDK Platformを使用しますが、プラットフォームはSDK Managerを介して個別にダウンロードされ、Studioのバージョンとは独立して更新できます。

いくつのSDK Platformをインストールすべきですか?

通常、3つのバージョンで十分です:最新版(compileSdk)、最小版(minSdk)、テスト用の中間版です。SDK Managerを使用すると、必要に応じてプラットフォームを簡単に追加および削除できます。平均して、開発者は作業マシンに3~5のプラットフォームを保持しています。

新しいAPIに古いSDK Platformを使用できますか?

いいえ。各SDK PlatformにはそのバージョンのAPIのみが含まれています。API 35のメソッドを呼び出すには、android-35プラットフォームが必要です。古いプラットフォームがインストールされた状態で新しいcompileSdkを指定すると、コンパイルエラーが発生します。

SDK Platformの更新とは何ですか?

Googleは各バージョンに対してSDK Platformの更新(バグ修正、新しいAPI、パフォーマンス改善)をリリースします。SDK Managerは利用可能な更新を通知します。安定したビルドのためには、プラットフォームの最新リビジョンをインストールすることをお勧めします。

SDK Platformはディスク上のどこに保存されますか?

デフォルトでは、各SDK PlatformはAndroid/Sdk/platforms/android-{API}ディレクトリに200~800 MBの容量を占有します。フォルダ内には、android.jar、リソースを含むdataフォルダ、エミュレータとビルドシステムの設定ファイルが含まれています。

まとめ

  • SDK Platform — 特定のAPI Levelに対応する特定のAndroidバージョン向けのライブラリとツールのセット。
  • API Level — 利用可能なクラス、メソッド、システム動作を定義する数値識別子。
  • SDK Manager — GUIまたはコマンドラインを介してSDK Platform、System Images、Build-Toolsをインストールおよび更新するためのツール。
  • build.gradleのcompileSdk、minSdk、targetSdkパラメータが、コンパイルと互換性のためのプラットフォームバージョンを管理します。
  • 古いデバイスで新しいAPIを呼び出すには、Build.VERSION.SDK_INTチェックと@RequiresApiアノテーションを使用します。
  • Google Playで公開するには、Googleは新しいAndroidバージョンのリリースから1年以内にtargetSdkを更新することを要求しています。
  • SDK Managerを介した定期的なSDK Platformの更新により、新しいAPI、修正、パフォーマンス改善へのアクセスが確保されます。

ターンキー方式のモバイルアプリケーションを開発します

IT Sectrは2017年からスタートアップや企業向けにiOS・Androidアプリケーションを開発しています。私たちがご相談に乗り、最適なソリューションをご提案します。

プロジェクトについて相談

こちらもお読みください