エミュレーターのパフォーマンスのためのハードウェア高速化 (Hyper-V と HAXM)Hardware acceleration for emulator performance (Hyper-V & HAXM)

この記事では、お使いのコンピューターのハードウェア高速化機能を利用し、Android Emulator のパフォーマンスを最大化する方法について説明します。This article explains how to use your computer's hardware acceleration features to maximize Android Emulator performance.

Visual Studio で開発すると、Android デバイスが利用できないか、実用的でない状況でも、Android エミュレーターを利用することで Xamarin.Android アプリケーションを簡単にテストしたり、デバッグしたりできます。Visual Studio makes it easier for developers to test and debug their Xamarin.Android applications by using the Android emulator in situations where an Android device is unavailable or impractical. ただし、Android エミュレーターを実行するコンピューターにハードウェア高速化がない場合、エミュレーターの実行速度があまりにも遅くなります。However, the Android emulator runs too slowly if hardware acceleration is not available on the computer that runs it. 特殊な x86 仮想デバイス イメージとコンピューターの仮想化機能を組み合わせることで、Android エミュレーターのパフォーマンスを大幅に向上することができます。You can drastically improve the performance of the Android emulator by using special x86 virtual device images in conjunction with the virtualization features of your computer.

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

Android エミュレーターの高速化には、次の仮想化テクノロジを利用できます。The following virtualization technologies are available for accelerating the Android emulator:

  1. Microsoft の Hyper-V と Hypervisor PlatformMicrosoft's Hyper-V and the Hypervisor Platform. Hyper-V は Windows の仮想化技術の 1 つであり、物理的ホスト コンピューター上で、仮想化されたコンピューター システムを実行できます。Hyper-V is a virtualization feature of Windows that makes it possible to run virtualized computer systems on a physical host computer.

  2. Intel の Hardware Accelerated Execution Manager (HAXM)Intel's Hardware Accelerated Execution Manager (HAXM). HAXM は Intel CPU を実行するコンピューターのための仮想化エンジンです。HAXM is a virtualization engine for computers running Intel CPUs.

最適なパフォーマンスのためには、Hyper-V を使用して Android エミュレーターを高速化することをお勧めします。For optimum performance, it is recommended that you use Hyper-V to accelerate the Android emulator. お使いのコンピューターで Hyper-V を使用できない場合は、HAXM を使用できます。If Hyper-V is not available on your computer, then HAXM can be used. Android エミュレーターは、次の条件が満たされている場合、ハードウェア高速化を自動的に利用します。The Android emulator will automatically make use of hardware acceleration if the following criteria are met:

  • 開発コンピューターにハードウェア高速化機能があり、それが有効になっている。Hardware acceleration is available and enabled on your development computer.

  • x86 ベースの仮想デバイスのために作成されたシステム イメージをエミュレーターが実行している。The emulator is running a system image created for an x86-based virtual device.

重要

VirtualBox、VMWare、Docker などでホストされる別の VM 内では VM による高速エミュレーターを実行できません。You can't run a VM-accelerated emulator inside another VM, such as a VM hosted by VirtualBox, VMWare, or Docker. Android Emulator は、システム ハードウェアで直接実行する必要があります。You must run the Android emulator directly on your system hardware.

Android エミュレーターの起動とデバッグについては、「Android Emulator でのデバッグ」を参照してください。For information about launching and debugging with the Android emulator, see Debugging on the Android Emulator.

Hyper-V による高速化Accelerating with Hyper-V

Hyper-V は、Android エミュレーターを高速化する場合に推奨されます。Hyper-V is the recommended choice for accelerating the Android emulator. Hyper-V を有効にする前に、次のセクションを読み、コンピューターが Hyper-V をサポートしていることを確認してください。Before enabling Hyper-V, read the following section to verify that your computer supports Hyper-V.

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

