[Android] API レベルと OSプラットフォーム

GoogleはAndroid OSのシェアを定期的に発表していたのですが、プロジェクト作成時のMinimum SDKの設定で

「Your app will run on <1% of devices.」

という表示などから類推することは可能です。

1x1.trans - [Android]  API レベルと OSプラットフォーム




Platform と API Level

 

Androidはまだまだ古い機種もあるのでまともに対応するのが大変です、ただ世界のシェアなので日本はどうかはまた別の話かもしれません。

つまり古いOS搭載機種は安いので使い続けている国もあるのかも
 

API Level Platform Release Code Name
API 1 Android 1.0 2008/9 BASE
API 2 Android 1.1 2009/2 BASE_1_1
API 3 Android 1.5 2009/4 CUPCAKE
API 4 Android 1.6 2009/9 DONUT
API 5 Android 2.0 2009/10 ECLAIR
API 6 Android 2.0.1 2009/12 ECLAIR_0_1
API 7 Android 2.1.x 2010/1 ECLAIR_MR1
API 8 Android 2.2.x 2010/6~2011/11 FROYO
API 9 Android 2.3~2.3.2 2010/11~2011/1 GINGERBREAD
API 10 Android 2.3.3~2.3.7 2011/2~2011/9 GINGERBREAD_MR1
API 11 Android 3.0 2011/2 HONEYCOMB
API 12 Android 3.1 2011/5 HONEYCOMB_MR1
API 13 Android 3.2.x 2011/7 HONEYCOMB_MR2
API 14 Android 4.0~4.0.2 2011/10 ICE_CREAM_SANDWICH
API 15 Android 4.0.3 2011/12 ICE_CREAM_SANDWICH_MR1
API 16 Android 4.1.x 2012/7 JELLY_BEAN
API 17 Android 4.2.x 2012/12 JELLY_BEAN_MR1
API 18 Android 4.3.x 2013/7 JELLY_BEAN_MR2
API 19 Android 4.4.x 2013/9~2014/6 KITKAT
API 20 Android 4.4W.x 2014/6 [Android Wear]
API 21 Android 5.0.x 2014/10 Lollipop
API 22 Android 5.1.x 2015/3 Lollipop_MR1
API 23 Android 6.0.x 2015/10 Marshmallow
API 24 Android 7.0 2016/8 Nougat
API 25 Android 7.1.x 2016/8~2017/4 Nougat
API 26 Android 8.0 2017/8 Oreo
API 27 Android 8.1 2017/12 Oreo and Go Edition
API 28 Android 9.0 2018/8 Pie
API 29 Android 10 2019/9 Q(Quince Tart)
API 30 Android 11 2020/9 R(Red Velvet Cake)
API 31 Android 12 2021/10 S(Snow Cone)
API 32 Android 12L 2022/3 S_V2(Snow Cone v2)
API 33 Android 13 2022/8 T(Tiramisu)
API 34 Android 14 2023/11 U(Upside Down Cake)
API 35 Android 15 2024/? ?

*Android 10 からお菓子の名前を愛称にしていたのを廃止(復活?)
 

OSシェアの確認はAndroid プロジェクト作成にて
Minimum SDKの設定をするとシャアが表示されます

1x1.trans - [Android]  API レベルと OSプラットフォーム

ここから計算すると個別のシェアがわかります

2023/12/02 でのシェア

U(UpsideDownCake) 1.0 %
T(Tiramisu) 21.4 %
Sv2 0.0 %
S(Snow Cone) 15.8 %
R(Red Velvet Cake) 21.6 %
Q(Quince Tart) 16.1 %
Pie 10.5 %
Oreo 5.4 %
Others 8.2 %


2023/02/20 でのシェア

Tiramisu 5.2 %
Sv2 0 %
S 18.9 %
R 24.4 %
Q 19.5 %
Pie 13.2 %
Oreo 9.5 %
Nougat 3.7 %
Marshmallow 2.8 %
Others 2.8 %


2022/03/30 でのシェア

S 1 %
R 23.3 %
Q 26.5 %
Pie 18.2 %
Oreo 13.7 %
Nougat 6.3 %
Marshmallow 5.1 %
Lollipop 3.9 %
Others 2.0 %


2020/10/17 でのシェア

R 1 %
Q 7.2 %
Pie 31.3 %
Oreo 21.3 %
Nougat 12.9 %
Marshmallow 11.2 %
Lollipop 9.2 %
Others 5.9 %


2019/5/7 までの7日間でのシェア

Pie 10.4%
Oreo 28.3%
Nougat 19.2%
Marshmallow 16.9%
Lollipop 14.5%
Others 10.7%


2018/09/12でのシェア

Pie 0%
Oreo 14.6%
Nougat 30.8%
Marshmallow 22.7%
Lollipop 19.2%
Others 12.7%

Pieは出始めなので未だ0%です。
バージョンごとの切り分けや機能テストを考えるとなるべく対応レベルの数は少なめにしたいところですが、Lollipop以上で87.3%です。
Marshmallow以上では68.1%でほぼ2/3
実際にリリースする時期にはこの割合も変わるでしょうけれど


 
新しいOSの検証には
GoogleのPixelシリーズが必須ですよ(課長よろしく!)
 

android device 00 100x100 - [Android]  API レベルと OSプラットフォーム
Androidは端末によってはOSのアップデートが無い事が多いため、最新機能の確認はどうしてもGoogleのPixelを入手する必要がありま...

 

バージョン切り分け

 
非推奨APIがたくさんあるので、APIのレベルに応じて処理を切り分けないといけないのですが、

例えばLillipop以降とそれ以外で切り分ける場合


こんな感じでいきましょうか。
 
 
References:
Build.VERSION_CODES | Android Developers
ダッシュボード | Android Developers
Android OS Version History

シェアする

  • このエントリーをはてなブックマークに追加

フォローする