Android SDKアップデート、Windows/Macでエミュレータが高速に | マイナビニュース
Updated SDK Tools and ADT revision 17 | Android Developers Blog
特に興味を惹かれたのが、
『WindowsおよびMac OS Xにおいてエミュレータが仮想モードでAndroidx86システムイメージをサポートし、Androidが高速に動作するようになった。』という部分。
早速ここに書かれている手順通りにやってみた。
Using the Android Emulator | Android Developers
ただし、Intel VTによる仮想化支援を使うには、次の制限があるとの事。
- ARMベースではなくx86のシステムイメージを使ったエミュレータしか動かせない。
- 仮想化された環境内では動かせない。
- 同一PC上でIntel VTを使う他の仮想化ソフト(VMwareやVirtualBoxなど)と同時に動かす事は出来ない。
- OpenGL ESを使うアプリのパフォーマンスは実機ほどは出ない。
まずは、「Android SDK Manager」でx86のシステムイメージをインストールする。
現時点では、APIレベル10(Android 2.3.3)用のものしか無いみたいだ。
次に、SDK Managerのリストの一番下の方にある「Extras」の中の「Intel Hardware Accelerated Execution Manager」を選択してこれもインストール。
インストール後、コマンドラインから
sc query intelhaxmを実行して、
SERVICE_NAME: intelhaxmと表示されればOK。
...
STATE : 4 RUNNING
...
インストール完了後、AVD作成ダイアログのターゲットに「Intel Atom x86 System Image」が追加された。これを選択してAVDを作成すると、エミュレータ実行時にIntel VTによる仮想化支援機能が使われて動作が速くなるという事らしい。
早速エミュレータを起動してみると...
お、確かにブラウザが一瞬で起動する様になっている。
サンプル「APIDemos」を動かしてみる。
従来のエミュレータだとかなりカクカクしていたOpenGL ESのデモも、上述の様に実機ほどのパフォーマンスは出ないと但し書きはあったものの、x86イメージのエミュレータだとかなりスムーズに動いている。
(上)従来のエミュレータ (約8.5FPS) (下)x86システムイメージを使ったエミュレータ (約27FPS) |
普段からエミュレータ上で開発をしている人にはかなり嬉しい改善になりそうだ!
と思ったのだけれど...、
ここまで書いてから、さてVirtualBoxでいつも使っている仮想マシンを起動しようとしたら、「仮想マシンを起動出来ません...云々」のエラーが出てしまった。。。
「なんださっきインストールしたIntelのHAXMとか言うサービスを止めればいいんでしょ。」と思ってコマンドラインから、
sc stop intelhaxmを実行。サービスが止まっているのを確認してから再度VirtualBoxの起動を試みても、やっぱり同じエラーが出る。検索したらMacでもやはり同じ問題に遭遇している人が居た。
HAXM stops VirtualBox fro ... - Intel® Software NetworkPCを再起動しても同じなので、結局あきらめて「Intel Hardware Accelerated Execution Manager」をアンインストールする事にした。
アンインストール後は無事VirtualBoxの仮想マシンが起動出来たので、このIntelのHAXMサービスが原因だった事は間違いないと思う。
という事で、VirtualBoxとの相性は良くないみたいだ。残念。:-(
.