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 をサポートできます。 次に例を示します。

.NET MAUI の Hyper-V のサポートを確認したときの systeminfo の出力例。

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

重要

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

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

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

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

    .NET MAUI の Hyper-V と Windows ハイパーバイザー プラットフォームを有効にします。

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

    重要

    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。
  • 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 ハイパーバイザー ドライバー (インストーラー) 項目のチェックボックスをオンにして、[変更の適用] を選択します。

    Visual Studio で Android SDK マネージャーを使用して AEHD をインストールします。

    Note

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

  4. 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 エミュレーターのトラブルシューティング ガイドを参照してください。