ボクココ

個人開発に関するテックブログ

Androidアプリ開発者が実践すべきエミュレータの高速化

久々にサービスで感動したので投稿。

今回紹介するのは Genymotion というもの。

genymotion

どんな仕組みかというと、AndroidLinuxベースでできたOSなので、それをVirtualBox仮想マシンとして起動する、というもの。おそらく内部的にVagrantのようなものでプログラムで自動で起動したり停止したりしている模様。無料で普通に使えるので、入れてみる価値ありです。 起動したVirtualBoxは何故か普通にadbコマンドで接続できる。なんでかわからないが、すごい!

Genymotion を使うメリット

個人的には3つ。この3つ全てが素晴らしい!!

Android apk のアップロードが超高速

今までのAVDのエミュレータで、Eclipse なり AndroidStudio なりでできたapkを入れて確認する訳ですが、ビルドしてアプリが起動するまで、めちゃめちゃ時間がかかったのですよ。アプリ起動するだけで最大1分くらい待たないと起動しない時とかあって、机投げ出したくなったりそれほどまで困っていたのです。テストを起動するときとかは顕著であまりの起動の遅さにテストを起動するたびにトイレに行ったり何か買いにいったりしてたくらいです。 それがなんと、Genymotionだと10秒以内で開始されます!今までの時間は何だったのだろうか!?

エミュレータ自体が高速

サクサク動きます。まぁこれは前のエミュレータでも他アプリほとんど入っていないので高速だったのですが、それをしのぐ爆速具合です。まぁそもそも提供しているAndroidバージョンが最新のものしかなくて、それを使っているからという理由もありますが。

キーボードでテキストが打てる!

これ、入れてみて知ったのですが、なんと普通にキーボードで文字が入力できます。 これがどれほどまで素晴らしいかは今までAndroidエミュレータを触ったことのある人しかわからないと思いますが、一気に効率が上がります。 さらにコピペもできる!これだけで今までの苦労がどれだけ報われることか・・。

インストール方法

感動した話はこれくらいにしておいて、入れ方を簡単に。 といっても入れること自体はとても楽です。

Genymotion のサイトからまずはSignUp で会員登録し、その流れにそって自身のOSに沿ってFree バージョンのGenymotion をDL. install するだけです。インストーラが勝手に立ち上がります。

Genymotion の最初の画面はこんな感じ。

Proxy でいきなり色々失敗!って言われたが、Settings のネットワークでProxy指定して余裕で解決。

+Add を押して好きなAndroidエミュレータをDLしよう。 自分は4.2.2系のを選択。

こっからが詰まった所。

起動しても The Genymotion Virtual device could not obtain an IP address.For an unknown reason, VirtualBox DHCP has not assigned an IP address to virtual device. Run the VirtualBox software to check for issues. と怒られて失敗する

たぶん前からVirtualBox使ってるとこうなる。 Host-Only のIPアドレスがGenymotionの指定したIPAdressと違うためエラーとなる模様。 Windowsの場合だが、コントロールパネル-> ネットワークの接続でHost-Only ネットワークを一度無効にし、再度起動する。そうすると新しいHost Onlyネットワークが立ち上がって無事起動した。

APKを入れようとすると、 INSTALL_FAILED_CPU_ABI_INCOMPATIBLE と言われて失敗する

これはarmeabi でネイティブビルドをした場合に出た。CPUが違うから入れられないよ、的な感じだと思ってる。 これに対してはStackOverFlow の神回答を参照のこと。 エミュレータにDLしたzipをドラッグアンドドロップするだけでarmeabiで動いた。

まとめ

速いって素晴らしい。 Jenkins にもこれ導入したいなー。プラグインが早く出てくれることを期待。