Android のバージョンを表す場合,
相手によって言い方を変えなければなりません.
「Android 4.4 はー」
「ロリポップってー」
「minSdk は 19 でー」
「Android M はー」
特に,
会議などでバージョン別のユーザの割合を話しているときには,
営業からプログラマまで言い方がバラバラでいきなり
「ジンジャーブレッドまではもう切り捨ててもいいんじゃね?」
といわれてもすぐにピンとこなかったりします.
いくつかオフィシャルに公開されている一般的な名称の一覧があります.
Codenames, Tags, and Build Numbers | Android Open Source Project
また, システムの内部的には, Build.VERSION_CODES とよばれる名称が, APIレベルという整数を表します.
Build.VERSION_CODES | Android Developers
いちいちめんどくさいのでスクリプトにしておきます.
#!/usr/local/bin/php
<?php
$versions = '
LV VERSION_CODE VERSION CODE_NAME
1 BASE 1 (no code name)
2 BASE_1_1 1.1 (no code name)
3 CUPCAKE 1.5 Cupcake
4 DONUT 1.6 Donut
5 ECLAIR 2 Eclair
6 ECLAIR_0_1 2.0.1 Eclair
7 ECLAIR_MR1 2.1 Eclair
8 FROYO 2.2.x Froyo
9 GINGERBREAD 2.3 - 2.3.2 Gingerbread
10 GINGERBREAD_MR1 2.3.3 - 2.3.7 Gingerbread
11 HONEYCOMB 3 Honeycomb
12 HONEYCOMB_MR1 3.1 Honeycomb
13 HONEYCOMB_MR2 3.2.x Honeycomb
14 ICE_CREAM_SANDWICH 4.0.1 - 4.0.2 Ice Cream Sandwich
15 ICE_CREAM_SANDWICH_MR1 4.0.3 - 4.0.4 Ice Cream Sandwich
16 JELLY_BEAN 4.1.x Jelly Bean
17 JELLY_BEAN_MR1 4.2.x Jelly Bean
18 JELLY_BEAN_MR2 4.3.x Jelly Bean
19 KITKAT 4.4 - 4.4.4 KitKat
20 KITKAT_WATCH 4.4W KitKat Watch
21 LOLLIPOP 5 Lollipop
22 LOLLIPOP_MR1 5.1 Lollipop
23 M 6 Marshmallow
24 N 7 Nougat
25 N_MR1 7.1 Nougat
';
$url = 'https://developer.android.com/about/dashboards/index.html';
$versions = explode("\n", trim($versions));
$html = file_get_contents($url);
preg_match_all('/var VERSION_DATA =(.*?)var VERSION_NAMES =/si',
$html, $matches);
$json = json_decode(trim($matches[1][0], " \t\n\r\0\x0B[];"), true);
$sum = 100;
foreach ($json['data'] as $data) {
printf("%5s %5s %s\n",
$data['perc'], sprintf('%03.1f', $sum), $versions[$data['api']]);
$sum -= $data['perc'];
}
ユーザのシェアの数字は月一で更新される公式ページから実行時に取得します.
左から,
「ユーザ割合」
「そのバージョンをminSdkにしたときのカバー率」
「API レベル」
「バージョンコード」
「OSバージョン」
「コードネーム」
としています.
0.1 100.0 8 FROYO 2.2.x Froyo
1.3 99.9 10 GINGERBREAD_MR1 2.3.3 - 2.3.7 Gingerbread
1.3 98.6 15 ICE_CREAM_SANDWICH_MR1 4.0.3 - 4.0.4 Ice Cream Sandwich
4.9 97.3 16 JELLY_BEAN 4.1.x Jelly Bean
6.8 92.4 17 JELLY_BEAN_MR1 4.2.x Jelly Bean
2.0 85.6 18 JELLY_BEAN_MR2 4.3.x Jelly Bean
25.2 83.6 19 KITKAT 4.4 - 4.4.4 KitKat
11.3 58.4 21 LOLLIPOP 5 Lollipop
22.8 47.1 22 LOLLIPOP_MR1 5.1 Lollipop
24.0 24.3 23 M 6 Marshmallow
0.3 0.3 24 N 7 Nougat
おおまかですが, すばやく一覧で確認できます.
Jelly Bean (Android 4.3) までを切り捨てた場合, minSdk=19 となり, 利用できるのは Android 4.4 以降の kitKat ユーザー で, 全体の 83.6% 程度なのかっ!
関連ワード: Android・おすすめ・ツール・便利な設定・開発・api_level・minsdk・version_codes