仮想マシンアクセラレーションによるエミュレータの高速化
最近のCPUは仮想マシンを走らせるため拡張が組み込まれており、それを利用してAndroidエミュレータを高速化することができる。
詳しくは http://developer.android.com/tools/devices/emulator.html#accel-vm を参照。
先に言っておくが、これを実行してもiPhoneのエミュレータほどは速くならないし、起動もそこまで速くならない。
ただ起動後の動作はこれまでのAndroidエミュレータと比べると大分ましになる。
CPUの要件のどちらかの仮想化技術を保持していることなので、Intel CPUの場合はたいていの場合みたいしているはず。
- Intel Virtualization Technology (VT, VT-x, vmx) extensions
- AMD Virtualization (AMD-V, SVM) extensions (only supported for Linux)
ただしこの方法には4つほど制限がある
- x86 system imageが必要。現時点(2012/07/27)でAndroid SDK Managerで配布されているのは2.3.3(API 10)と4.0.3(API 15)の二種類のみ。
- VMWareやVirtualBoxなどの仮想マシン内では利用できない
- VMWareやVirtualBoxなどのVMドライバとは同時に使用できない
- OpenGLのエミュレーションは実デバイスと同じレベルでは実行できないかもしれない。
インストール手順
- Android SDK ManagerでSDK Toolsをリビジョン18以上にアップデートする。17でもこの機能は動くが、experimentalとなっているので18以上が良いと思う。
- Android SDK ManagerでExtrasにあるIntel Hardware Accelerated Execution Managerをインストールする。Android SDK Managerで落としただけではインストールされないので別途作業が必要。
プラットフォーム毎に違う手順になるのでMacの場合の作業手順を記述する。- Intel Hardware Accelerated Execution Managerが
<sdk>/extras/intel/Hardware_Accelerated_Execution_Manager/IntelHAXM.dmg
にダウンロードされるので実行してインストールする。 - インストール後、
kextstat | grep intel
を実行し、com.intel.kext.intelhaxm
となっていればインストールに成功している。
- Intel Hardware Accelerated Execution Managerが
- Android SDK Managerで動かしたいバージョンのx86 system imageをインストールする。現時点(2012/07/27)では2.3.3(API 10)と4.0.3(API 15)の2バージョンのみ配布されている。
- AVD Managerを立ち上げ、x86 system imageを使ったAVDを作成する。Targetに先ほどインストールしたx86 system imageのバージョンを指定すると、CPU/ABIでx86を選択できるようになるので選択する。ただし、TargetにGoogle APIsを指定するとCPU/ABIでx86 system imageを選択できないので注意。
- 作成したAVDを実行する。ちなみに初回起動は遅い。