Android Emulator WebView versions

# Android Emulator WebView versions
Android Emulator の WebView のバージョンを調べてみた。

Android 5.0 から WebView のエンジンがストア経由でアップデートができるようになり、最新の Chrome と同じエンジンが使えるようになっている。

ところが Android Emulator では 5.0 でも `Object.assign` などの ES6 の機能が使えず、不思議に思って調べてみた。


## 結論
結論から... めんどくさいね。


### Android 4.1 - 4.3
Android 4.1 - 4.3 の WebView は WebKit ベースでかなり古く OS に含まれている。これは実機も Emulator も同じ。実機によってはメーカーが新しい WebKit にアップデートしている可能性はある。

実機と Emulator の WebView の動作は同じと考えて良く、Emulator で検証したら実機でも動くと考えて良さそう。


### Android 4.4
Android 4.4 の WebView は Chrome ベースだけど、事情は 4.1 - 4.3 と同じで OS に同梱されている。メーカーが新しい WebKit にアップデートしている可能性があるのも同じ。

実機と Emulator の WebView の動作は同じと考えて良く、Emulator で検証したら実機でも動くと考えて良さそう。


### Android 5 - 6
Android 5 - 6 の WebView は Chrome ベースになり、Play Store 経由で配布されるようになったため、実機は最新の Chrome と同等だけど、Emulator は古いものが使われている。

実機と Emulator には差があり、検証には適さない。WebView 部分だけなら実機に近いにはむしろ Android 8 の Emulator。


### Android 7 - 8
Android 7 - 8 の WebView は Chrome がその機能を提供し、Play Store 経由で配布される。Emulator の WebView が古いのは 5 - 6 と変わらない。

* Chrome の apk をどこからか持ってきてインストールすれば最新になりそう (やっていいかは知らない
* Android 8 の Emulator は Play Store がインストールされているので Emulator でもアップデートができそう



## 実機
* Android 4.1 - 4.3 の WebView は WebKit で OS 同梱。アップデートがされておらず新機種だろうが WebKit はかなり古い。
* Android 4.4 の WebView は Chrome ベースに変わったけど、OS 同梱なのは変わらず。メーカーによってはアップデートされているかも。
* Android 5.0 以降の WebView は Chrome ベースで OS から切り離され、Google Play でアップデートされる。(Android System WebView) 最新の Chrome と同程度なことが期待できる。
* Android 7.0 以降の WebView は Chrome が提供する。


## 調査
### Android Emulator (Android SDK)
| Android            | API | WebView | User Agent
| ------------------ | --: | ------- | ----------
| 8.0 (Google Play)  |  26 | Chrome 58 | Mozilla/5.0 (Linux; Android 8.0.0; Android SDK built for x86 Build/OSR1.170720.005; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/58.0.3029.125 Mobile Safari/537.36
| 7.1.1 (Google API) |  25 | Chrome 55 | Mozilla/5.0 (Linux; Android 7.1.1; Android SDK built for x86_64 Build/NYC; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/55.0.2883.91 Mobile Safari/537.36
| 7.0 (Google API)   |  24 | Chrome 51 | Mozilla/5.0 (Linux; Android 7.0; Android SDK built for x86_64 Build/NYC; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/51.0.2704.90 Mobile Safari/537.36
| 6.0 (Google API)   |  23 | Chrome 44 | Mozilla/5.0 (Linux; Android 6.0; Android SDK built for x86_64 Build/MASTER; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/44.0.2403.119 Mobile Safari/537.36 
| 5.1 (Google API)   |  22 | Chrome 39 | Mozilla/5.0 (Linux; Android 5.1.1; Android SDK built for x86_64 Build/LMY48X) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/39.0.0.0 Mobile Safari/537.36
| 5.0 (Google API)   |  21 |  Chrome 37 | Mozilla/5.0 (Linux; Android 5.0.2; Android SDK built for x86_64 Build/LSY66K) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/37.0.0.0 Mobile Safari/537.36
| 4.4 (Google API)   |  19 | Chrome 30 | Mozilla/5.0 (Linux; Android 4.4.2; Android SDK built for x86 Build/KK) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/30.0.0.0 Mobile Safari/537.36
| 4.3 (Google API)   |  18 | WebKit 534.30 | Mozilla/5.0 (Linux; U; Android 4.3.1; en-us; Android SDK built for x86 Build/JB_MR2) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30
| 4.2 (Google API)   |  17 | WebKit 534.30 | Mozilla/5.0 (Linux; U; Android 4.2.2; en-us; Android SDK built for x86 Build/JB_MR1.1) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30
| 4.1 (Google API)   |  16 | WebKit 534.30 | Mozilla/5.0 (Linux; U; Android 4.1.2; en-us; Android SDK built for x86 Build/MASTER) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30


### Visual Studio Emulator for Android
| Android | API | WebView | User Agent
| ------- | --: | ------- | ----------
| 6.0.0   |  23 | Chrome 40 | Mozilla/5.0 (Linux; Android 6.0; 5.7-inch Marshmallow (6.0.0) XHDPI Phone Build/MRA58K) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/40.0.0.0 Mobile Safari/537.36
| 5.1.1   |  22 |
| 5.0     |  21 |
| 4.4     |  19 | Chrome 33 | Mozilla/5.0 (Linux; Android 4.4.4; 5-inch KitKat (4.4) XXHDPI Phone Build/KTU84P) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/33.0.0.0 Mobile Safari/537.36
| 4.2     |  17 | WebKit 534.30 |