Hyper-V は Windows ハイパーバイザー プラットフォーム上で動作します。Hyper-V runs on the Windows Hypervisor Platform. Hyper-V と共に Android エミュレーターを使用するには、コンピューターが Windows ハイパーバイザー プラットフォームをサポートするために次の条件を満たしている必要があります。To use the Android emulator with Hyper-V, your computer must meet the following criteria to support the Windows Hypervisor Platform:

  • コンピューター ハードウェアは次の条件を満たしている必要があります。Your computer hardware must meet the following requirements:

    • 第 2 レベルのアドレス変換 (SLAT) を備えた 64 ビット Intel または AMD Ryzen CPU。A 64-bit Intel or AMD Ryzen CPU with Second Level Address Translation (SLAT).
    • VM モニター モード拡張機能 (Intel CPU 上の VT-c) の CPU サポート。CPU support for VM Monitor Mode Extension (VT-c on Intel CPUs).
    • 4 GB 以上のメモリ。Minimum of 4-GB memory.
  • お使いのコンピューターの BIOS で、次の項目を有効にする必要があります。In your computer's BIOS, the following items must be enabled:

    • 仮想化テクノロジ (マザーボードの製造元によって、ラベルが異なる場合があります)。Virtualization Technology (may have a different label depending on motherboard manufacturer).
    • ハードウェアによるデータ実行防止。Hardware Enforced Data Execution Prevention.
  • お使いのコンピューターは、Windows 10 April 2018 更新プログラム (ビルド 1803) 以降に更新する必要があります。Your computer must be updated to Windows 10 April 2018 update (build 1803) or later. Windows のバージョンが最新であることを確認するには、次の手順を実行します。You can verify that your Windows version is up-to-date by using the following steps:

    1. Windows 検索ボックスに「バージョン情報」と入力します。Enter About in the Windows search box.

    2. 検索結果から [PC 情報] を選択します。Select About your PC in the search results.

    3. [バージョン情報] ダイアログ内で下にスクロールし、[Windows の仕様] セクションを表示します。Scroll down in the About dialog to the Windows specifications section.

    4. [バージョン] が 1803 以降であることを確認します。Verify that the Version is at least 1803:

      Windows の仕様Windows specifications

コンピューターのハードウェアとソフトウェアが Hyper-V と互換性があることを確認するには、コマンド プロンプトを開き、次のコマンドを入力します。To verify that your computer hardware and software is compatible with Hyper-V, open a command prompt and type the following command:

systeminfo

表示されているすべての Hyper-V 要件の値が [はい] の場合、コンピューターは Hyper-V をサポートできます。If all listed Hyper-V requirements have a value of Yes, then your computer can support Hyper-V. 例:For example:

systeminfo の出力例Example systeminfo output

Hyper-V の高速化を有効にするEnabling Hyper-V acceleration

コンピューターが上記の条件を満たしている場合は、次の手順を実行し、Hyper-V を使用して Android エミュレーターを高速化します。If your computer meets the above criteria, use the following steps to accelerate the Android emulator with Hyper-V:

  1. Windows 検索ボックスに「Windows の機能」を入力し、検索結果で [Windows の機能の有効化または無効化] を選択します。Enter windows features in the Windows search box and select Turn Windows features on or off in the search results. [Windows の機能] ダイアログで [Hyper-V][Windows ハイパーバイザー プラットフォーム] を有効にします。In the Windows Features dialog, enable both Hyper-V and Windows Hypervisor Platform:

    Hyper-V と Windows ハイパーバイザー プラットフォームを有効にするEnabling Hyper-V and Windows Hypervisor Platform

    これらの変更を加えたら、コンピューターを再起動します。After making these changes, reboot your computer.

  2. Visual Studio 15.8 以降をインストールします (このバージョンの Visual Studio には Hyper-V で Android エミュレーターを実行するための IDE が用意されています)。Install Visual Studio 15.8 or later (this version of Visual Studio provides IDE support for running the Android emulator with Hyper-V).

  3. Android Emulator パッケージ 27.2.7 以降をインストールしますInstall the Android Emulator package 27.2.7 or later. このパッケージをインストールするには、Visual Studio で [ツール]、[Android]、[Android SDK Manager] の順に移動します。To install this package, navigate to Tools > Android > Android SDK Manager in Visual Studio. [ツール] タブを選択し、Android エミュレーターのバージョンが確実に 27.2.7 以降であるようにします。Select the Tools tab and ensure that the Android emulator version is at least 27.2.7. また、Android SDK Tools バージョンが 26.1.1 以降であることを確認します。Also ensure that the Android SDK Tools version is 26.1.1 or later:

    [Android SDK とツール] ダイアログAndroid SDKs and Tools dialog

