検証FAQ:「Androidブラウザのバージョン?」
はじめに
検証サービスチームのウジハラです。
最近、実機検証サービス(アウトソース・実機レンタル)をご利用のお客様から、Androidブラウザ(多くのAndroid端末に初期搭載されている標準ブラウザ)のバージョンについてお問い合わせをいただくことがあります。
サイト検証の対象ブラウザを検討する際の情報として、PC向けのIEであれば「8」「9」「10」……、Chromeであれば「30」「31」「32」……に相当するバージョン情報を求めるお客様が増えているようです。
【要注意】Google Analyticsでのバージョン名
Google Analyticsの統計を参考に、「Androidブラウザのバージョン4.0のブラウザを搭載した機種を1機種、3.1.2のブラウザを搭載した機種を1機種……」といったご相談を受けることがあります。
Google Analyticsでの統計例
(2014年3月25日時点での表示)
一般ユーザーにもサイト開発者にも馴染みのないバージョン名ですが、AndroidブラウザのUserAgent文字列に含まれる「Version/x.y.z」が基になっています。(Android OSのバージョンとは関連がありません)
Mozilla/5.0 (Linux; U; Android 1.6; ja-jp; Docomo HT-03A Build/DRD08) AppleWebKit/528.5+ (KHTML, like Gecko) Version/3.1.2 Mobile Safari/525.20.1
Mozilla/5.0 (Linux; U; Android 2.1-update1; ja-jp; HTCX06HT Build/ERE27) AppleWebKit/530.17 (KHTML, like Gecko) Version/4.0 Mobile Safari/530.17
Mozilla/5.0 (Linux; U; Android 2.2; ja-jp; HTCX06HT Build/FRF91) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1
Mozilla/5.0 (Linux; U; Android 4.0.4; ja-jp; ISW13HT Build/IMM76D) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30
Android 2.1以降のAndroidブラウザのUA文字列には、一部の例外を除き「Version/4.0」が含まれています。前掲の統計例で、Androidブラウザの90%以上が「4.0」に分類されているのもこのためです。
しかし、同じ「Version/4.0」でも、ブラウザのレンダリングエンジンであるWebKitのバージョンは「530.17」→「533.1」→「534.30」と変化しています。PC向けChromeのバージョンであれば「2」→「5」→「12」に相当する変化となり、ブラウザの動作にもかなりの差異があるはずです。
「Version/4.0」はAndroidブラウザの実質的なバージョン情報ではないと考えるべきでしょう。
(Android 2.1のリリース時に、同じWebKitを使っているSafariの「バージョン4」相当ですという意味で付与した「Version/4.0」が残っていると推測しています)
Google Analyticsの分類だけを参考にして、Android 2.1以降のブラウザを「Version/4.0」で一括りにしてしまうテストブラウザ(機種)選定には大いに不安が残ります。
まとめ:Google Analyticsでのバージョン名
・UA上の形式的なバージョン表記が基になっており、ブラウザ動作の差異はあまり考慮されていない
・テスト対象のブラウザを分類する基準には適していない(IEやChromeのバージョンと同列に扱うのは危険)
Androidブラウザの実質的なバージョン名は?
それではAndroidブラウザの実質的なバージョン名はどうやって調べるのでしょうか。
IEやChromeなどと異なり、Androidブラウザの設定メニューにはブラウザバージョンを確認する項目はありません。端末の設定メニューから搭載アプリの一覧を表示し、その中からブラウザアプリを選択してアプリのプロパティ情報を確認する必要があります。
Android 2.1まではAndroidのAPIレベルの値がブラウザアプリのバージョンとして表示されます。(全機種を調査したわけではありませんので、例外が存在する可能性はあります)
HT-03A[Android 1.6]での表示
X06HT[Android 2.1]での表示
Android 2.2以降では、Androidバージョンに近い値がブラウザアプリのバージョンとして表示されます。(こちらも例外が存在する可能性はあります)
ブラウザバージョン7(Android 2.1)の次がブラウザバージョン2.2(Android 2.2)に下がってしまうのは紛らわしいです。
X06HT[Android 2.2]での表示
ISW12HT[Android 4.0]での表示
なお、Android 4.0以降では、ブラウザバージョンの末尾にメーカー(機種)独自のバージョン情報が付与されているケースが多く見られます。
メーカー独自のバージョン情報が付与されている例
(同じAndroid 4.2.2端末での比較 上:F-01F、下:KYY22)
オープンソースなOS(ブラウザ)であるがゆえ、メーカーが独自にブラウザをカスタマイズして管理していることを裏付けるバージョン表記ですが、バージョンの値が細かくなりすぎて煩雑です。
Google Analyticsの分類に比べれば、ブラウザの動作差異も考慮されおり、テスト対象のブラウザを分類する基準には適していますが、IEやChromeのバージョンのような分かりやすさには欠けていると言えるでしょう。
まとめ:端末メニューから確認できるバージョン名
・Android 2.1以下→AndroidのAPIレベル値(4,7など)
・Android 2.2以上→Androidバージョン+メーカー独自のバージョン(2.2、4.0.2~、4.2.2~など)
・Google Analyticsの分類よりはブラウザの動作差異が考慮されているが、複雑で分かりにくい
Androidブラウザの現実的な分類は?
残念ながら、IEやChromeのバージョン名に相当する簡潔なバージョン分類は存在しないというのが、ここまでの結論になります。
しかし、サイト検証を実施するにあたっては、何らかの基準を設けてブラウザを分類し、テスト対象のブラウザ(機種)を選定する必要があります。
当社実機検証サービス(アウトソース・実機レンタル)では、「Google Analyticsの分類」よりは細かく、「端末メニューから確認できるバージョン名」よりは大まかにということで、最低限でもAndroidのバージョン別にはテストすることをお勧めしています。
その他、Androidのバージョン違いをベースに、メーカーの差異や機種の稼働シェアを考慮したテスト機種選定もお手伝いしております。
ご興味をお持ちになった方は、お気軽に当社までお問い合わせください。