Google は、黒人コミュニティに対する人種平等の促進に取り組んでいます。取り組みを見る

Android Emulator のハードウェア アクセラレーションを設定する

Android Emulator はハードウェア アクセラレーション機能を使用して、パフォーマンスを大幅に向上させることができます。このページでは、グラフィック アクセラレーションと仮想マシン(VM)アクセラレーションを設定して、エミュレータから高いパフォーマンスを引き出す方法について説明します。

グラフィック アクセラレーションを設定する

グラフィック アクセラレーションでは、コンピュータのハードウェア(通常は GPU)を使用して、画面のレンダリングを高速化します。Android デバイスは、OpenGL for Embedded Systems(OpenGL ES または GLES)を使用して、画面上に 2D グラフィックと 3D グラフィックの両方をレンダリングします。

AVD Manager で Android 仮想デバイス(AVD)を作成するとき、エミュレータでハードウェアかソフトウェアのどちらを使用して AVD の GPU をエミュレートするかを指定できます。通常はより高速であるハードウェア アクセラレーションをおすすめします。ただし、コンピュータでエミュレータと互換性のないグラフィック ドライバを使用している場合は、ソフトウェア アクセラレーションを使用する必要があります。

デフォルトでは、エミュレータは、コンピュータの設定に基づいて、ハードウェアかソフトウェアのいずれのグラフィック アクセラレーションを使用するかを決定します。GPU ハードウェアとドライバに互換性がある場合、エミュレータは GPU を使用します。互換性がない場合、エミュレータはソフトウェア アクセラレーション(つまり、コンピュータの CPU)を使用して GPU 処理をシミュレートします。

コマンドラインからエミュレータを起動する場合、その仮想デバイス インスタンスに対する AVD のグラフィック アクセラレーション設定をオーバーライドすることもできます。

要件

グラフィック アクセラレーションを使用するには、開発環境で次の要件を満たす必要があります。

  • SDK Tools: 最新リリースが推奨されます(バージョン 17 以降)
  • SDK Platform: 最新リリースが推奨されます(Android 4.0.3 リビジョン 3 以降)

AVD Manager でグラフィック アクセラレーションを設定する

AVD のグラフィック アクセラレーションを設定するには、次の手順を行います。

  1. AVD Manager を開きます。
  2. 新しい AVD を作成するか、既存の AVD を編集します
  3. [Verify Configuration] ページで、[Emulated Performance] セクションを見つけます。
  4. [Graphics] オプションの値を選択します。
  5. [Finish] をクリックします。

コマンドラインからグラフィック アクセラレーションを設定する

コマンドラインから AVD を実行するときにグラフィック アクセラレーション タイプを指定するには、次の例に示すように、-gpu オプションを指定します。

emulator -avd avd_name -gpu mode [{-option [value]} ... ]

mode は、次のオプションのいずれかの値に設定できます。

  • auto: コンピュータの設定に基づいて、ハードウェアまたはソフトウェアのグラフィック アクセラレーションがエミュレータにより選択されます。
  • host: ハードウェア アクセラレーションにコンピュータの GPU を使用します。これは通常、エミュレータで最高のグラフィック品質とパフォーマンスを実現するオプションです。ただし、グラフィック ドライバで OpenGL のレンダリングに問題が発生する場合は、swiftshader_indirect または angle_indirect オプションを使用しなければならないことがあります。
  • swiftshader_indirect: クイックブートと互換性のあるバリアントの SwiftShader を使用して、ソフトウェア アクセラレーションでグラフィックをレンダリングします。このオプションは、コンピュータでハードウェア アクセラレーションを使用できない場合、host モードの代替として使用できる優れたオプションです。
  • angle_indirect: (Windows のみ)クイックブートと互換性のあるバリアントの ANGLE Direct3D を使用して、ソフトウェア アクセラレーションでグラフィックをレンダリングします。このオプションは、コンピュータでハードウェア アクセラレーションを使用できない場合、host モードの代替として使用できる優れたオプションです。ANGLE は OpenGL の代わりに Microsoft DirectX を使用するため、ほとんどの場合、ANGLE のパフォーマンスは host モードを使用した場合と同様です。Windows では、ほとんどのケースで Microsoft DirectX ドライバのほうが OpenGL ドライバよりも問題が発生しません。このオプションは Direct3D 11 を使用するため、Windows 10、Windows 8.1、または Windows 7 Platform Update をインストールした Windows 7 SP1 が必要です。
  • guest: ゲスト側のソフトウェア レンダリングを使用します。このオプションの場合、エミュレータのグラフィック品質とパフォーマンスが最も低くなります。

