FeeeeeLog

Android API レベルとバージョンの対応関係と使い方

    2015/12/21

android-api-level バージョンが増えるたびに随時更新予定です。
Androidの各バージョンとAPI レベルの対応を表で見やすくしています。
また、それぞれのバージョンがタブレット用であるなどの情報も少しだけ記載しています。
それでは、API レベルとバージョンの対応関係一覧をどうぞ!

スポンサーリンク

Android API レベルとバージョン対応一覧

コードネーム API
レベル
Android
バージョン
リリース Build.VERSION_CODES 補足
Q 10
P 28 9 P
Oreo 27 8.1 2017/12/05 O_MR1
26 8.0 2017/08/21 O
Nougat 25 7.1.1 2016/12/05 N_MR1
7.1 2016/10/04
24 7.0 2016/08/23 N
Marshmallow 23 6.0.1 2015/12/07 M
 6.0 2015/10/05
Lollipop 22 5.1.1 2015/05/09 LOLLIPOP_MR1
5.1 2015/04/21
21 5.0.2 2014/12/19 LOLLIPOP
5.0.1 2014/12/02
5.0 2014/11/12
KitKat 20 4.4W.2 2014/10/21 KITKAT_WATCH Wear用
4.4W.1 2014/09/06
4.4W 2014/09/25
19 4.4.4 2014/06/19 KITKAT
4.4.3 2014/06/02
4.4.2 2013/12/09
4.4.1 2013/12/05
4.4 2013/10/31
Jelly Bean 18 4.3.1 2013/10/03 JELLY_BEAN_MR2
4.3 2013/07/24
17 4.2.2 2013/02/11 JELLY_BEAN_MR1
4.2.1 2012/11/27
4.2 2012/11/13
16 4.1.2 2012/10/09 JELLY_BEAN
4.1.1 2012/07/11
4.1 2012/07/09
Ice Cream
Sandwich
15 4.0.4 2012/03/29 ICE_CREAM_SANDWICH_MR1 2.3と3.xを1つに統合。スマートフォン用の2.3とタブレット用の3.xで二分化されたものまとめた
4.0.3 2011/12/16
14 4.0.2 2011/11/28 ICE_CREAM_SANDWICH
4.0.1 2011/10/21
4.0 2011/10/18
Honeycomb 13 3.2.6
・・・
3.2
2012/02
・・・
2011/06/15
HONEYCOMB_MR2 タブレット用
12 3.1 2011/03/10 HONEYCOMB_MR1
11 3.0 2011/02/22 HONEYCOMB
Gingerbread 10 2.3.7
・・・
2.3.3
2011/09/21
・・・
2011/02/09
GINGERBREAD_MR1 スマートフォン用
9 2.3.2
2.3.1
2.3
2011/02
2010/12
2010/12/06
GINGERBREAD
Froyo 8 2.2.3
・・・
2.2
2011/11/21
・・・
2011/03/20
FROYO
Eclair 7 2.1 2010/01/12 ECLAIR_MR1
6 2.0.1 2009/12/03 ECLAIR_0_1
5 2.0 2009/10/26 ECLAIR
Donut 4 1.6 2009/09/15 DONUT
Cupcake 3 1.5 2009/04/27 CUPCAKE
Banana Bread 2 1.1 2009/02/09 BASE_1_1
Apple Pie 1 1.0 2008/09/23 BASE

参考:ja.wikipedia.org/wiki/Androidのバージョン履歴
参考:en.wikipedia.org/wiki/Android_version_history

Android API レベルとバージョン対応一覧の見出しを解説

コードネーム

Androidの開発時の名称のことですが、製品名でもあります。
ある方が分かりやすいので表に記載しています。

API レベルとは

APIレベルとは、Androidプラットフォームのバージョンによって提供されるフレームワークAPIリビジョンを特定するユニークな整数です。
簡単に言えば、Androidバージョンに対応したAPIレベルがあるということです。
詳細は「APIレベル」を参照してください。

フレームワークAPIとは

フレームワークAPIは次のものからなります。

  • パッケージとクラスのコアセット(Java)
  • Manifestファイルを宣言するXML要素と属性
  • リソースにアクセスするXML要素と属性
  • インテント
  • アプリケーションがリクエストすることができるパーミッション

Build.VERSION_CODES

プログラム中でバージョンを判定してロジックを分けるときに使います。
詳細は「Build.VERSION_CODES」を参照してください。
ソースコードの記載例は後述します。

API レベルの使い方

APIレベルは、アプリのユーザーが使用可能なAndroidのバージョンを指定したり、アプリのソースコード中でバージョン別のロジックを分けるなどの用途で使用します。

ソースコードでバージョンを判断する

アプリのバージョンと対応するAPIレベルを調べます。例えばバージョン3.0の場合、対応するAPIレベルは11であり、ソースコード中の定数Build.VERSION_CODES.HONEYCOMBです。バージョン3.0以上で分岐したい場合には次のように記述します。

アプリの対象バージョンを指定する

アプリをリリースするためには、アプリを使用可能なOSのバージョンの範囲を指定する必要があります。
例えばAndroid 5.0~8.0 までを対象にするアプリにすると決めるということです。
詳しくは「アプリのバージョニング」を参照してください。

アプリのbuild.gradleとAndroidManifest.xmlの位置

関連するファイルはアプリのbuild.gradleとAndroidManifest.xmlです。Android StudioのProjectでファイルの位置を示します。

Android Studio > Project > アプリのbuild.gradle & AndroidManifest.xml

Android Studio > Project > アプリのbuild.gradle & AndroidManifest.xml

アプリのbuild.gradleに最小バージョンと対象バージョンを指定

具体的には、アプリのbuild.gradleファイルにアプリを使用可能なOSのバージョンを指定することでそのバージョンだけを対象とした製品をリリースします。
次のminSkdVersionとtargetSdkVersionがバージョンの指定であり、その数値にはAPIレベルの値を記載します。

このアプリのbuild.gradleでminSdkVersionとtargetSdkVersionを記述することで、ビルド時にAndroidManifest.xmlにminSdkVersionとtargetSdkVersionを指定するのと同じ意味になります。

AndroidManifest.xmlのバージョンとAPIレベル (xxx Sdk Version)

AndroidManifest.xmlファイルのルート要素<manifest>の子要素<uses-sdk>の属性にAPIレベルを指定します。先程説明したとおり、こちらには何もせってしなくてもアプリのbuild.gradleに指定していれば問題ありません。

<uses-sdk>の属性 説明
android:minSdkVersion アプリが実行できる最小バージョンです。
これより小さいとインストールできません。
属性省略時のデフォルトは”1″です。
android:targetSdkVersion アプリが実行するように設計されたバージョンです。
できる限り新しいバージョンを指定すべきです。
minSdkVersion以上の値を設定します。
属性省略時はminSdkVersionの値となります。
android:maxSdkVersion 非推奨の属性です。
アプリが実行できる最大バージョンです。
簡単に言えばAndroid2.0.1以上では属性値は無効です。

AndroidManifest.xmlに最小sdkバージョンを記述する

次のようにAndroidManifest.xmlの<uses-sdk>要素の属性に指定します。

API レベルの選択について考える

API レベルについての理解は深まったと思います。
それでは実際にどのAPI レベルを選択すべきかについて考えます。