[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
API 30 Android 11 2020/9 R
API 31 Android 12 2021/10 S
API 32 Android 13 ? ?

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

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

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

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

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







アプリ開発が上達するお勧め

アプリ開発を始めたけどわからないところがあり、誰かに聞きたいけど周りにはそんな人はいない…あるいは、会社で働いていて日中そんなに時間をとれないなど、オンラインのプログラミングスクールがいいでしょう。

TECH ACADEMY
オンライン説明会



Code Camp
現役エンジニアによるオンラインプログラミングスクール【CodeCamp】


直接(ネットで)誰か分かる人に聞いた方が早く解決して、上達も早いと思います。



侍エンジニア塾
侍エンジニア塾 無料体験レッスン


とても簡単なことなのに本やネットの画像だけでは分かりにくいことはあります。実際に質問してピンポイントで教えてもらうと、なんだそんなこと、と言うのがけっこうあります。


シェアする

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

フォローする