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」をクリック。
「Free」ライセンスの「DOWNLOAD」をクリック。
「Mac OS X 64 bits」(v2.1.1)をダウンロードします。
3)
ダウンロードした genymotion-2.0.3.dmg をダブルクリックしてマウントすると Finder が開くので、Genymotion.app と Genymotion Shell.app を Applications フォルダへドラッグ&ドロップします。
2. Genymotion を起動
1)
Genymotion.app を起動します。
2)
You have no virtual device available yet.
Do you want to add a new one?
=> Yes
3)
「Connect」をクリックし、ユーザとパスワードを入力して「Connect」。
4)
任意の機種を選択して、「Next」。
5)
デバイス名を確認して、「Next」。
6)
3分くらいで完了。「Finish」をクリック。
こうなっていれば OK。
Titanium Studio の設定
[環境設定] -> [Studio] -> [Platforms] -> [Android] で、
[Default Emulator] に Genymotion でダウンロードした Android の VM 名が入っているのでそれを選択する・・
はずが、出てこない。。
悩むこと一日。
などを見てみると、「titanium config genymotion.enabled true」をする必要があるらしいので、実行してみる。
$ titanium --version 3.2.1 $ titanium config genymotion.enabled true genymotion.enabled saved
参考
おお! 出てきた。
試しに Titanium Mobile から動かしてみます。
「Unable to connect to your virtual device!
Genymotion will now stop. Check your VirtualBox network configuration.」
とのエラーが。
https://cloud.genymotion.com/page/faq/#collapse-nostart
を見ろ、と。どうやら「Host-only Network」の設定が悪さをしているらしいです。
再び、
http://tacamy.hatenablog.jp/entry/20140120/1390144560
を見てみると、全く同じ状況だったのでその通りやってみます。
VirtualBoxを起動し、Genymotionで追加した「Galaxy S3」を選択して、「設定」アイコンをクリックします。
「ネットワーク」タブをチェックすると、「vboxnet0」が存在していて、ホストオンリーアダプターとして「vboxnet0」を使っていました。
次に「boxnet0」の設定を見てみることにします。
VirtualBoxの上部メニューの [環境設定] から、[ネットワーク] -> [ホストオンリーネットワーク] を表示させます。
「ホストオンリーネットワークを編集」アイコンをクリックします。
「192.168.33.1」でした。
どこかで見たような。。(Vagrant から precise64 を使ったからかな??)
Genymotion で動くVMは、 192.168.56.0/24 の Host-only Networkが必要だとのことなので、(「boxnet0」の設定内容を変更してもいいのですが、)ここは新たなHost-only Network を作ることにします。
「ホストオンリーネットワークを追加」アイコンをクリックすると、「vboxnet1」が作られます。
「ホストオンリーネットワークを編集」アイコンをクリックし、以下のように設定します。
アダプター
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が起動しませんでした。)
今度は VM側のネットワーク設定を変更して、「vboxnet1」に紐付けるようにします。
Genymotionから追加した「Galaxy S3」を選択して、「設定」アイコンをクリックし、「ネットワーク」タブから「vboxnet1」を選択して「OK」をクリック。
Titanium Studio から Genymotion の Androidエミュレータが起動できるようになりました。起動まで20秒くらいでしょうか。だいぶ軽くなった印象です。
なお、起動するときは、まず Genymotion を起動し、ターゲットとする AndroidのVM を「Play」してから、Titanium Studioから「Run」した方がよいと思います。