Android エミュレーターでハードウェア アクセラレーションを有効にする方法 (Hyper-V と AEHD)

Visual Studio を使用すると、Android デバイスが利用できない状況に備えて、エミュレーターで Android 用 .NET MAUI アプリを簡単にテストおよびデバッグできます。 ただし、ハードウェア アクセラレーションが利用できない場合や有効になっていない場合、エミュレーターの実行速度は非常に遅くなります。 ハードウェア アクセラレーションを有効にし、プロセッサ アーキテクチャに適した仮想デバイス イメージを使用することで、エミュレーターのパフォーマンスを大幅に向上させることができます。 詳細については、「developer.android.com で Android エミュレーターのハードウェア アクセラレーションを構成する」を参照してください

エミュレーターには、Windows 仮想マシン (VM) 内から Mac 上で実行されているエミュレーターへの接続など、さまざまな目的で使用できる汎用性の高いネットワーク機能が用意されています。 詳細については、「Windows 仮想マシン内から Mac 上の Android エミュレーターに接続する」を参照してください

Windows 上での Android エミュレーターの高速化

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 で有効になっている場合、仮想マシン (VM) 高速エミュレーターは、Microsoft Dev Box を含む別の VM 内で実行できます。

Android エミュレーターの起動とデバッグについては、「Android Emulator でのデバッグ」を参照してください。

Hyper-V による高速化

Hyper-V を有効にする前に、次のセクションを読み、コンピューターが Hyper-V をサポートしていることを確認してください。

Hyper-V のサポートを確認する

Hyper-V は Windows ハイパーバイザー プラットフォーム上で動作します。 Hyper-V と共に Android エミュレーターを使用するには、コンピューターが Windows ハイパーバイザー プラットフォームをサポートするために次の条件を満たしている必要があります。

  • コンピューター ハードウェアは次の条件を満たしている必要があります。

    • 第 2 レベルのアドレス変換 (SLAT) を備えた 64 ビット Intel または AMD Ryzen CPU。
    • VM モニター モード拡張機能 (Intel CPU の VT-c) の CPU サポート
    • 4 GB 以上のメモリ。
  • お使いのコンピューターの BIOS で、次の項目を有効にする必要があります。

    • 仮想化テクノロジ (マザーボードの製造元によって、ラベルが異なる場合があります)。
    • ハードウェアによるデータ実行防止。
  • お使いのコンピューターで、Windows 11 または Windows 10 バージョン 1909 以降の Enterprise、Pro、または Education バージョンを実行している必要があります。

コンピューターのハードウェアとソフトウェアが Hyper-V と互換性があることを確認するには、コマンド プロンプトを開き、次のコマンドを入力します。

systeminfo

表示されているすべての Hyper-V 要件の値が [はい] の場合、コンピューターは Hyper-V をサポートできます。 次に例を示します。

Example of systeminfo output when checking Hyper-V support for .NET MAUI.

Hyper-V の結果がハイパーバイザーが現在実行されていることを示す場合、Hyper-V は既に有効になっています。

重要

Windows が仮想マシン内で実行されている場合は、ホスト ハイパーバイザーで入れ子になった仮想化を有効にする必要があります。

Windows で HYPER-V アクセラレーションを有効にする

コンピューターが上記の条件を満たしている場合は、次の手順を実行し、Hyper-V を使用して Android エミュレーターを高速化します。

  1. Windows 検索ボックスに「Windows の機能」を入力し、検索結果で [Windows の機能の有効化または無効化] を選択します。 [Windows の機能] ダイアログで [Hyper-V][Windows ハイパーバイザー プラットフォーム] を有効にします。

    Enabling Hyper-V and Windows Hypervisor Platform for .NET MAUI.

    これらの変更を加えたら、コンピューターを再起動します。

    重要

    Windows 10 の 2018 年 10 月の更新プログラム (RS5) 以降では、Windows ハイパーバイザー プラットフォーム (WHPX) が自動的に使用されるため、Hyper-V のみを有効にする必要があります。

  2. 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、Windows 8、または Windows 7
  • Hyper-V をオフにする必要があります。

Note

Windows のいくつかの機能では、Hyper-V が暗黙的に有効になります。 詳細については、developer.android.com で「Hyper-V を無効にする場合に再確認する」をご覧ください。

Windows で AEHD アクセラレーションを有効にする

コンピューターが上記の条件を満たしている場合は、次の手順を実行し、AEHD を使用して Android Emulator を高速化します。

  1. Visual Studio で、メニューから [ツール] - [Android] - [Android SDK Manager] を選択します。

  2. [Android SDK とツール] ウィンドウで、[ツール] タブを選択します。

  3. [ツール] タブで、[追加]を展開し、Android Emulator ハイパーバイザー ドライバー (インストーラー) 項目のチェックボックスをオンにして、[変更の適用] を選択します。

    Installing AEHD through the Android SDK manager in Visual Studio.

    Note

    または、GitHub から AEHD をダウンロードしてインストールすることもできます。 ドライバー パッケージを解凍した後、管理者特権を使用してコマンド ラインで silent_install.bat を実行します。

  4. Android Device Manager で作成した仮想デバイスが x86-64 または x86 ベースのシステム イメージであることを確認します。 ARM ベースのシステム イメージを使用すると、仮想デバイスは高速化されず、低速で実行されます。

インストール後、次のコマンドを使用して、ドライバーが正しく動作していることを確認します。

sc query aehd

AEHD をインストールして実行すると、高速な Android Emulator を実行できるようになります。

トラブルシューティング

ハードウェア高速化の問題のトラブルシューティングについては、Android エミュレーターのトラブルシューティング ガイドを参照してください。