はじめに
AVD
内のChromeバージョンを上げる方法です。
実際に実践した上で、意外と苦労することが多かったのでその内容をこちらに記載します。
経緯
業務でスマートフォン用サイトページを作成するにあたり、古いAndroid OSで検証を行う必要がありました。
ただしデフォルトで入っているChromeバージョンだとJSの一部メソッドが対応していないためエラーとなってしまい、検証が行えないということがありました。
それを解決するためにAVD
内のChromeバージョンを更新する必要がありました。
ただ筆者はiPhoneユーザのためGoogle Play
などが利用できず、少し面倒な手順で更新する必要がありました。
手元の環境
PC: MacBook Pro(13-inch)
OS: macOS Monterey(12.5.1)
Android Studio: Dolphin | 2021.3.1 Patch 1
手順
AVD
の作成
こちらはAndroid Studio
で操作します。
Virtual Device Managerを起動
Android Studio
を起動すると下記画面が表示されます。
右上にあるGet from VCS
の右にある縦向きの3点リーダのような部分をクリックします。
いくつかメニューが表示されるので、その中の一番下にあるVirtual Device Manager
を選択します。
端末を選択
Device Manager
が表示されたら、左上にあるCreate device
を選択します。
作成可能なデバイスが一覧として表示されますので、好きなデバイスを選択してNext
を押してください。
今回はPixel 5
で作ってみます。
OSのバージョンを選択
デバイスを選択したら、使用したいOSバージョンを選択してNext
を押してください。
今回はAndroid10(Q)
を使用します。
もし添付画像のようにダウンロードが必要な場合は赤枠部分をクリックしてダウンロードしていただければ大丈夫です。
ダウンロードを押すとInstallerが動きますので、完了になるまで待機してください。
AVD
完成!
最終確認が表示されるので、名前を変えたい方はAVD Name
を好きに変えていただいてOKです。
問題がなければFinish
を選択してください。
作成したAVD
Device: Pixel 5 API 29
OS: Android10(Q)
作成したAVD
にデフォルトで入っているChromeのversionを確認する
実際に作成したAVD
のChromeのversionがいくつなのか確認してみます。
作成したAVD
の再生ボタンをタップするとAVD
を起動することができます。
実際にChromeを起動してversionを見てみます。
右上の縦向きの3点リーダのような部分をタップしてSettings
を選択してください。
下の方にAbout Chrome
という部分があるので、そちらをタップしてみてください。
Chromeのデフォルトversion
.apk
ファイルの取得
こちらはお手持ちのパソコン(ここではMacBook Pro)
で操作します。
まず最初に、取得したいバージョンのChromeアプリの.apk
ファイルを取得する必要があります。
.apk
とはAndroid Application Package
の略で、一言で言うとGoogle Play
からダウンロードできるアプリケーションデータだと思っていただけるとわかりやすいかと思います。
Google Play
以外から.apk
ファイルを取得する
普通であればGoogle Play
から.apk
ファイルを取得するのが一番簡単なのですが、上でも述べたように筆者はiPhoneユーザである関係でGoogle Play
にログインすることができません。
Google Play
からアプリケーションを取得したい場合は一度ログインする必要があり、これが実現できないので諦めるしかないという状態です。(Android
ユーザの方は自前のアカウントを使用してログインすれば取得できるはずです。)
ただこの.apk
ファイルはGoogle Play
以外のサイトからも取得することができます。
なので今回はログイン等が不要なAPKMirrorというサイトから取得してみようと思います。
Google Chrome
アプリケーションを探す
APKMirrorにアクセスすると下記のような画面が表示されます。
右上にある検索欄からgoogle chrome
と入力して検索します。
該当するファイルを選択
検索を実施すると下記のような検索画面が表示されます。
この中からGoogle Chrome: Fast & Secure
となっているものを選択してください。
作成したAVD
に合う.apk
ファイルを選択
遷移先画面の少し下にDownload
という項目があり、たくさんのバージョンが存在しています。
ここから.apk
ファイルをダウンロードするのですが、どれをダウンロードすれば良いのかわかりにくいです。
見極めとしては以下を満たすものであれば大丈夫です。
- Variant: APKとなっているものを選択
- Architecture: 作成した
AVD
のOSのABIと同じものを選択(今回はAndroid10(Q)がx86
となっているのでそちらを選択)- 基本的には
x86, x86_64
のいずれかなのでそちらを選んでいただければ大丈夫です。 - 確認方法としては作成したAVDにて
Android10.0 Google APIs |
の後ろにx86
とついているので、ここを見ればOKです。
- 基本的には
- Minimum Version: 作成した
AVD
のOSよりも下のバージョンがカバーされているものを選択(今回はAndroid10(Q)が担保されていればOK)
今回であれば赤枠のファイルが良さそうなのでこちらを選択します。
- Variant: APKとなっている
- Architecture: 作成した
AVD
のOSのABIを含んでいるx86 + x86_64
- Minimum Version: 作成した
AVD
のOS(Android10(Q))が担保しているAndroid 7.0+
ファイルのダウンロード
遷移先画面にてDOWNLOAD APK
というボタンが存在するので、こちらをタップして.apk
ファイルをダウンロードしてください。
Chromeのversionを更新する
こちらはAndroid Studio
で操作します。
.apk
ファイルのダウンロードが完了したら、実際にバージョンのアップデートを実施してみましょう。
.apk
ファイルをAVD
に適用させる
上で作成したAVD
を起動し、Finder
で先ほどダウンロードした.apk
ファイルを表示させておいてください。
下のgifのようにFinder
から対象の.apk
ファイルを選択し、ドラッグ&ドロップでAVD
まで持っていってください。
うまくできればInstalling APK...
と表示されて、.apk
ファイルのインストールが実施されます。
適用されているか確認する
再度Chromeを起動して、バージョンが更新されているのか確認してみましょう。
作成したAVDにデフォルトで入っているChromeのversionを確認すると同じ手順で確認してみましょう。
該当するファイルを選択で選択した.apk
ファイルのversionである108.0.5359.79
が入っていますね!
これで完璧です!
余談:更新後に検索などを行うとクラッシュする・・・?
こちらはAndroid Studio
で操作します。
無事にChromeのバージョン更新も実施できたのでこれで完璧だと言いたいのですが、実際に更新後Google検索などを実施してみましょう。
こちらのようなSomething went wrong
と表示されて検索できない状態になることがあります。(ならない方はOK!)
もし途中でクラッシュしてしまい検索ができなくなったという方がいらっしゃったら、一度AVD
を終了して設定を変更する必要があります。
AVD
の設定を変更
対象AVD
の編集ボタンを押下し、Show Advanced Settings
を選択してください。
下の方にスクロールするとEmulated Performance
という項目があります。
こちらの項目がもしQuick boot
となっている場合は、Cold boot
に変更してみてください。
2つの違いに関して、Quick boot
がスリープ状態に変更(iPhoneでいう電源ボタンを一度押して画面を暗くする)、Cold boot
が電源を落とした状態に変更(iPhoneでいう電源ボタンを長押しして電源を落とす)とイメージしていただくとわかりやすそうです。
更新後に一度電源を落とすようにしましょうということですね。
Stack Overflowでも、Chromeの更新後にCold boot
に設定して電源を一度落とすようにしないといけないという旨が記載されています。
最後に
こちらで無事にAVD
の更新ができたかと思います。
ぜひ活用していただき、より開発品質の向上に充てていただければ幸いです。
また余談:更新後に検索などを行うとクラッシュする・・・?の事象が今回一番解決するのに苦労した部分だったのですが、今回実施したDolphin
だと発生しませんでした・・・。
以前使っていたChipmunk
だと起こっていたので、もしかしたらバージョンアップと一緒に解決してくれたのかもしれないです。
ただDolphin
では絶対に起こらないという保証はないので、もし同様の事象が発生した場合は参考にしていただければ幸いです。