次の mode オプションのサポートは終了しています。

  • swiftshader: バージョン 27.0.2 でサポートが終了しました。代わりに swiftshader_indirect を使用してください。
  • angle: バージョン 27.0.2 でサポートが終了しました。代わりに angle_indirect を使用してください(Windows のみ)。
  • mesa: バージョン 25.3 でサポートが終了しました。代わりに swiftshader_indirect を使用してください

Android UI に対して Skia レンダリングを有効にする

API レベル 27 以降のイメージを使用する場合、エミュレータで Skia を使用して Android UI をレンダリングできます。これにより、エミュレータでよりスムーズかつ効率的にグラフィックがレンダリングされます。

Skia レンダリングを有効にするには、adb シェルで次のコマンドを使用します。

su
setprop debug.hwui.renderer skiagl
stop
start

VM アクセラレーションを設定する

VM アクセラレーションは、コンピュータのプロセッサを使用して、エミュレータの実行速度を大幅に向上させます。ハイパーバイザと呼ばれるツールは、コンピュータのプロセッサが提供する仮想化拡張機能を使用してこの操作を管理します。このセクションでは、VM アクセラレーションを使用するための要件の概要と、各オペレーティング システムで VM アクセラレーションを設定する方法について説明します。

全般的な要件

エミュレータで VM アクセラレーションを使用するには、このセクションに記載されている全般的な要件を満たすコンピュータが必要です。コンピュータは、それ以外にもオペレーティング システムに固有の要件も満たしている必要があります。

開発環境の要件

VM アクセラレーションを使用するには、開発環境で次の要件を満たす必要があります。

  • SDK Tools: バージョン 17 以降。推奨バージョンは 26.1.1 以降
  • x86 ベースのシステム イメージを使用する AVD。Android 2.3.3(API レベル 10)以降で利用可能

仮想化拡張機能の要件

開発環境の要件に加えて、コンピュータのプロセッサは、次の仮想化拡張テクノロジーのいずれかをサポートする必要があります。

  • Intel Virtualization Technology(VT、VT-x、vmx)拡張機能
  • AMD Virtualization(AMD-V、SVM)拡張機能

最新のプロセッサのほとんどは、上記の仮想化拡張機能をサポートしています。プロセッサが拡張機能をサポートしているかどうかわからない場合は、メーカーのサイトでプロセッサの仕様をご確認ください。プロセッサが上記拡張機能のいずれもサポートしていない場合は、VM アクセラレーションを使用できません。

制限

VM アクセラレーションには次の制限があります。

  • VirtualBox、VMWare、Docker でホストされている VM など、異なる VM 内では、VM アクセラレーションを使用するエミュレータを実行することはできません。VM アクセラレーションを使用するエミュレータは、ホスト コンピュータで直接実行する必要があります。
  • 一部のオペレーティング システムとハイパーバイザでは、VM アクセラレーションを使用するエミュレータと、別の仮想化テクノロジーを使用するソフトウェアを同時に実行することはできません。たとえば、VirtualBox、VMWare、Docker では現在異なる仮想化テクノロジーが使用されており、これらのソフトウェアと、アクセラレーションを使用するエミュレータを同時に実行することはできません。

ハイパーバイザについて

VM アクセラレーションにはハイパーバイザが必要です。

ハイパーバイザと VM アクセラレーションを使用できない場合、エミュレータはホスト コンピュータのアーキテクチャに適合するように、VM ブロックのマシンコードをブロックごとに変換する必要があります。この処理は非常に遅くなる可能性があります。ハイパーバイザを使用すると、VM とホスト コンピュータのアーキテクチャが一致するため、エミュレータはハイパーバイザを使用してホスト プロセッサでコードを直接実行できます。この改善により、エミュレータの速度とパフォーマンスの両方が大幅に向上します。

最適なハイパーバイザは、コンピュータのオペレーティング システムと設定によって異なります。詳細については、次のセクションのいずれかをご覧ください。

