AndroidアプリのAPIレベルはどれを設定すべきか?

Android Robot

Androidアプリをリリースする時に、APIレベルの指定に毎回迷うので、まとめておきます。

APIレベルの指定個所

AndroidAPIレベルの設定については以下のページに記述があります。

<uses-sdk> | Android Developers

指定箇所が3つあるのでまとめておきます。

なお、これは僕の理解なので、正確な情報は元ページを参照してください。

minSdkVersion
  • アプリを実行するのに必要な最低APIレベル。
  • システムのAPIレベルがこれよりも低い場合、アプリをインストールできない。
  • 指定しないと全システムが対象になる。ただし、実際のコードが対応していないと、実行時にクラッシュする可能性がある。
targetSdkVersion
  • アプリが対象とするAPIレベル。
  • 指定しないと、minSdkVersionと同一になる。
  • システムのAPIレベルがこれよりも大きい場合、互換動作となる。

※主にテストするデバイスに合わせるのが良さそう。

maxSdkVersion
  • Android 2.0.1 以前用のため、設定してはいけない。

どのAPIレベルを指定すべきか?

AndroidバージョンとAPIレベルの対応関係は、以下のページに対応表があります:

Platform Version - API Level table

また、Googleが公開しているAndroidのバージョン別シェアの情報が以下のページにあります:

Platform Versions

現時点(2014年6月)だと、Gingerbread (Android 2.3) のシェアもある程度残っているので、他の理由がなければ、サポートするのはこれ以降になるでしょう。(minSdkVersion=9

targetSdkVersion はメインで開発に使っているデバイスのAndroidバージョンに対応するAPIレベルで良いと思います。

なお、Google Play での「Android要件」の表示は、ベータ版では正しく反映されないようで、minSdkVersion=9 を指定すると「Android 2.3 以上」となるはずですが、「Android 1.6 以上」となりました。

製品版では正しく表示されるようです。


はじめてのAndroidアプリ開発―Android4対応版 (TECHNICAL MASTER)

はじめてのAndroidアプリ開発―Android4対応版 (TECHNICAL MASTER)

* The Android robot is reproduced or modified from work created and shared by Google and used according to terms described in the Creative Commons 3.0 Attribution License.