GoogleはAndroid OSのシェアを定期的に発表していたのですが、プロジェクト作成時のMinimum SDKの設定で
「Your app will run on <1% of devices.」
という表示などから類推することは可能です。
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/? | ?Vanilla Ice Cream |
*Android 10 からお菓子の名前を愛称にしていたのを廃止(復活?)
OSシェアの確認はAndroid プロジェクト作成にて
Minimum SDKの設定をするとシャアが表示されます
ここから計算すると個別のシェアがわかります
2024/07/06 でのシェア
U(UpsideDownCake) | 13.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/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シリーズが必須ですよ(課長よろしく!)
バージョン切り分け
非推奨APIがたくさんあるので、APIのレベルに応じて処理を切り分けないといけないのですが、
例えばLillipop以降とそれ以外で切り分ける場合
1 2 3 4 5 |
if(Build.VERSION.SDK_INT >= 21){ // ... }else{ // ... } |
こんな感じでいきましょうか。
References:
Build.VERSION_CODES | Android Developers
ダッシュボード | Android Developers
Android OS Version History