Tips

Android エミュレータ高速化テクニック 【Android TIPS】

Androidのエミュレーターを高速化するテクニックを紹介します。

 

HAXM ( Intel Hardware Accelerated Execution Manager )という機能を使います。

この機能自体はSDK17からサポートされており、ご存知の方も多いかと思いますが、劇的にエミュレータが早くなりますのでまだ試しておられない方は是非。

なお、HAXMはVT-xをサポートしているCPUを搭載したPCでないとインストールすることができません。

インストール中にエラーが表示された方はあきらめて下さい…

 

インストールを始める前に、開発環境は最新化しておきましょう。

 

まずは、必要なソフトウェアをインストールします。

便利なことに、SDKマネージャーだけで必要なソフトウェアがそろいます

 

まずは、「x86 System Image」です。

こちらのファイルはAndroidのバージョン毎に用意する必要がありますが、現在 (2013/01/28) 時点でサポートしているのは以下のバージョンのみです。

  • Android 4.2 ( API 17 )
  • Android 4.1 ( API 16 )
  • Android 4.0 ( API 15 )
  • Android 2.3 ( API 10 )

 

WS1000000

 

 

次に、冒頭で出てきたHAXMです。

SDKマネージャーの一番下にでてきます。

WS1000001

 

SDKマネージャーではダウンロードしただけで、インストールは行われていません。

ダウンロードしたファイルは以下のフォルダに保存されます。

[Android SDKインストールフォルダ]sdkextrasintelHardware_Accelerated_Execution_Manager

 

このフォルダ以下のexeを実行して、HAXMをインストールします。

IntelHaxm.exe

 

途中、割り当てるメモリ量を聞かれますが、デフォルトのままでOKでしょう。

エラーが出力されインストールできない場合は、CPUがVT-xをサポートしていないことが考えられます。(あきらめてください…)

WS000351
WS000353
WS000355

 

以上で準備が整いました。

AVDマネージャーを起動し、エミュレーターのセットアップを行います。

 

ポイントは以下の二つです。

CPU/ABI Inten Atom (x86)
Emulation Option Use Host GPU

 

WS000361

 

「Nexus 7」「Android 4.2」で「CPU/ABI」と「Use Host GPU」の設定を変えて実行してみました。

起動ボタンをクリックしてから、右の画面が表示されるまでをストップウォッチで計測しました。

WS000363
WS000362

 

以下のような結果となりました。(その差なんっと8倍!!すごい!!!!)

CPU/ABI Use Host GPU 起動までにかかる時間
ARM (armeabi-v7a) OFF 約120秒
ARM (armeabi-v7a) ON 約90秒
Intel Atom (x86) OFF 約19秒
Intel Atom (x86) ON 約15秒

 

もし以下のようなエラーがで「Nexus 7」のエミュレータが起動しないという場合は、AVDのメモリ設定を変えてみて下さい。

Starting emulator for AVD 'x86'
emulator: device fd:732
HAX is working and emulator runs in fast virt mode
Failed to allocate memory: 8
This application has requested the Runtime to terminate it in an unusual way.
Please contact the application's support team for more information.

RAMが「1024」になっていたら、「512」に変更します。

WS000361

 

 

参考までに上の検証を行った、PC環境を載せておきます。

OS Windows 7 pro SP1 64bit
CPU Core i5-2320 3.00GHz
メモリ 8.00 GB
GPU GeForce GT 520

 

Windowsエクスペリエンス

プロセッサ 7.4
メモリ (RAM) 7.6
グラフィックス 4.9
ゲーム用グラフィックス 6.3
プライマリ ハードディスク 5.9

 

体感的に、実機と同等かそれ以上のパフォーマンスが出ているようです。

Googleさん、Intelさん「エミュレータが遅くて使い物にならない!」なんていってすみませんでした(汗

Androidアプリ開発の必須知識!JAVAプログラミングを学べる連載リンク

はじめてのJAVA 連載

Recent News

Recent Tips

Tag Search