仮想デバイスを作成する (「Android Device Manager による仮想デバイスの管理」を参照) ときに、必ず x86 ベースのイメージを選択してください。When you create a virtual device (see Managing Virtual Devices with the Android Device Manager), be sure to select an x86-based system image. ARM ベースのシステム イメージを使用すると、仮想デバイスは高速化されず、低速で実行されます。If you use an ARM-based system image, the virtual device will not be accelerated and will run slowly.

HAXM による高速化Accelerating with HAXM

お使いのコンピューターが Hyper-V をサポートしていない場合は、HAXM を使用して Android エミュレーターを高速化します。Use HAXM to accelerate the Android emulator if your computer does not support Hyper-V. HAXM を使用する場合は、Device Guard を無効にする必要があります。You must disable Device Guard if you want to use HAXM.

HAXM のサポートを確認するVerifying HAXM support

お使いのハードウェアが HAXM をサポートしているかどうかを判断するには、「Does My Processor Support Intel Virtualization Technology?」(このプロセッサは Intel 仮想化テクノロジをサポートしていますか?) の手順に従ってください。To determine if your hardware supports HAXM, follow the steps in Does My Processor Support Intel Virtualization Technology?. ハードウェアが HAXM をサポートしている場合は、次の手順を使用して HAXM が既にインストールされているかどうかを確認できます。If your hardware supports HAXM, you can check to see if HAXM is already installed by using the following steps:

  1. コマンド プロンプト ウィンドウを開き、次のコマンドを入力します。Open a command prompt window and enter the following command:

    sc query intelhaxm
    
  2. 出力で、HAXM プロセッサが実行されているかどうかを確認します。Examine the output to see if the HAXM process is running. この場合、出力に intelhaxm の状態は RUNNING と表示されます。if it is, you should see output listing the intelhaxm state as RUNNING. 例:For example:

    HAXM を使用できる場合の sc クエリ コマンドの出力

    STATERUNNING に設定されていない場合、HAXM はインストールされていません。If STATE is not set to RUNNING, then HAXM is not installed.

HAXM をサポートするコンピューターで、HAXM がインストールされていない場合は、次のセクションの手順に従って HAXM をインストールします。If your computer can support HAXM but HAXM is not installed, use the steps in the next section to install HAXM.

HAXM のインストールInstalling HAXM

Windows 版の HAXM インストール パッケージは、どちらも「Intel Hardware Accelerated Execution Manager」ページから入手できます。HAXM install packages for Windows are available from the Intel Hardware Accelerated Execution Manager page. 次の手順に従って、HAXM をダウンロードしてインストールします。Use the following steps to download and install HAXM:

  1. Intel の Web サイトから Windows 版の最新の HAXM 仮想化エンジンのインストーラーをダウンロードします。From the Intel website, download the latest HAXM virtualization engine installer for Windows. Intel の Web サイトから直接 HAXM インストーラーをダウンロードする利点は、確実に最新バージョンを使用できることです。The advantage of downloading the HAXM installer directly from the Intel website is that you can be assured of using the latest version.

  2. intelhaxm android.exe を実行して、HAXM インストーラーを起動します。Run intelhaxm-android.exe to start the HAXM installer. インストーラーのダイアログの既定値をそのまま使用します。Accept the default values in the installer dialogs:

    Intel Hardware Accelerated Execution Manager のセットアップ ウィンドウ

