Androidエミュレータ(AVD)を劇的に高速化する方法 ― Intel x86イメージとHAXMの設定ガイド
Androidアプリの開発をしている方なら、このチュートリアルはきっと役に立つはずです。本記事では、Android SDKとOS側の設定を最適化し、Android Virtual Devices(略してAVD)を高速かつ快適に動作させる方法を解説します。開発中はAVDの起動やデバッグを何度も繰り返すことになるため、動作速度の改善は作業時間の大幅な短縮に直結します。
ひとつだけ注意点があります。このガイドの内容は、Windows環境・Intelアーキテクチャを前提に検証・執筆されています。LinuxやAMDプロセッサをお使いの場合は、後編の記事をお待ちいただければ幸いです。それでは始めましょう。
Intel x86 Atomシステムイメージを入手する
まず必要なのは、x86用のシステムイメージを入手することです。手動でダウンロードすることもできますが、やや面倒なので、Android SDK Manager経由で取得するのが合理的でしょう。当然ながら、事前にAndroid SDKのセットアップと、適切なバージョンのJavaのインストールが必要です。
SDK Managerを開き、自分の用途に合ったAndroidイメージを選んでダウンロードします。たとえばKitKat(4.4 / API 19)などが良いでしょう。古いバージョンを選んでも問題ありません。インストールが完了するまで待ちます。
Intel HAXMドライバをインストールする
ここがパフォーマンス向上の要となる部分です。このドライバは、x86アーキテクチャ上でのAndroidの動作を最適化します。Intelの公式サイトからダウンロードしてインストールしましょう。実行してみると…おそらく失敗するはずです。
失敗の理由はポップアップに表示されている通りです。多くの場合、BIOS/UEFIで「Execute Disable Bit(実行無効ビット)」が無効になっているためです。これではドライバをインストールできません。PCを再起動してBIOS/UEFIの設定画面に入り、該当項目を変更する必要があります。表記はメーカーによって異なりますが、メモリ管理関連のセクションにあることが多いでしょう。「有効(Enable)」に設定して再起動してください。
HAXMを再インストールする
これで設定は完了です。もう一度インストーラーを実行すれば、今度は問題なく導入できるはずです。
新しいAVDを作成する
ここからの手順はごく基本的なものですが、いくつか注意すべきオプションがあります。
まず、RAMは768MB以下に設定しましょう。また、テスト中にメモリ不足に陥らないよう、SDカードの設定も忘れずに行ってください。さらに、パフォーマンス向上のため「ホストGPUを使用(Use Host GPU)」オプションを有効にしておくのもおすすめです。
変更をテストする
それではAVDを起動してみましょう。HAXMがインストールされていない場合、仮想デバイス起動時に特別なメッセージは表示されません。その代わり、動作は極端に遅くなります。まるで蜜糖のようにのろのろとした動きで、ストレスが溜まること間違いなしです。
HAXMが正しく導入されていれば、起動時に次のようなメッセージが表示されます。
Starting emulator for AVD 'Some name'
emulator:device fd:XXX
HAX is working and emulator runs in fast virt mode
「HAX is working」と表示されれば成功です。以降の開発作業は、従来のおよそ100倍の速度で快適に行えるようになります。アプリの読み込みも数分ではなく数秒で完了します。KVMやXenなどの仮想化拡張機能を使うのに近い感覚ですね。

まとめ
以上でチュートリアルは終了です。今回の内容では、Android SDKを使ったソフトウェア管理、一般的な仮想化ソフトウェアでのVM構築にも似た仮想デバイスの作成、CPUの機能や拡張命令を活用したパフォーマンス改善など、幅広い知識を学ぶことができました。快適なAndroid開発ライフをお楽しみください。
最後に、本記事のヒントを提供してくださったVova氏に心より感謝いたします。
それでは、また次回。
-
仮想マシンでの3Dアクセラレーション パート2:VirtualBoxとOpenGLの設定方法チュートリアル
本記事は、仮想マシンにおける3D仮想化の設定と活用方法を解説する全3回シリーズの第2回です。今回は、WindowsまたはLinuxホスト上にインストールしたVirtualBoxで動作するWindows仮想マシンに対して、OpenGLアプリケーション(およびゲーム)向けの3Dアクセラレーションを有効にする方法を学びます。前回の第1回では、VMware製品を使ってWindows上のDirectXプログラムに3Dアクセラレーションを有効化する手順をご紹介しました。このときはホストOSがWindowsでもLinuxでも問題なく動作しました。そして最終回となる第3回では、LinuxホストとLinux仮想
-
仮想マシンで3Dアクセラレーションを実現する方法 パート1:VMwareとDirectXの設定チュートリアル
既存のホストマシンの上で仮想化されたOSを動かすのは、とても魅力的なアイデアです。楽しく、クールで、実際のプラットフォームに導入する前にソフトウェアを試せるだけでなく、通常はためらってしまうような操作にも挑戦できます。さらに大きな柔軟性を得られ、展開コストも大幅に削減できます。しかし、ほとんどの仮想化ソフトウェアに欠けていたのが、ゲストOS向けの3Dアクセラレーションでした。あるいは「欠けていた」と言うべきでしょう……今や、仮想マシンでの3Dアクセラレーションは現実のものとなっています。はじめにこの連載記事では、ゲストOSで3Dアクセラレーションを有効にするために必要な簡単な設定テクニックを紹