【番外編】Androidの爆速エミュレータ環境を構築する | Developers.IO
のブログを見て、爆速エミュレータ on Linuxを試してみた。
Android SDK Managerで確認すると、Linuxの場合、残念ながら↓のように「Not compatible with Linux」となってて、HAXMがインストールできないようになってる。
なので、↓に従って環境構築してみた。
KVMのインストール
エミュレータはhypervisorを使って爆速を実現してるみたいなので、まずhypervisorとしてKVMをインストールする。Ubuntu環境なのでKVM/Installation - Community Help Wikiを参考にしつつインストール。
まず↓のコマンドでプロセッサがサポートされてるかどうか確認する。この値が0だったらそのCPUはサポートされてない。
$ egrep -c '(vmx|svm)' /proc/cpuinfo 4
続いて、cpu-checkerをインストールしてKVMが利用可能か確認する。
$ sudo apt-get install cpu-checker $ kvm-ok INFO: /dev/kvm exists KVM acceleration can be used
kvm-okの結果、どうやらKVMは利用可能なことが確認できる。BIOSの設定でVirtualization Technologyの設定がDisabledになってる場合もあるので、その場合はBIOSのVirtualization Technologyの設定をEnabledすれば良い。
続いてKVMのインストールのため↓のパッケージをインストール
$ sudo apt-get install qemu-kvm libvirt-bin ubuntu-vm-builder bridge-utils
続いて、kvm、libvirtグループに自分のユーザを登録する。
$ sudo adduser ユーザアカウント kvm $ sudo adduser ユーザアカウント libvirt
グループへの登録が終わったら、一度ログインしなおす。
続いてインストールの検証。
$ sudo virsh -c qemu:///system list Id 名前 状態 ----------------------------------
↑のコマンド叩いて↑の結果が表示されたらOKみたい。
エミュレータの起動
↑までで環境はできたのでエミュレータで起動してみる。まずはx86用のAVDを作成する。
$ android create avd -n android-4.0-x86 -t 1 --abi x86
-nはAVD名なので好きな名称を、-tはターゲットIDを指定、--abiでx86を指定する。
※--abiを指定しなかった場合armになるので要注意。
あと、Android SDKのtools/libのパスをLD_LIBRARY_PATHに追加しとかないとlibOpenglRender.soが無いって怒られるので追加する。
$ export LD_LIBRARY_PATH=$ANDROID_SDK_HOME/tools/lib:$LD_LIBRARY_PATH
で、いよいよエミュレータを起動。-enable-kvmでKVMを利用可能にする。
$ emulator-x86 -avd android-4.0-x86 -qemu -m 1024 -enable-kvm
無事、エミュレータが起動する。
でも、Android SDK ManagerでHAXMがNot compatibleになってるのは何でなんだろ?KVMのインストール状況とかに依存するから?