仮想デバイスを作成する (「Android Device Manager による仮想デバイスの管理」を参照) ときに、必ず x86 ベースのイメージを選択してください。When you create a virtual device (see Managing Virtual Devices with the Android Device Manager), be sure to select an x86-based system image. ARM ベースのシステム イメージを使用すると、仮想デバイスは高速化されず、低速で実行されます。If you use an ARM-based system image, the virtual device will not be accelerated and will run slowly.

トラブルシューティングTroubleshooting

ハードウェア高速化の問題のトラブルシューティングについては、Android エミュレーターのトラブルシューティング ガイドを参照してください。For help with troubleshooting hardware acceleration issues, see the Android emulator Troubleshooting guide.

macOS 上での Android エミュレーターの高速化Accelerating Android emulators on macOS

Android エミュレーターの高速化には、次の仮想化テクノロジを利用できます。The following virtualization technologies are available for accelerating the Android emulator:

  1. Apple の Hypervisor フレームワークApple's Hypervisor Framework. Hypervisor は、Mac 上で仮想マシンを実行できるようにする macOS 10.10 以降の機能です。Hypervisor is a feature of macOS 10.10 and later that makes it possible to run virtual machines on a Mac.

  2. Intel の Hardware Accelerated Execution Manager (HAXM)Intel's Hardware Accelerated Execution Manager (HAXM). HAXM は Intel CPU を実行するコンピューターのための仮想化エンジンです。HAXM is a virtualization engine for computers running Intel CPUs.

最適なパフォーマンスのためには、Hypervisor フレームワークを使用して Android エミュレーターを高速化することをお勧めします。For optimum performance, it is recommended that you use the Hypervisor Framework to accelerate the Android emulator. お使いの Mac 上で Hypervisor フレームワークを使用できない場合は、HAXM を使用できます。If the Hypervisor Framework is not available on your Mac, then HAXM can be used. Android エミュレーターは、次の条件が満たされている場合、ハードウェア高速化を自動的に利用します。The Android emulator will automatically make use of hardware acceleration if the following criteria are met:

  • 開発コンピューターにハードウェア高速化機能があり、それが有効になっている。Hardware acceleration is available and enabled on the development computer.

  • x86 ベースの仮想デバイスのために作成されたシステム イメージをエミュレーターが実行している。The emulator is running a system image created for an x86-based virtual device.

重要

VirtualBox、VMWare、Docker などでホストされる別の VM 内では VM による高速エミュレーターを実行できません。You can't run a VM-accelerated emulator inside another VM, such as a VM hosted by VirtualBox, VMWare, or Docker. Android Emulator は、システム ハードウェアで直接実行する必要があります。You must run the Android emulator directly on your system hardware.

Android エミュレーターの起動とデバッグについては、「Android Emulator でのデバッグ」を参照してください。For information about launching and debugging with the Android emulator, see Debugging on the Android Emulator.

Hypervisor フレームワークによる高速化Accelerating with the Hypervisor Framework

Hypervisor フレームワークで Android エミュレーターを使用するには、Mac が次の条件を満たしている必要があります。To use the Android emulator with the Hypervisor Framework, your Mac must meet the following criteria:

  • Mac が macOS 10.10 以降を実行している必要がある。Your Mac must be running macOS 10.10 or later.

  • Mac の CPU が Hypervisor フレームワークをサポートできる必要がある。Your Mac's CPU must be able to support the Hypervisor Framework.

