Android Studioを使っていて奇妙に思っていたのが作成したアプリをテストするために動作させるエミュレータが遅い(いつまでたっても起動しない)ことでした。
エラーメッセージ
eclipseのときは問題なく動いていたのでどうしてだろうと思って何かおかしいと思い調べてみると下のようなエラーが出ていました。最初は何かのインフォメーションだと思ったんですけどね・・・・
英語だからと言って読み飛ばしてはいけません。
emulator: The memory needed by this VM exceeds the driver limit.
HAX is not working and emulator runs in emulation mode
要はメモリが足りないよって事みたいです。これは、Androidのエミュレータを高速化するためのソフトが悪さをしているらしいので設定してみました。
HAXの再インストール
Androidエミュレータを高速化するためにHAX(Hardware Accelerated Execution Manager)と言うものを使っているそうですが、こいつがメモリの上限を決めているので設定します。っが、インストール時に決めるらしいので一度アンインストールしてからインストールします。
ファイルの場所は
C:\Users(ユーザ名)\AppData\Local\Android\sdk\extras\intel\Hardware_Accelerated_Execution_Managerintelhaxm-android.exeです。
アンインストール
- intelhaxm-android.exeをダブルクリックして、『remove』をクリックします。
インストール
- アンインストールが完了したら再度intelhaxm-android.exeをダブルクリックして、インストールします。
- メモリを設定する画面が表示されたら値を
1024MB(1GB)1536MB ~ 2048MB(1.5GB ~ 2.0GB)に設定します。どれくらいが適切かはPCのスペックにもよるかと思いますので任意に決定します。
インストールを完了してください。
AVDの設定
今度はAndroidエミュレータが要求するメモリ量を設定するためAVD(Android Virtual Device)の設定を行います。
- Android StudioからAVD(Android Virtual Device)の設定を開き、任意のDeviceを選択し設定画面を開きます。設定画面が開いたら『Show Advanced Settings』をクリックして設定項目を増やします。
- 設定項目の下のほうに『Memory and Storage』と言う欄があるのでその中の『RAM』を
1024MB(1GB)1536MB ~ 2048MB(1.5GB ~ 2.0GB)に設定します。HAX(Hardware Accelerated Execution Manager)で設定した上限以内を指定します。
- 最後に『Finish』をクリックすれば完了です。
まとめ
AVD(Android Virtual Device)を起動すると無事起動できるとともに、高速化されていることも実感できると思います。少々面倒ですがきちんと設定しておいたほうが良いでしょう。動作確認は以下を参照してください。

また、マイクロソフトがWindows上で動作するAndroidエミュレーターを提供しています。詳細は以下を参照してください。
