minSdkVersion
とはtargetSdkVersion
、アプリのデバッグに使用しているデバイスに依存しません。
minSdkVersion
ターゲットにしている最小の Android API を Android に伝えるために使用されます。Google Play などの App Store は、この番号を使用して、サポートしているバージョンよりも古いバージョンの Android を実行しているデバイスにアプリが表示されないようにします。よりも低い SDK を搭載したデバイスでサイドローディングを介して誰かがアプリをインストールしようとしてもminSdkVersion
、システムはインストールを実行しません。これは常にマニフェストで宣言する必要があります。ただし、そうしないとデフォルトになります1
。
targetSdkVersion
は、ターゲット バージョンに対してテストしたことをシステムに通知します。システムは、ターゲット バージョンとのアプリの前方互換性を維持するために互換動作を有効にすべきではありません。アプリケーションは古いバージョン ( までminSdkVersion
) でも実行できます。
Android は新しいバージョンごとに進化するため、一部の動作や外観さえも変更される可能性があります。ただし、プラットフォームの API レベルがアプリのtargetSdkVersion
で宣言されているバージョンよりも高い場合、システムは互換動作を有効にして、アプリが期待どおりに動作し続けることを保証する場合があります。targetSdkVersion
実行しているプラットフォームの API レベルに一致するように指定することで、このような互換動作を無効にすることができます。たとえば、この値を「11」以上に設定すると、システムは、Android 3.0 以降で実行しているときにアプリに新しいデフォルト テーマ (Holo) を適用できます。また、より大きな画面で実行しているときに画面互換モードを無効にできます (API のサポートのため)。レベル 11 は、より大きな画面を暗黙的にサポートします)。
この属性に設定した値に基づいて、システムが有効にする可能性がある多くの互換性動作があります。これらの動作のいくつかは、Build.VERSION_CODESリファレンスの対応するプラットフォーム バージョンによって説明されています。
各 Android リリースに合わせてアプリケーションを維持するには、この属性の値を増やして最新の API レベルに合わせてから、対応するプラットフォーム バージョンでアプリケーションを徹底的にテストする必要があります。