Help us understand the problem. What is going on with this article?

[dup] Androidの超速エミュレータを導入する

More than 3 years have passed since last update.

重複した記事があるとの指摘がありました。
下記のほうが図とかステップが充実しています!
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」という項目がありますので、これにチェックを入れてインストールします。
Intel x86 Atom System Imageを選択

エミュレータの設定、起動方法

Android Virtual Device Manager上で、仮想デバイスを追加or編集する際に、TargetとCPUを、インストールしたx86版のものに設定するだけで完了です。CPU部分にx86と書かれていればOKです。後は、通常通りeclipseまたはManagerから起動すると、超速で立ち上がってきます。

CPUをx86に設定

※「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!

yuya_presto
[a.k.a. ypresto] Android StudioとXcodeを同時起動しながらAtomでRubyとかES6とか書きつつgitでmergeしてpushする日々。
http://ypresto.strikingly.com
codetakt
学習管理システム「schoolTakt」を運営するEdTechのスタートアップ企業
https://codetakt.com/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away