2014年5月5日月曜日

【Mac、Android】MacのAndroidエミュレータを3倍速くする方法

MacでAndroidアプリを作ろうとしてるんだけど
エミュレータが遅くてイライラ。

色々調べて動作を速くできたのでメモ。

環境

このときのまま。

  • Mac Book Air 2013 Mid 13inch
  • Mac OS X 10.8.5

必要なファイルのダウンロード

Android SDK Managerで下記をダウンロード

Extras->Intel x86 Emulator Accelerator (HAXM installer)

好きなAndroidバージョンのIntel x86 Atom System Image


Emulator Acceleratorのインストール

ダウンロードしたIntelHAXM_x.x.x.dmgを実行

mpkgファイルが出てくるのでそれも実行

インストーラが起動するのでそのままインストール

AVDの作成に入る前に念のためADT(Eclipse)再起動

トラブル発生

Eclipseを再起動したらAndroid Developer Toolkitが古いって怒られた。
しかもこのまま”Check for Updates"やっても"No updates were found."って言われる…

さらにこの状態だとAndroidSDKManager開こうとしてもエラーしちゃう。
"Location of the Android SDK has not been setup in the prefarences"

言われた通りPrefarences開いても起動時に表示されたエラーが出てるだけだし。
”This Android SDK requires Android Developer Toolkit version 22.6.2 or above.  Current version is 22.0.5.v201307292155--757759.  Please update ADT to the latest version.”

マジ困る。
アップデートが効かないので手動で最新版を取得する事にする。

ここから最新ADTをダウンロード
http://developer.android.com/sdk/index.html
たしかに日付は更新されてるっぽい。

解凍すると"adt-bundle-mac-x86_64-20140321"ってフォルダが現れた。
今使ってるフォルダは"adt-bundle-mac-x86_64-20130729"だったから確かに日付は変わってるっぽい。でも中身は何が変わってるか分からない。困った。
Macだとフォルダ上書きすると中身一度消えちゃうし…。
ちょっと面倒だけど両方残すことにした。
フォルダごとアプリケーションフォルダに移動。

新しい方のADTにはSDKを入れ直しになるだろうけど仕方ない。
うまく動いたら古い方消そう。

Eclipse起動!はい、エラー。
どーなってんの。
"The JVM shared library "/Library/Java/javaVirtualMachines/jdk1.7.0_25.jdk/Contents/Home/bin/../jre/lib/server/libjvm.dylib" does not contain the JNI_CreateJavaVM symbol."

http://burrsutter.blogspot.jp/2013/12/eclipse-does-not-contain.html
調べてみると結構困ってる人多いみたい。

最新のJavaを入れ直してみる。
このページから
http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html

ライセンス同意してダウンロード

インストーラに従ってインストール完了。

ターミナルで"java -version"と打つとこんな感じ。
(インストール前の確認するの忘れた。)

これでやっとADT起動した。
再度Android SDK Manager開いたらパスが以前のままだったので各SDKの再インストールは必要なかった。ラッキー。

AVD(Android Virtual Device)の作成

AVDManagerを開く。
比較用に2つ作ってみた。

Nexus5_ARM(普通のエミュレータ)

CPU : ARM
Use Host GPU

Nexus5_Intel(速いエミュレータ)

CPU : Intel Atom (x86)
Use Host GPU
こっちは最初にダウンロードしたAcceleratorとSystem Imageがないと作れないはず。

起動時間比較

AVDManager上でStartを押してからエミュレータのロック解除画面が出るまでの時間を計ってみた。

Nexus5_ARM 1回目:183sec 2回目:99sec
Nexus5_Intel 1回目:42sec 2回目:29sec
めんどいから3回以上やってないけど起動は3〜4倍速くなってるかな?
いい感じ。スクロールや画面遷移もサクサク。

動画撮ろうと思ったけど録画するとカクカクしちゃった。残念。
ただ使う分には問題なさそうなのでしばらく使ってみる。


Related Posts Plugin for WordPress, Blogger...