Help us understand the problem. What is going on with this article?

AMD CPU で Hyper-V を使って Android AVD を高速化する

More than 1 year has passed since last update.

約 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 を実現していきます。
色んな記事を参考にしたので余分な手順があったらすみません。

  1. BIOS で有効化
  2. Windows で有効化
  3. Vistual Studio で有効化
  4. HAXM で有効化

1.BIOS で有効化

タスクマネージャで CPU の仮想化が有効の方はこの手順不要です。
私は最初無効でしたので実施。

TaskManager_CPU_Virtual_Off.png

実は初 SSD ユーザなのですが、OS の起動ってめちゃ早いじゃないですか。
ですので SSD だと BIOS への入りが間に合わない場合があるようです。そのような場合はコントロールパネルから再起動時に BIOS に入ることができます。

Windows10 のコントロールパネルは [スタートメニュー] -> [Windows システムツール] -> [コントロールパネル] で起動します。

コントロールパネルの画面から [更新とセキュリティ] -> [回復] -> [再起動] を選択し、[詳細オプション] から UEFI を設定で続行。

再起動すると BIOS (UEFI) 画面に入ります。[Security] -> [Virtualization] -> [AMD V] を有効にして保存。再起動後、仮想化が有効になっていることが確認できます。

TaskManager_CPU_Virtual_On.png

2.Windows 機能で有効化

今度は Windows Hypervisor Platform を有効にする必要があるようです。

コントロールパネルから [プログラムと機能] -> [Windows の機能の有効化または無効化] から該当する項目にチェックを入れて OK。もう一度再起動を要求されますので実行。

window_function_hyper-v_on.png

3.Visual Studio アップデート

Visual Studio のプロジェクトを立ち上げると、「Andorid SDK を更新すると Windows ハイパーバイザープラットフォームを使用した~」というメッセージが出てきます。

visual_studio_hyper-v_info.png

ちなみに私は本手順の前に 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

android_avd_start.gif

2 回目以降の起動はクイックブートが実現できるようになります。
エミュレータの起動だけですと 10 秒かからないのはありがたいです。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした