Android エミュレーター (Hyper-V と AEHD) を使ってハードウェア アクセラレーションを有効にする方法
Visual Studio を使用すると、Android デバイスが利用できない状況に備えて、エミュレーターで Android 用 .NET MAUI アプリを簡単にテストおよびデバッグできます。 ただし、ハードウェア アクセラレーションが利用できない場合や有効になっていない場合、エミュレーターの実行速度は非常に遅くなります。 ハードウェア アクセラレーションを有効にし、お使いのプロセッサ アーキテクチャに適した仮想デバイス イメージを使用することで、エミュレーターのパフォーマンスを大幅に高めることができます。 詳細については、developer.android.com の「Android Emulator のハードウェア アクセラレーションを設定する」を参照してください。
エミュレーターには、Windows 仮想マシン (VM) 内から Mac 上で実行されているエミュレーターに接続するなど、さまざまな目的に使用できる多用途のネットワーク機能があります。 詳細については、「Windows 仮想マシン内から Mac 上の Android エミュレーターに接続する」を参照してください。
macOS 上の Android エミュレーターは組み込みの Hypervisor.Framework を使用します。 詳細については、developer.apple.com の「Hypervisor 」(ハイパーバイザー) を参照してください。
Windows 上での Android エミュレーターの高速化
Windows 上の Android エミュレーターを高速化するには、次の仮想化テクノロジを使用できます。
- Windows ハイパーバイザー プラットフォーム (WHPX) Hyper-V は Windows の仮想化技術の 1 つであり、物理的ホスト コンピューター上で、仮想化されたコンピューター システムを実行できます。
- Android Emulator ハイパーバイザー ドライバー (AEHD)。
Note
Intel Hardware Accelerated Execution Manager (HAXM) はエミュレーター 33.x.x.x から非推奨となり、Intel プロセッサの AEHD に置き換えられました。 エミュレーター 32.x.x.x 以下で HAXM を使用する方法については、developer.android.com で、「Windows で Intel HAXM を使用する VM アクセラレーションを設定する」をご覧ください。
Windows で最適なエクスペリエンスを実現するには、WHPX を使用して Android エミュレーターを高速化することをお勧めします。 お使いのコンピューターで WHPX を使用できない場合は、AEHD を使用できます。 Android エミュレーターは、次の条件が満たされている場合、ハードウェア高速化を自動的に利用します。
- 開発コンピューターにハードウェア高速化機能があり、それが有効になっている。
- x86-64 または x86-ベースの仮想デバイスのために作成されたシステム イメージをエミュレーターが実行している。
重要
VM で入れ子になった仮想化が有効な場合、Microsoft Dev Box などの別の VM 内で仮想マシン (VM) の高速エミュレーターを実行できます。
Android エミュレーターの起動とデバッグについては、「Android Emulator でのデバッグ」を参照してください。
Hyper-V による高速化
Hyper-V を有効にする前に、次のセクションを読み、コンピューターが Hyper-V をサポートしていることを確認してください。
Hyper-V のサポートを確認する
Hyper-V は Windows ハイパーバイザー プラットフォーム上で動作します。 Hyper-V と共に Android エミュレーターを使用するには、コンピューターが Windows ハイパーバイザー プラットフォームをサポートするために次の条件を満たしている必要があります。
コンピューター ハードウェアは次の条件を満たしている必要があります。
- 仮想化テクノロジ (VT-x)、Extended Page Tables (EPT)、無制限ゲスト (UG) 機能をサポートする Intel プロセッサ。 VT-x は、コンピューターの BIOS で有効にする必要があります。
- AMD プロセッサ:AMD Ryzen プロセッサをお勧めします。 仮想化または SVM はコンピューターの BIOS で有効にする必要があります。
お使いのコンピューターで、Windows 11 または Windows 10 バージョン 1909 以降の Enterprise、Pro、または Education バージョンを実行している必要があります。
コンピューターのハードウェアとソフトウェアが Hyper-V と互換性があることを確認するには、コマンド プロンプトを開き、次のコマンドを入力します。
systeminfo
表示されているすべての Hyper-V 要件の値が [はい] の場合、コンピューターは Hyper-V をサポートできます。 次に例を示します。
Hyper-V の結果がハイパーバイザーが現在実行されていることを示す場合、Hyper-V は既に有効になっています。
重要
Windows が仮想マシン内で実行されている場合は、ホスト ハイパーバイザーで入れ子になった仮想化を有効にする必要があります。
Windows で HYPER-V アクセラレーションを有効にする
コンピューターが上記の条件を満たしている場合は、次の手順を実行し、Hyper-V を使用して Android エミュレーターを高速化します。
Windows 検索ボックスに「Windows の機能」を入力し、検索結果で [Windows の機能の有効化または無効化] を選択します。 [Windows の機能] ダイアログで [Hyper-V] と [Windows ハイパーバイザー プラットフォーム] を有効にします。
これらの変更を加えたら、コンピューターを再起動します。
重要
Windows 10 の 2018 年 10 月の更新プログラム (RS5) 以降では、Windows ハイパーバイザー プラットフォーム (WHPX) が自動的に使用されるため、Hyper-V のみを有効にする必要があります。
Android デバイス マネージャーで作成した 仮想デバイスが x86-64 または x86 ベースのシステム イメージであることを確認します。 ARM ベースのシステム イメージを使用すると、仮想デバイスは高速化されず、低速で実行されます。
Hyper-V が有効になると、高速 Android エミュレーターを実行できるようになります。
AEHD を使用した高速化
お使いのコンピューターが Hyper-V をサポートしていない場合は、AEHD を使用して Android Emulator を高速化できます。 AEHD をインストールして使用する前に、次のセクションを読んで、お使いのコンピューターが AEHD をサポートしていることを確認してください。
AEHD のサポートを確認する
AEHD をサポートするには、コンピューターが次の条件を満たしている必要があります。
- 仮想化拡張機能を備えた Intel または AMD プロセッサ (BIOS で有効にする必要があります)。
- 64 ビット Windows 11 または Windows 10。
- Hyper-V をオフにする必要があります。
Note
Windows のいくつかの機能では、Hyper-V が暗黙的に有効になります。 詳細については、developer.android.com で「Hyper-V を無効にする場合に再確認する」をご覧ください。
Windows で AEHD アクセラレーションを有効にする
コンピューターが上記の条件を満たしている場合は、次の手順を実行し、AEHD を使用して Android Emulator を高速化します。
Visual Studio で、メニューから [ツール] - [Android] - [Android SDK Manager] を選択します。
[Android SDK とツール] ウィンドウで、[ツール] タブを選択します。
[ツール] タブで、[追加]を展開し、Android Emulator ハイパーバイザー ドライバー (インストーラー) 項目のチェックボックスをオンにして、[変更の適用] を選択します。
Note
または、GitHub から AEHD をダウンロードしてインストールすることもできます。 ドライバー パッケージを解凍した後、管理者特権を使用してコマンド ラインで
silent_install.bat
を実行します。Android Device Manager で作成した仮想デバイスが x86-64 または x86 ベースのシステム イメージであることを確認します。 ARM ベースのシステム イメージを使用すると、仮想デバイスは高速化されず、低速で実行されます。
AEHD 2.1 以降
インストール後、次のコマンドを使用して、ドライバーが正しく動作していることを確認します。
sc query aehd
ドライバーが正しく動作している場合、状態メッセージには次の情報が含まれます。
SERVICE_NAME: aehd
...
STATE : 4 RUNNING
...
次のエラー メッセージは、BIOS で仮想化拡張機能が有効になっていない、または Hyper-V が無効になっていないことを意味します。
SERVICE_NAME: aehd
...
STATE : 1 STOPPED
WIN32_EXIT_CODE : 4294967201 (0xffffffa1)
...
AEHD をインストールして実行すると、高速な Android Emulator を実行できるようになります。
AEHD 2.0 以前
インストール後、次のコマンドを使用して、ドライバーが正しく動作していることを確認します。
sc query gvm
ドライバーが正しく動作している場合、状態メッセージには次の情報が含まれます。
SERVICE_NAME: gvm
...
STATE : 4 RUNNING
...
次のエラー メッセージは、BIOS で仮想化拡張機能が有効になっていない、または Hyper-V が無効になっていないことを意味します。
SERVICE_NAME: gvm
...
STATE : 1 STOPPED
WIN32_EXIT_CODE : 4294967201 (0xffffffa1)
...
AEHD をインストールして実行すると、高速な Android Emulator を実行できるようになります。
AEHD をアンインストールする
AEHD をアンインストールするには、管理者特権を使うコマンド ラインで次のコマンドを実行します。
AEHD 2.1 以降
sc stop aehd sc delete aehd
AEHD 2.0 以前
sc stop gvm sc delete gvm
重要
AEHD for AMD をアンインストールする前に、x86 エミュレーターをすべてシャットダウンしてください。
トラブルシューティング
ハードウェア高速化の問題のトラブルシューティングについては、Android エミュレーターのトラブルシューティング ガイドを参照してください。
.NET MAUI