ハイパーバイザがインストールされているかどうかを確認する

エミュレータの -accel-check コマンドライン オプションを使用して、ハイパーバイザが現在コンピュータにインストールされているかどうかを確認できます。

次の例は、エミュレータの accel-check オプションの使用方法を示しています。各例において、sdk は Android SDK の場所を示します。

Windows:

c:\Users\janedoe\AppData\Local\Android> sdk\emulator\emulator -accel-check
accel:
0
HAXM version 7.3.2 (4) is installed and usable.
accel

macOS:

janedoe:~/Android$ ./sdk/emulator/emulator -accel-check
accel:
0
HAXM version 7.3.2 (4) is installed and usable.
accel

Linux:

janedoe-macbookpro:Android janedoe$ ./sdk/emulator/emulator -accel-check
accel:
0
KVM (version 12) is installed and usable.

Windows で VM アクセラレーションを設定する

Windows 上の VM アクセラレーションでは、Intel Hardware Accelerated Execution Manager(HAXM)、Android Emulator Hypervisor Driver for AMD Processors、Windows Hypervisor Platform(WHPX)の 3 つのハイパーバイザのいずれかを使用できます。

Windows でハイパーバイザを選択する

次の条件を使用して、使用するハイパーバイザを決定します。

条件 ハイパーバイザ
Intel プロセッサが搭載されており、Android Emulator と同時に Hyper-V を実行する必要がない Intel HAXM を使用します。
Intel プロセッサが搭載されており、Android Emulator と同時に Hyper-V を実行する必要がある WHPX を使用します。
AMD プロセッサが搭載されており、Android Emulator と同時に Hyper-V を実行する必要がない Android Emulator Hypervisor Driver for AMD Processors を使用します。
AMD プロセッサが搭載されており、Android Emulator と同時に Hyper-V を実行する必要がある WHPX を使用します。

Hyper-V を無効にする場合に再確認する

Intel HAXM または Android Emulator Hypervisor Driver for AMD Processors を使用するには、Hyper-V を無効にする必要があります。しかし、[Windows の機能] ダイアログで [Hyper-V] チェックボックスをオフにしても、Hyper-V が無効になるとは限りません。Windows 10 のかなり多くの機能で、Hyper-V は暗黙的に有効になります。いずれかの機能を有効にした場合に Hyper-V も有効になることが、ユーザーからは認識できない可能性があります。

わかっている限りでは、これらの機能として、Virtual Machine PlatformWindows Hypervisor PlatformWindows SandboxCore IsolationCredential Guard が挙げられます。また、Windows Subsystem for Linux バージョン 2 には Virtual Machine Platform が必要です。つまり、Hyper-V が暗黙的に必要になります。このリストはすべてを網羅したものではないため、ここに含めるべき項目を見つけた場合は、Google のバグトラッカーでお知らせください。

Hyper-V を無効にするときは、上記の機能も無効になっていることを再確認してください。各機能を無効にする方法については、Microsoft のドキュメントと下記の例を参照してください。

一部のプラットフォームでは、Hyper-V をオフに切り替えても、すぐに無効にならないことがあります。この状況が起きた場合、Windows OS からエラーは返されず、[Windows の機能] ダイアログでは Hyper-V は無効になっていると表示されます。この状況が発生した場合は、Microsoft の問題トラッカーでバグを報告してください。

Windows で Intel HAXM を使用する VM アクセラレーションを設定する

Intel HAXM をインストールして使用するには、コンピュータが次の要件を満たしている必要があります。

  • Virtualization Technology(VT-x)、Intel EM64T(Intel 64)機能、Execute Disable(XD)ビット機能が有効な Intel プロセッサ
  • 64 ビット Windows 10、Windows 8、または Windows 7(または 64 ビット プロセッサを使用する 32 ビット バージョンのオペレーティング システム)
  • Windows 10 または 8 で Intel HAXM を使用するには、[Windows の機能] ダイアログで Hyper-V をオフにする必要があります。
    注: 特定のソフトウェアをインストールすると、Hyper-V が再びオンになる場合があります。詳しくは、Hyper-V を無効にする場合についての説明をご覧ください。

