約 10 年振りにノートパソコンを買い替えました。
その際 VisualStudio2017 + Xamarin.Android の開発環境に手間取ったので、開発環境構築メモ。
今回やりたいこと
AMD CPU で Android AVD の高速化を目指します。
AMD って Hyper-V が利用できないと思っていたのですが、ここ最近でできるようになっていたんですね。
「Android Emulator」がAMD製CPUをサポート、「Hyper-V」での利用も可能に
https://forest.watch.impress.co.jp/docs/news/1132197.html
まとめ
思ったより手順が多かったのですが、かなり高速化されました。
スペックや設定にもよると思いますが、私の環境ですとエミュレータの起動だけなら 10 秒かからない感じです。
環境
PC スペックは以下の通りです。ThinkPad E585 の SSD 最小構成にメモリ増設してる感じです。
対象 | 仕様 |
---|---|
CPU | AMD Ryzen 2500U 2GHz |
Memory | 16GB (8GB+8GB) |
OS | Windows10 Home |
ひと昔くらい前の個人サイトって自己紹介欄によく PC スペック書いてましたよね。
どうでもよい話ですが。
環境は以下の通りです。
- Visual Studio Community 2017 v15.9.4
- .NET Framework 4.7.03056
- Xamarin 4.12.3.77
- Android Emulator x86 API24
手順
以下の順で仮想環境を有効化していき Hyper-V を実現していきます。
色んな記事を参考にしたので余分な手順があったらすみません。
- BIOS で有効化
- Windows で有効化
- Vistual Studio で有効化
- HAXM で有効化
1.BIOS で有効化
タスクマネージャで CPU の仮想化が有効の方はこの手順不要です。
私は最初無効でしたので実施。
実は初 SSD ユーザなのですが、OS の起動ってめちゃ早いじゃないですか。
ですので SSD だと BIOS への入りが間に合わない場合があるようです。そのような場合はコントロールパネルから再起動時に BIOS に入ることができます。
Windows10 のコントロールパネルは [スタートメニュー] -> [Windows システムツール] -> [コントロールパネル] で起動します。
コントロールパネルの画面から [更新とセキュリティ] -> [回復] -> [再起動] を選択し、[詳細オプション] から UEFI を設定で続行。
再起動すると BIOS (UEFI) 画面に入ります。[Security] -> [Virtualization] -> [AMD V] を有効にして保存。再起動後、仮想化が有効になっていることが確認できます。
2.Windows 機能で有効化
今度は Windows Hypervisor Platform を有効にする必要があるようです。
コントロールパネルから [プログラムと機能] -> [Windows の機能の有効化または無効化] から該当する項目にチェックを入れて OK。もう一度再起動を要求されますので実行。
3.Visual Studio アップデート
Visual Studio のプロジェクトを立ち上げると、「Andorid SDK を更新すると Windows ハイパーバイザープラットフォームを使用した~」というメッセージが出てきます。
ちなみに私は本手順の前に Andorid 環境を入れてプロジェクトも作ってました。
更新するため [ツール] -> [Android] -> [Android SDK Manager] で Tool タブから以下を更新+インストール。
- Android SDK Platform-Tools (27.0.1 以降)
- Android Emulator (27.3.8 以降)
- Intel x86 Emulator Accelerator (HAXML installer)
HAMX で有効化
いざ実行し見ると、なんかまだ遅いような気がする…と思って調べていると、上記のままだと HAXM をダウンロードした状態で止まっているかもとの記事が。
エミュレータ android AMDプロセッサでAVDを起動する際のエラー
https://code.i-harness.com/ja/q/19227bd
ですので、先ほど Android SDK ツールから落としてきた HAXM を実行します。
コマンドプロンプトを起動して、以下に移動します。
{SDK_FOLDER} \ extras \ intel \ Hardware_Accelerated_Execution_Manager
{SDK_FOLDER} は環境によって異なると思いますが、私はデフォルトで以下になっています。
C:\Program Files (x86)\Android\android-sdk
以下を実行。
>cd C:\Program Files(x86)\Android\android-sdk\extras\intel\Hardware_Accelerated_Execution_Manager
>silent_install.bat -v
実行結果
ようやく仮想環境が有効になったようです。
再度 Vistual Studio を起動し、[ツール] -> [Android] -> [Android デバイスマネージャ] から Android x86 環境のエミュレータを作成し実行すると高速化されました。
デバイス作成時のパラメータの細かい設定は他のサイトさんを参照して下さい。
適当な設定がいまだに私もよくわかっていません。。。
今回はデフォルト設定から以下を弄ってます。メモリを積んでるとこういうとき良いですね。
項目 | 設定値 |
---|---|
基本デバイス | Pixel |
プロセッサ | x86 |
OS | Nougat 7.0 API 24 |
hw.ramSize | 2048 |
vm.heapSize | 512 |
2 回目以降の起動はクイックブートが実現できるようになります。
エミュレータの起動だけですと 10 秒かからないのはありがたいです。