重複した記事があるとの指摘がありました。
下記のほうが図とかステップが充実しています!
http://qiita.com/items/8bc1a11f1382409f1d2a
【もはやエミュレータとは言わせない】
そもそも超速エミュレータが必要な理由
AndroidアプリやWebアプリを作る際、OSバージョンが多すぎて実機とか全部揃えていられないので、エミュレータを使ってデバッグすることになると思います。しかしこのエミュレータが非常に重たくて、MacBook Airなんかで使えたものではありません。これはスマホのARMアーキテクチャのCPUを、PCのx86アーキテクチャのCPU上でエミュレートしているためです。
この問題の解決策として、Intelがx86 CPUで直接動作可能なAndroidを配布しています。Androidの各種アプリは基本的にJava製なので、「Java(Dalvik)仮想マシン」の層でCPUの違いは吸収され、x86版でも全く差異なく動作します。
超速エミュレータの導入手順
超速エミュレータを使用するには、通常のAndroid SDKに加えて2つのコンポーネントが必要になります。
- CPUの仮想化支援機能を利用するカーネルモジュール
- x86版AndroidのOSイメージ
カーネルモジュールの導入方法
Intel® Hardware Accelerated Execution ManagerからOSにあったものをダウンロードし、インストールします。途中で仮想マシンに割り当てる(最大?)メモリ容量について聞かれますが、デフォルトで良さそうです。なおMacの場合、再度インストーラを実行することで容量を変更できるようです。
(注)2013/02/04現在:少なくともMountain Lionについては、release_1.0.4-hotfixの方をインストールしてください。通常版をインストールすると、Mac OSがクラッシュします。
Macの場合は、インストール後に下記のコマンドを実行する必要が有るようです。(再起動ごとに実行が必要なのかはまだ試していません・・。)
sudo kextload -b com.intel.kext.intelhaxm
OSイメージの入手方法
こちらは簡単で、SDKのディレクトリ/tools/androidで起動できるAndroid SDK Managerから、数クリックでインストール出来ます。Androidの各バージョンに「Intel x86 Atom System Image」という項目がありますので、これにチェックを入れてインストールします。
エミュレータの設定、起動方法
Android Virtual Device Manager上で、仮想デバイスを追加or編集する際に、TargetとCPUを、インストールしたx86版のものに設定するだけで完了です。CPU部分にx86と書かれていればOKです。後は、通常通りeclipseまたはManagerから起動すると、超速で立ち上がってきます。
※「HAX is working and emulator runs in fast virt mode」のように表示されない場合は、CPUの仮想化機能が有効(搭載されていて、BIOSでEnabledにされている)かどうか、またカーネルモジュールがインストールされてロード済みかどうかもう一度確認してください。
追記:Android 2.3.3のx86エミュレータを使う場合
イメージのディレクトリ構成にバグがあるので、VM作成時に「userdata.imgがない」みたいなエラーが出てしまいます。
予め、解凍したディレクトリ/sdk/system-images/android-10/x86/images/x86の中身を、解凍したディレクトリ/sdk/system-images/android-10/x86にコピーしておけば解決します。
Macはこちらでどうぞ↓
cd sdk/system-images/android-10/x86/images/x86/
ln -s images/x86/* ./
Happy 超速 Android Hacking!