Genymotion + Android Studio on Mac


通常のエミュレータでAndroidアプリ実行しようとしたときにまず思うことは「エミュレータが重すぎる」だと思います。
（どれくらい重いかというと、エミュレータが起動し終わる前に、IDE側がタイムアウトしてしまうくらい...

この原因は、Android SDKのエミュレータはARMをエミュレートして動かしているためです。
そのため、Androidアプリを開発する上で、大変非効率になってしまいます。

これを解消するために「Genymotion」（ジェニーモーション）という、Android SDKとは異なるエミュレータが存在します。
Android SDKのエミュレータがARMを使っているのに対し、GenymotionはVirtualBoxという仮想プログラムを利用して動いています。
そのため、Android SDKのエミュレータと比べると、圧倒的に軽くなります。

## 動作環境
* OS X 10.9.2
* [VirtualBox](https://www.virtualbox.org/wiki/Downloads) 4.3.10 for OS X
* Genymotion 2.2.0

Genymotionには、VirtualBoxが必要になります。
インストールしていない方は、上記リンクからダウンロードしてインストールしてください


## Genymotionをダウンロード
次のURL http://www.genymotion.com/ にアクセスする
怪しさ爆発のページが開かれますが、大丈夫、合ってます

![genymotion1.png](https://qiita-image-store.s3.amazonaws.com/0/33505/07e4f9b7-ce93-1958-b2b1-e056025e9146.png "genymotion1.png")
画面右上にある「Sign in | Sign up」をクリックする

![genymotion2.png](https://qiita-image-store.s3.amazonaws.com/0/33505/83b1d12a-854d-dd77-a394-db4b32c12c0e.png "genymotion2.png")
すでに登録済みの人は「Login」
今回は、新規登録ということで、左の必要な項目だけ入力して、次に進みます

Genymotionから登録したメールアドレス宛にメールが届くので、「Click here」から、登録したアカウントのアクティベーションをおこないましょう

![genymotion3.png](https://qiita-image-store.s3.amazonaws.com/0/33505/5ee99f99-866a-f5b6-9160-8dee28b83fb5.png "genymotion3.png")
アカウントのアクティベートに成功したら、ページに表示されている「download Genymotion」をクリックする

Genymotionのインストーラーのダウンロードページが開かれます
![genymotion4.png](https://qiita-image-store.s3.amazonaws.com/0/33505/666bc719-bfab-2aac-f2e6-38fe2ee017b0.png "genymotion4.png")
これで、ダウンロードはできました

## Genymotionをインストール
ダウンロードしてきた「genymotion-2.2.0.dmg」をダブルクリックします
![genymotion5.png](https://qiita-image-store.s3.amazonaws.com/0/33505/fe9ba259-1632-518e-0936-60ec7aecb1eb.png "genymotion5.png")
ひらかれたインストーラーから「Genymotion」と「Genymotion Shell」の２つをApplicationsにコピーします

これでインストールまで終わりました

## Genymotionを起動する
まずは、Genymotionを単体で起動させてみましょう

するとアプリケーションが立ち上がると同時に。次のようなウィンドウメッセージも出てきます
![genymotion6.png](https://qiita-image-store.s3.amazonaws.com/0/33505/0e3277cf-75b1-84c8-4c56-86c94729a5eb.png "genymotion6.png")
この時点では、まだ仮想でバイスを１つも作っていないので、ここでは「YES」を選択します

そうすると「Create a new virtual device」ウィンドウが立ち上がります
![genymotion7.png](https://qiita-image-store.s3.amazonaws.com/0/33505/528db46a-4b76-e9c0-fd56-6b5f8d4bb953.png "genymotion7.png")
まずは、さきほど作ったGenymotionアカウントでログインするために「Connect」を選択する
![genymotionLogin.png](https://qiita-image-store.s3.amazonaws.com/0/33505/deed66af-40f3-f567-965e-889e084c197b.png "genymotionLogin.png")
そしてログイン

すると、先ほどの「Create a new virtual device」ウィンドウが再度開かれる
![genymotion8.png](https://qiita-image-store.s3.amazonaws.com/0/33505/ca2682cb-7bbb-3224-535f-741840baf198.png "genymotion8.png")
ここでは、Android OS x デバイスのエミュレータが表示されている
![genymotion9.png](https://qiita-image-store.s3.amazonaws.com/0/33505/e6d14886-1c13-9c19-6eae-61e548a3a919.png "genymotion9.png")
いったんは、適当にデバイスを選択して「Next」へ
![genymotion10.png](https://qiita-image-store.s3.amazonaws.com/0/33505/fc1aabc1-aa74-fbed-bcc0-f91fa1a4adcd.png "genymotion10.png")
仮想デバイス名の変更と、スペック表があるウィンドウが開かれる
特に変更する点もないので「Next」

すると仮想デバイスの作成が始まる
![genymotionCreateDevice.png](https://qiita-image-store.s3.amazonaws.com/0/33505/f0807c94-81d0-ed6f-44b0-7be69fc6b6ee.png "genymotionCreateDevice.png")
Finish!!!
![genymotionCreateDeviceFinish.png](https://qiita-image-store.s3.amazonaws.com/0/33505/ea348630-9fc4-1607-2e94-f72579bca6f1.png "genymotionCreateDeviceFinish.png")

仮想デバイスの作成が終わると、デバイス選択ウィンドウが表示されます
Windows版ならAndroid SDKへのパス設定をしなければいけませんが、Mac版のときはいらないのかな？
そのままデバイスを選択して「Play」する
![genymotion12.png](https://qiita-image-store.s3.amazonaws.com/0/33505/9e1744a8-bf3b-b476-68f0-e9acfea08a92.png "genymotion12.png")
すると仮想でバイスが起動します
![genymotionPlay.png](https://qiita-image-store.s3.amazonaws.com/0/33505/a8e0bdb8-c757-4caf-1b29-4738b403c1fb.png "genymotionPlay.png")
爆速！！！
なにこれ、起動までが速いし、ぬるぬるした動き。
まさに感動とはこのこと！

## Android Studioとの連携
最後にAndroid StudioとGenymotionを連動させます
連動の方法としてプラグインを使います

Android Studioを起動して`メニュー > Preferences...`か`Cmd+,`から設定ウィンドウを開く
![genymotion13.png](https://qiita-image-store.s3.amazonaws.com/0/33505/aec4a0da-e850-a0fa-ec12-f51b233afd04.png "genymotion13.png")

開かれたウィンドウから`Plugins`を選択する
![genymotion14.png](https://qiita-image-store.s3.amazonaws.com/0/33505/c41504da-3e86-2809-c1e4-b8f525ffda86.png "genymotion14.png")
「Browse repositories...」を選択する
![genymotion15.png](https://qiita-image-store.s3.amazonaws.com/0/33505/e48d5cc0-97e1-3a94-8293-e0aa785ecf8f.png "genymotion15.png")
キーワードに `Genymotion` を入力して、表示されたGenymotionプラグインをインストールする
そして、Android Studioを再起動する
![genymotion16.png](https://qiita-image-store.s3.amazonaws.com/0/33505/187ebd51-a9b7-58dd-8f73-266a8c25fa38.png "genymotion16.png")
すると「Genymotion Device Manager」が追加されている

クリック
![genymotion17.png](https://qiita-image-store.s3.amazonaws.com/0/33505/eaf9d69f-bb19-0266-e663-af7540ff7df7.png "genymotion17.png")
`Genymotion.app`があるパスを指定する
そして「OK」

再度`Genymotion Device Manager`を起動すると`AVD Manager`と似たウィンドウが開きます
![genymotion18.png](https://qiita-image-store.s3.amazonaws.com/0/33505/d98c0de4-44cc-8df0-53c2-237f0f11bd90.png "genymotion18.png")

そしてアプリケーションを起動させる際に、Genymotionを選択することができます
![genymotion19.png](https://qiita-image-store.s3.amazonaws.com/0/33505/81df1798-24c8-108b-4f34-49fa213dfc15.png "genymotion19.png")

これでAndroid StudioのデバッグでGenymotionをつかうことができました。

## まとめ
Genymotionはとても軽いです
本来Androidの動作確認は実機によるテストが支流ですが、Genymotionのおかげで、ある程度の小さい処理部のテストならこちらで十分そうですね