akiyoko blog

akiyoko の IT技術系ブログです

Titanium Studio から 軽快な Androidエミュレータ「Genymotion」を使ってみる

Titanium Studio のデフォルトのAndroidエミュレータは重いですよね。
これまではわざわざ実機に転送していたので、アプリが起動するまで約1分半ほどかかっていました。

Titanium Studio から 軽快な Androidエミュレータが起動できるようにしたいなーと常々思っていたのですが、先週の「Titaniumもくもく会」で磯部さん(@k0sukey)から「Genymotion∞ 使った方がいいよ」と教えてもらったので、今回それを試してみようと思います。


なお、今回の操作は @k0sukey さんのまとめたインストールガイドを全面的に参考にさせていただきました。
http://titanium-install-guide-ja.github.io/#environment-06-02


1. Genymotion のインストール

「Genymotion∞」は軽快な Androidエミュレータで、利用には VirtualBox が必要です。
Titanium Studio からの連携には、バージョン3.2 から対応したとのこと。

参考


1)
まずは、Genymotion のサイトでアカウントを作成しておきます。

2)
http://www.genymotion.com
で、「GET GENYMOTION」をクリック。

f:id:akiyoko:20140322194315p:plain

「Free」ライセンスの「DOWNLOAD」をクリック。

f:id:akiyoko:20140322194328p:plain

Mac OS X 64 bits」(v2.1.1)をダウンロードします。

f:id:akiyoko:20140322194337p:plain

3)
ダウンロードした genymotion-2.0.3.dmg をダブルクリックしてマウントすると Finder が開くので、Genymotion.app と Genymotion Shell.app を Applications フォルダへドラッグ&ドロップします。

f:id:akiyoko:20140322194347p:plain


2. Genymotion を起動

1)
Genymotion.app を起動します。

2)
You have no virtual device available yet.
Do you want to add a new one?
=> Yes

f:id:akiyoko:20140322194356p:plain

3)
「Connect」をクリックし、ユーザとパスワードを入力して「Connect」。

f:id:akiyoko:20140322194425p:plain

4)
任意の機種を選択して、「Next」。

f:id:akiyoko:20140322194502p:plain

5)
デバイス名を確認して、「Next」。

f:id:akiyoko:20140322194510p:plain

6)
3分くらいで完了。「Finish」をクリック。

f:id:akiyoko:20140322194526p:plain

こうなっていれば OK。

f:id:akiyoko:20140322194537p:plain


Titanium Studio の設定

[環境設定] -> [Studio] -> [Platforms] -> [Android] で、
[Default Emulator] に Genymotion でダウンロードした AndroidVM 名が入っているのでそれを選択する・・

f:id:akiyoko:20140322194547p:plain

はずが、出てこない。。


悩むこと一日。

などを見てみると、「titanium config genymotion.enabled true」をする必要があるらしいので、実行してみる。

$ titanium --version
3.2.1
$ titanium config genymotion.enabled true
genymotion.enabled saved

参考

おお! 出てきた。

f:id:akiyoko:20140322194600p:plain

追加したエミュレータVMを選択して「OK」。

f:id:akiyoko:20140322194608p:plain


試しに Titanium Mobile から動かしてみます。

f:id:akiyoko:20140322194619p:plain


「Unable to connect to your virtual device!
Genymotion will now stop. Check your VirtualBox network configuration.」
とのエラーが。

f:id:akiyoko:20140322194627p:plain

https://cloud.genymotion.com/page/faq/#collapse-nostart
を見ろ、と。どうやら「Host-only Network」の設定が悪さをしているらしいです。

再び、
http://tacamy.hatenablog.jp/entry/20140120/1390144560
を見てみると、全く同じ状況だったのでその通りやってみます。


VirtualBoxを起動し、Genymotionで追加した「Galaxy S3」を選択して、「設定」アイコンをクリックします。

f:id:akiyoko:20140322194640p:plain

「ネットワーク」タブをチェックすると、「vboxnet0」が存在していて、ホストオンリーアダプターとして「vboxnet0」を使っていました。

f:id:akiyoko:20140322194650p:plain

次に「boxnet0」の設定を見てみることにします。
VirtualBoxの上部メニューの [環境設定] から、[ネットワーク] -> [ホストオンリーネットワーク] を表示させます。

f:id:akiyoko:20140322194707p:plain

「ホストオンリーネットワークを編集」アイコンをクリックします。

f:id:akiyoko:20140322194717p:plain

「192.168.33.1」でした。
どこかで見たような。。(Vagrant から precise64 を使ったからかな??)

Genymotion で動くVMは、 192.168.56.0/24 の Host-only Networkが必要だとのことなので、(「boxnet0」の設定内容を変更してもいいのですが、)ここは新たなHost-only Network を作ることにします。

「ホストオンリーネットワークを追加」アイコンをクリックすると、「vboxnet1」が作られます。

f:id:akiyoko:20140322194725p:plain


「ホストオンリーネットワークを編集」アイコンをクリックし、以下のように設定します。

アダプター

IPv4 アドレス 192.168.56.1
IPv4 ネットマスク 255.255.255.0

DHCPサーバー

サーバを有効化 チェックを入れる
サーバーアドレス 192.168.56.1
サーバーマスク 255.255.255.0
アドレス上限 192.168.56.100
アドレス下限 192.168.56.1019

DHCPサーバーの設定は、http://qiita.com/sngmr/items/d7c244114d7242c681c5 を参考にさせていただきました。これを設定しないと VMが起動しませんでした。)

f:id:akiyoko:20140322194734p:plain

f:id:akiyoko:20140322194745p:plain


今度は VM側のネットワーク設定を変更して、「vboxnet1」に紐付けるようにします。
Genymotionから追加した「Galaxy S3」を選択して、「設定」アイコンをクリックし、「ネットワーク」タブから「vboxnet1」を選択して「OK」をクリック。

f:id:akiyoko:20140322194756p:plain


Titanium Studio から Genymotion の Androidエミュレータが起動できるようになりました。起動まで20秒くらいでしょうか。だいぶ軽くなった印象です。

なお、起動するときは、まず Genymotion を起動し、ターゲットとする AndroidVM を「Play」してから、Titanium Studioから「Run」した方がよいと思います。