Intel HAXM ドライバをインストールするには、次の手順を行います。

  1. SDK Manager を開きます。
  2. [SDK Update Sites] タブをクリックし、[Intel HAXM] を選択します。
  3. [OK] をクリックします。
  4. ダウンロードが完了したら、インストーラを実行します。 通常、インストーラは次の場所にあります。 sdk\extras\intel\Hardware_Accelerated_Execution_Manager\intelhaxm-android.exe
  5. ウィザードを使用してインストールを完了します。
  6. Intel HAXM のインストール後、[Command Prompt] ウィンドウで次のコマンドを入力して、仮想化ドライバが正しく動作していることを確認します。

    sc query intelhaxm
    

    次の情報を含むステータス メッセージが表示されます。

    SERVICE_NAME: intelhaxm
           ...
           STATE              : 4  RUNNING
           ...
    

詳細については、Windows での Intel HAXM のインストール手順をご覧ください。

インストーラを再度実行することにより、Intel HAXM カーネル拡張機能で使用可能なメモリ量を調整できます。

Intel HAXM をアンインストールするには、インストーラまたは Windows コントロール パネルを使用します。Intel HAXM をアンインストールする場合は、現在実行中の x86 エミュレータをすべてシャットダウンします。

Windows で Android Emulator Hypervisor Driver for AMD Processors を使用する VM アクセラレーションを設定する

Android Emulator Hypervisor Driver for AMD Processors をインストールして使用するには、コンピュータが次の要件を満たしている必要があります。

  • Secure Virtual Machine(SVM)テクノロジーを搭載した AMD プロセッサ
  • 64 ビット Windows 10、Windows 8、または Windows 7(32 ビット Windows はサポートされません)
  • Windows 10 または 8 で Android Emulator Hypervisor Driver for AMD Processors を使用するには、[Windows の機能] ダイアログで Hyper-V をオフにする必要があります。
    注: 特定のソフトウェアをインストールすると、Hyper-V が再びオンになる場合があります。詳しくは、Hyper-V を無効にする場合についての説明をご覧ください。

Android Emulator Hypervisor Driver for AMD Processors は、Android Studio 4.0 Canary 5 以降の SDK Manager から、または GitHub からインストールできます(下記を参照)。SDK Manager からインストールするには、次の手順を行います。

  1. [Tools] -> [SDK Manager] を開きます。
  2. [SDK Tools] タブをクリックし、[Android Emulator Hypervisor Driver for AMD Processors] を選択します。
  3. [OK] をクリックし、Android Emulator Hypervisor Driver for AMD Processors をダウンロードしてインストールします。
  4. インストール後、コマンド プロンプト ウィンドウで次のコマンドを入力して、ドライバが正しく動作していることを確認します。

    sc query gvm
    

    次の情報を含むステータス メッセージが表示されます。

    SERVICE_NAME: gvm
           ...
           STATE              : 4  RUNNING
           ...
    

    次のエラー メッセージが表示された場合は、BIOS で SVM が有効になっていない、または、Hyper-V が無効になっていないことを意味します(Hyper-V を無効にするをご覧ください)。

    SERVICE_NAME: gvm
           ...
           STATE              : 1  STOPPED
           WIN32_EXIT_CODE    : 4294967201 (0xffffffa1)
           ...
    

Android Emulator Hypervisor Driver for AMD Processors は GitHub からダウンロードしてインストールすることもできます。ドライバ パッケージを解凍した後、管理者権限によりコマンド プロンプトで「silent_install.bat」を実行します。新しいインストールが正常に完了すると、次の出力が表示されます。

インストールをアップグレードすると、古いドライバのアンインストールに関するメッセージを含む次の出力が表示されます。

管理者権限によりコマンド プロンプトで次のコマンドを使用して、Android Emulator Hypervisor Driver for AMD Processors をアンインストールできます。

   sc stop gvm
   sc delete gvm

: Android Emulator Hypervisor Driver for AMD Processors をアンインストールする前に、x86 エミュレータをシャットダウンしてください。

Windows Hypervisor Platform を使用する VM アクセラレーションを設定する

