Tips : Android エミュレータの高速化① ― Intel HAXM
Androidアプリ開発では、どうしても画面サイズを変更したり、デバイスの種類などによる断片化を考慮する必要があります。 仮想マシンによるテスト環境があると便利なのですが、Androidのエミュレータは非常に重いことで有名です。
そんなエミュレータを高速化して使いやすくする方法を2つほど試してみたので、メモしておきます。
Intel HAXM
HAXMはIntel Hardware Accelerated Execution Managerの略で、仮想マシンをCPUの仮想化支援機構などを利用することで高速化する仕組みです。 Intelのx86 Imageでないと使えないので、実質Android 4.0.3以降の仮想マシンで有効です。
HAXMインストーラとIntel x86 Atom System Image
Android SDK Managerから、Intel x86 Emulator Accelerator とIntel x86 Atom System Imageをインストールします。
Extras以下のIntel x86 Emulator Accelerator
をチェック。
利用したいVersionのAndroid SDK以下のIntel x86 Atom System Image
をチェック
インストールが完了すると、<Android SDK Root>/extras/intel/Hardware_Accelerated_Execution_Manager
以下にインストーラがDLされているので、それを実行します。
もし、問題なければそのままWizardに従って完了するだけですが、エラーをする場合はBIOSの設定を変更する必要があります。 VT-xを有効にする、またはIntel Execute Disable Bit (XD)を有効にする必要があるようです。 (自分は前者はひっかかりませんでしたが、後者が引っかかりました。利用しているシステムによっては別のエラーの可能性もあるかも。。。)
システムによって名前が微妙に違ったりするようなので、まずはBIOSに入ってVTとかXDとか書いてある設定項目や説明を探して、Enabled
にしてみるといいと思います。
AVDの実行
インストールが完了したあとは、仮想マシンを実行するだけです。
先ほどSDK ManagerでインストールしたVersionのTargetを選択し、CPU/ABIをIntel Atom (x86)
にします。
そして、実行するだけです。
まとめ
起動時間はそんなに体感変わらないですが、起動後の動作は確かに速くなっています。 AVDを利用する場合はMustで利用するべきかと思います。
個人的には、実機MAXの法則は変わらないと思っていますが、冒頭で触れたように利用したほうが便利なケースも確かに存在しますので、 そういう時は仮想マシンの利用を検討しても良いと思います。
ただ、自分はAVD+HAXMではなくGenymotionを利用しています。それは圧倒的に速いからです。 次回はGenymotionについてメモしておきたいと思います。