お使いの Mac がこれらの条件を満たしている場合、(HAXM がインストールされている場合でも) Android エミュレーターは高速化に Hypervisor フレームワークを自動的に使用します。If your Mac meets these criteria, the Android emulator will automatically use the Hypervisor Framework for acceleration (even if HAXM is installed). Hypervisor フレームワークがお使いの Mac でサポートされているかどうか不明な場合は、トラブルシューティング ガイドで Mac が Hypervisor をサポートしていることを確認する方法を参照してください。If you are not sure if Hypervisor Framework is supported on your Mac, see the Troubleshooting guide for ways to verify that your Mac supports Hypervisor.

Hypervisor フレームワークがお使いの Mac でサポートされていない場合は、Android エミュレーターの高速化に HAXM を使用できます (次に説明します)。If the Hypervisor Framework is not supported by your Mac, you can use HAXM to accelerate the Android emulator (described next).

HAXM による高速化Accelerating with HAXM

お使いの Mac が Hypervisor フレームワークをサポートしていない (または 10.10 より前のバージョンの macOS を使用している) 場合は、Intel の Hardware Accelerated Execution Manager (HAXM) を使用して Android エミュレーターを高速化できます。If your Mac does not support the Hypervisor framework (or you are using a version of macOS earlier than 10.10), you can use Intel's Hardware Accelerated Execution Manager (HAXM) to speed up the Android emulator.

初めて HAXM で Android エミュレーターを使用する場合は、HAXM がインストールされ、Android エミュレーターを使用できることを事前に確認することをお勧めします。Before using the Android emulator with HAXM for the first time, it's a good idea to verify that HAXM is installed and available for the Android emulator to use.

HAXM のサポートを確認するVerifying HAXM support

次の手順を使用して HAXM が既にインストールされているかどうかを確認できます。You can check to see if HAXM is already installed by using the following steps:

  1. ターミナルを開き、次のコマンドを入力します。Open a Terminal and enter the following command:

    ~/Library/Developer/Xamarin/android-sdk-macosx/tools/emulator -accel-check
    

    このコマンドでは、Android SDK が既定の場所 (~/Library/Developer/Xamarin/android-sdk-macosx) にインストールされていることを前提としています。そうでない場合は、上記のパスをお使いの Mac 上にある Android SDK の場所に変更します。This command assumes that the Android SDK is installed at the default location of ~/Library/Developer/Xamarin/android-sdk-macosx; if not, modify the above path for the location of the Android SDK on your Mac.

  2. HAXM がインストールされている場合、上記のコマンドで次の結果のようなメッセージが返されます。If HAXM is installed, the above command will return a message similar to the following result:

    HAXM version 7.2.0 (3) is installed and usable.
    

    HAXM がインストールされていない場合、次の出力のようなメッセージが返されます。If HAXM is not installed, a message similar to the following output is returned:

    HAXM is not installed on this machine (/dev/HAX is missing).
    

HAXM がインストールされていない場合は、次のセクションの手順を使用して、HAXM をインストールします。If HAXM is not installed, use the steps in the next section to install HAXM.

HAXM のインストールInstalling HAXM

macOS 版の HAXM インストール パッケージは、どちらも「Intel Hardware Accelerated Execution Manager」ページから入手できます。HAXM installation packages for macOS are available from the Intel Hardware Accelerated Execution Manager page. 次の手順に従って、HAXM をダウンロードしてインストールします。Use the following steps to download and install HAXM:

  1. Intel の Web サイトから macOS 版の最新の HAXM 仮想化エンジンのインストーラーをダウンロードします。From the Intel website, download the latest HAXM virtualization engine installer for macOS.

  2. HAXM インストーラーを実行します。Run the HAXM installer. インストーラーのダイアログの既定値をそのまま使用します。Accept the default values in the installer dialogs:

    Intel Hardware Accelerated Execution Manager のセットアップ ウィンドウIntel Hardware Accelerated Execution Manager Setup window

トラブルシューティングTroubleshooting

ハードウェア高速化の問題のトラブルシューティングについては、Android エミュレーターのトラブルシューティング ガイドを参照してください。For help with troubleshooting hardware acceleration issues, see the Android emulator Troubleshooting guide.