Skip to content

Instantly share code, notes, and snippets.

@seraphy
Last active August 19, 2023 09:13
Show Gist options
  • Star 9 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save seraphy/ff966de0f9d658400707382ecdb0e8a2 to your computer and use it in GitHub Desktop.
Save seraphy/ff966de0f9d658400707382ecdb0e8a2 to your computer and use it in GitHub Desktop.
Hyper-VでサクサクAndroidエミュレータを使おうと思ったらハマったはなし

AndroidエミュレータはHyper-Vに対応しているはず

Android EmulatorはHyper-Vが有効なマシンでは動かない、という話は、今となっては昔の話...のはず。

プライバシーとセキュリティが糞雑魚な情弱御用達コミュニティサイトであるQiitaの「Hyper-VでサクサクAndroidエミュレータを使おう」という記事を読んで、なにも難しいことはなさそうだし、VirtualBoxをやめてHyper-Vに移行してもいいかな、と思った。1

ところが、試してみたところ、私の環境では、なかなかうまくゆかずハマってしまった。

Hyper-VでAndoirdエミュレータが動く条件は?

いろいろしらべてみたところ、このAndoird Studio公式のHyper-Vでも動作できるうようになったエミュレーターは、もともとはマイクロソフトがVisual Studio 2017で先行してリリースされていたエミュレーターのオープンソースとしての貢献をもとに作成されたものらしい。

https://android-developers.googleblog.com/2018/07/android-emulator-amd-processor-hyper-v.html

※ この記事によれば、Intelマシンでは引き続きIntel HAXMが使ったほうがベストであるが、従来は使えなかったAMDのCPUや、その他の理由でHyper-Vを使っている場合でも動作できるようになりました、的な感じみたい。

で、先行するマイクロソフトのHyper-Vで動作するAndroid Emulatorの条件は、こちらに詳しく書かれている。

https://blogs.msdn.microsoft.com/visualstudio/2018/05/08/hyper-v-android-emulator-support/

1. Windows 10 April 2018 Update (バージョン 1803) 以降

Windows10のバージョンの確認方法

※ いまどきは1803以降にはなっているはず。

2. Android Studio 3.2, Android Emulator v27.3.8以降

SDK → SDK Toolsタブでエミュレータのバージョンを確認。

2019-02-04.png

※ 原因がよく分からなかったので、Android Studio3を何回かインストール・アンインストールを繰り返してしまった。基本的には、ここで バージョン27.3.8以降 となっていれば問題なかったようだ。

3. Hyper-V & Windows Hypervisor Platform が有効なこと

ここがハマりポイントだった。

Hyper-Vを有効にしただけでダメだったのである。

Windowsの機能.png

Windowsハイパーバイザプラットフォームも有効にしなければならない。

結論

実は元記事でも、ちゃんと書いてありました。

Hyper-V とWindows Hypervisor Platform にチェックをつけてOKを押します。

画像だけ見て、本文をよく読んでおりませんでした。

※ 「Windows Hypervisor PlatformによるアクセラレーションでAVDを動かす」の記事によると、むしろ、「Hyper-V」よりも「Windowsハイパーバイザープラットフォーム」のほうが重要っぽいようです。

※ また上記記事によると、Intel HAXMとWHPX(Hyper-V)とのパフォーマンスを比較したところ、軒並み、Hyper-Vの成績が低いので、公式アナウンスどおり、Intel CPUを使っていてHyper-Vを使いたい理由がないのであれば、従来どおり、Hyper-VではなくHAXMで使ったほうがいいみたいではある。

★★ しかしながら、Windows10でHyper-Vが有効でdocker for windowsがつかえている環境で、しかし、Windows Hypervisor Platformが有効になっていないマシンでも、Android Emulatorが動くマシンも見つけてしまった。これは昨年買ったIntel Core i5-7200UのノートPCで、今回動作しなかったのは5年以上前のIntel Xeon E3-1230 v2のマシンなので、そのあたりCPUの違いとかあるのかもしれない? ★★

余談

Android Emulatorが動かない、でいろいろ検索したら

  • どうしても動かないのであれば、x86ではなくARMイメージでエミュレートさせれば(劇遅だけど)動くよ?みたいなアドバイスがあって、そうゆう手もあるのか、と勉強になりました。

以上、おわり

Footnotes

  1. Docker for Windowsを試したくなったため

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment