Hyper-VでAndroidエミュレータを高速化する
HAXMで高速化する方法とHyper-Vの有効化で高速化する方法がある。
Hyper-Vの有効化で高速化する方法だとAMDのプロセッサでも使えるし、Hyper-Vの有効化を必要とする他のソフトウェアとも共存できる。
HAXMを使ったほうがちょっと速いというレポートもあるが今後はHyper-Vの有効化を使う方法が主流になると思う。
今昔
昔はHAXMを使う方法しかなかったので、Hyper-Vの有効化を有効にしてAVDを起動しようとすると怒られた
今はHyper-Vの有効化が使える場合は自動的に有効にされるので、HAXMよりもHyper-Vの有効化を使ったほうが良いのではないかと思う。
Windows 10 の 2018 年 10 月の更新プログラム (RS5) 以降では、Windows ハイパーバイザー プラットフォーム (WHPX) が自動的に使用されるため、Hyper-Vの有効化 のみを有効にする必要があります。
Hyper-Vを使うための要件
第 2 レベルのアドレス変換 (SLAT) を備えた 64 ビット Intel または AMD Ryzen CPU。
VM モニター モード拡張機能 (Intel CPU 上の VT-c) の CPU サポート。
4 GB 以上のメモリ。
Windows 10 1803以降
Androidエミュレータのバージョンが27.3.8以降
syseminfoコマンドによる要件の確認
コマンドプロンプトでsysteminfoを実行する。
僕の環境では「Hyper-V の要件:ハイパーバイザーが検出されました。Hyper-V に必要な機能は表示されません。」としか表示されなかった。
Microsoftのドキュメントによると以下の表示になるらしい。
https://docs.microsoft.com/ja-jp/xamarin/android/get-started/installation/android-emulator/hardware-acceleration-images/win/02-systeminfo-w158-sml.png
HAXMとは共存できない
HAXMはアンインストールしておくこと
HAXMのアンインストール
SDK Managerでも確認しておく
Android Studioから「Tools」→「SDK Manager」
Intel x86 Emulator Accelerator (HAXM installer) → オフ
Androidエミュレータ Hypervisor Driver for AMD Processors (installer) → オフ
Android Emulatorのバージョンが27.3.8以降であることを確認
https://scrapbox.io/files/60fa301d16b75b001c0a16e8.png
Hyper-Vの諸機能を有効にする
https://scrapbox.io/files/60fa28cabf436a001e852839.pnghttps://scrapbox.io/files/60fa58c1c5bee800232358f0.png
確認方法
AndroidエミュレータがHyper-Vの機能を使っているかどうか確認する方法にはSDK/emulator/emulator-check.exeを使う。
https://scrapbox.io/files/60fa5b5b8a7b35001e3823ce.png
Please disable Hyper-V before using the Android Emulatorってどういうことや。
https://scrapbox.io/files/60fa5fac59396b0022281d04.png
参考ページ hr.icon
HAXMのアンインストール
Hyper-Vの有効化
参考文献 hr.icon
エミュレーターのパフォーマンスのためのハードウェア高速化 (Hyper-V と HAXM)