WHPX を有効にするには、コンピュータが次の要件を満たしている必要があります。

  • Intel プロセッサ: Virtualization Technology(VT-x)、Extended Page Tables(EPT)、Unrestricted Guest(UG)機能のサポート。コンピュータ BIOS 設定で VT-x を有効にする必要があります。
  • AMD プロセッサ: MD Ryzen プロセッサが推奨されます。コンピュータの BIOS 設定で仮想化または SVM を有効にする必要があります。
  • Android Studio 3.2 Beta 1 以降(developer.android.com からダウンロード)
  • Android Emulator バージョン 27.3.8 以降(SDK Manager を使用してダウンロード)
  • April 2018 Update 以降の更新プログラムを適用した Windows 10

Windows に WHPX をインストールするには、次の手順を行います。

  1. Windows デスクトップで、Windows アイコンを右クリックし、[アプリと機能] を選択します。
  2. [関連設定] で、[プログラムと機能] をクリックします。
  3. [Windows の機能の有効化または無効化] をクリックします。
  4. [Windows Hypervisor Platform] を選択します。

  5. [OK] をクリックします。

  6. インストールが完了したら、コンピュータを再起動します。

macOS で VM アクセラレーションを設定する

Mac OS X v10.10 Yosemite 以降では、Android Emulator は組み込みの Hypervisor.Framework をデフォルトで使用し、Hypervisor.Framework の初期化に失敗した場合は Intel HAXM を使用するようフォールバックします。

Hypervisor.Framework を使用できない場合、macOS で VM アクセラレーションを使用するには、Intel HAXM カーネル拡張機能をインストールする必要があります。

Intel HAXM カーネル拡張機能をインストールするには、次の手順を行います。

  1. SDK Manager を開きます。
  2. [SDK Update Sites] タブをクリックし、[Intel HAXM] を選択します。
  3. [OK] をクリックします。
  4. ダウンロードが完了したら、インストーラを実行します。 通常、インストーラは次の場所にあります。 sdk/extras/intel/Hardware_Accelerated_ExecutionManager/IntelHAXMversion.dmg
  5. 画面に表示される手順でインストールを実行します。
  6. インストールが完了したら、ターミナル ウィンドウを開き、次のコマンドを実行して、新しいカーネル拡張機能が正しく動作していることを確認します。

    kextstat | grep intel
    

    次のように拡張名を含むステータス メッセージが表示されます。このメッセージは、カーネル拡張機能が読み込まれていることを示しています。

    com.intel.kext.intelhaxm
    

詳細については、Intel HAXM のインストール手順をご覧ください。

インストーラを再度実行することにより、Intel HAXM カーネル拡張機能で使用可能なメモリ量を調整できます。

Intel HAXM カーネル拡張機能の使用を停止するには、Intel HAXM カーネル拡張機能をアンインストールします。アンインストールするには、現在実行中の x86 エミュレータをシャットダウンしてから、ターミナル ウィンドウで次のコマンドを実行します。

sudo /System/Library/Extensions/intelhaxm.kext/Contents/Resources/uninstall.sh

Linux で VM アクセラレーションを設定する

Linux ベースのシステムは、KVM ソフトウェア パッケージを介して VM アクセラレーションをサポートしています。 Linux システムに KVM をインストールする手順を行い、KVM が有効になっていることを確認します。Ubuntu システムについては、Ubuntu KVM のインストールの説明をご覧ください。

要件

KVM を実行するには、特定のユーザー権限が必要です。KVM のインストール手順で指定されている十分な権限があることを確認してください。

Linux で VM アクセラレーションを使用するには、コンピュータが次の要件も満たしている必要があります。

  • Intel プロセッサの場合: Virtualization Technology(VT-x)、Intel EM64T(Intel 64)機能、Execute Disable(XD)ビット機能をサポートしている
  • AMD プロセッサの場合: AMD Virtualization(AMD-V)をサポートしている

KVM が現在 Linux にインストールされているかどうかを確認する

エミュレータの -accel-check コマンドライン オプションを使用して、KVM がインストールされているかどうかを確認できます。または、kvm-ok コマンドを含む cpu-checker パッケージをインストールできます。

次の例では、kvm-ok コマンドの使用方法を示します。

$ sudo apt-get install cpu-checker
$ egrep -c '(vmx|svm)' /proc/cpuinfo
12
$ kvm-ok
INFO: /dev/kvm exists
KVM acceleration can be used

Linux に KVM をインストールする

次のコマンドを使用して、KVM をインストールします。

sudo apt-get install qemu-kvm libvirt-bin ubuntu-vm-builder bridge-utils ia32-libs-multiarch