genymotion 1.2.1メモ
なんかこの手のやつ「いいよいいよ」みたいな話しか流れてこないので
一度触ってみた。
確かに起動は早い気がする
ただコレ自分のMBPではの条件なので、
多分会社のiMacだとまともに動かんのだろうなと*1
とおもったら
Genymotion は Vargant を使っていて、すでに Host Only Network アダプタが登録されてる場合は別途アダプタをつくらないといけなかったっぽい。 URL
やっぱvargrant使ってるらしい。会社のiMacも2Gなんですけど
OSが古いからまともに立ち上がらないのかな。。。(汗
=>
立ち上がった(詳細な検証は 末尾の 追記> の方参照)
理由的には
- Qtで専用プレイヤー作ってる
- VMがVBOX形式の風に見えて専用カスタムイメージ
だからのよう。
パッケージの詳細でみてみるとQt で作られてるのは簡単に確認できる
みたいな話の環境作れればビルドから出来るのかな?
昔Androidx86の奴も試したけどこっちは全然駄目だったので安定度的にはこちらが上
な使い方をしてる人もいるみたいですしね・・(苦笑
あと途中でsetup失敗すると
な状況になるみたい*2
Genymotion起動したらMacがフリーズした
- genymotionが起動でコケる
- genymotionの起動がめちゃくちゃ遅い
- Mac自体が重くなる
って挙動は何度か遭遇した。
終了を☓で閉じてるからかもしれないけど
- 終了ボタンが効かない
- vmイメージから終了(再起動)が効かない
からなんだよね。。これ。vmが正常終了してない扱いだからかも。
この場合はvboxたちあげて[imageのシャットダウン]をするしかない感じ。
だからASを使うにはIDEAのことを知ってるのが有利なように
genymotionを使うには、VirtualBoxやvargrant辺の知識が有ったほうが良な感じ。
インストール編)
最初トラブったのは、認証メールがなんかスパム扱いされるみたいで
- yahoo受信できない
- googleスパムフォルダに入ってた
でDLまで行くのにちょっと時間かかった(汗
http://plugins.genymotion.com/eclipse
備考)
試しに
な構成をeclipse3.7で作ってみたけど無理でしたね(汗。
でもeclipse4.3/eclipse 4.4ならイケるかもしれないけど・・・
=>で試してみたら イケた。
安心して
の構成でも使えますね!
ここらへんはStackOverFlowでも詰まってる人いらっしゃるみたいだな、、、
android - Can't install plugin in eclipse due to dependency on bundle org.eclipse.core.runtime 3.8.0 - Stack Overflow
@kimukou2628 噂通り早いんですカー?
2013-09-07 17:05:25 via twicca to @kimukou2628
.@myb1126 genymotion のランチャーから4.2.2 のimageを起動する分にはパッと立ち上がりますね。日本語化までは容易にできるのですが、GoogePlayのアイコンが見つからないので最初から使えるな話は何処から?ってところです<genymotion
2013-09-07 17:13:07 via YoruFukurou to @myb1126
genymotion eclipse のサイトに行ったけど eclipse 3.8 ってのが出てこないんだけどコレなんだろう??dependency org.eclipse.core.runtime 3.8.0 ってどうすればいいんだ?これ?
@kimukou2628 Juno 4.2 ではダメですか? Junoは最初3.8/4.2の二本立てだったのを、かなり早い段階で4.2に一本化しているので、世代に依存しているのなら4.2でもいけそうな気が…
2013-09-07 17:26:35 via HootSuite to @kimukou2628
@btnrouge ありがとうございます。4.2=3.8なんですね。試してみます!
2013-09-07 17:34:46 via YoruFukurou to @btnrouge
使い勝手メモ)
ASに関しては、@nowsprinting さんが既に日本語の記事で書かれてる
でも
- 「ASで出来た!」
- 「Jenkinsで出来た!」
のはやたらとRT回ってくるけど、
eclipseに関しては不具合の話しかRT回ってこないのは
開発者の方よっぽどeclipse嫌いなんでしょうね−(苦笑
まあ職場の子も
- NDK使える環境がないから仕方なく使ってる
みたいなこと言ってるしな。。*3
でも使い勝手はほぼ同じ感じだったので凄く助かった。
つうか分かんないよね−。公式にも使い方書いてないし・・・
eclipseでの操作キャプチャはこんな感じ。
- 設定画面=>genymotion.appのパスを指定
- genymotion Managerのアイコン*4
- アイコン経由で genymotion managerたちあげた処
- genymotion managerでたちあげたイメージが実機として認識出来てるの確認
Adが絡むテストだと、ちゃんと表示されてるかを含めると未だ実機でしか確認が厳しい状況なんだけど、今後改善とかされてくのかな。。あとは今日落としたimageだとGooglePlay同梱されてないようなので 別途入れる方法調べないと駄目か?
らへんの対応は必要みたい*5
でもwith GoogleAPI イメージだと困るよね? とおもいそっちでImageを作ったら
Googleアカウントを聞いてきたのでGooglePlay有が前提なら
こっちのimageを作成するのが正しいみたいだな。
あとimage落とすと adb serverも落ちる挙動。android テスト部 的な話から言うと Genymotion Shell.app を操作してjenkinsと連携 とかが嬉しいんだろうなと。イメージの場所は $HOME/.Genymobile に作成されてる
確かに場所はそこであってるみたい。
Genymotion Shell.app の挙動的にはGenymotion.app等経由でイメージが立ち上がっていれば 自動的に接続には行く感じのよう。イメージを1個しかたちあげない限定だとある意味手軽。URL らへんがドキュメント
<<連携 plugin の話>>
Android StudioでGenymotion上でRunしたい時毎回選択ダイアログ出るのストレスだなー
IntelliJとGenymotionで開発してる時毎回Chooseダイアログ出てしまうのどうにかしたい
- ASだとデバイス指定してたちあげ
とか出来ませんでしたっけ?
Runの設定次第な気もするんだけどな。。。
で eclipseとくらべてみると
- 以前の設定で実行
のチェックがないからが問題のよう。*6
でもコレって、普通に開発スルときでも
前からデバイス選択させるような挙動はしてた気がするのですけど(苦笑
USB扱いの認識のようなので、他のデバイス接続してない状態なら
- Run=>Edit Configration
- USB deviceにチェック
すればいけるんじゃないかと思うわけなんですが。。
=>
でやっぱりイケるわけです。
以前はこの手の話話題にも載らなかったので
IDEA(AS)でAndroid開発する人が増えたんだなーと実感 *7
使われないと話題にも載らないですからね。。
<<NDKを使ったアプリの起動>>
Android NDKを使用し、ARM向けにビルドしたapkはそのままでは起動しませんでした。
手元のプロジェクトでは、Application.mkのAPP_ABIに"x86"を追加してビルドしなおすことで、インストール、起動まで確認できました。
公式にARM互換的なことが書いてあったのですが、どうなんでしょう?と有ったんだけど、vargrantのimage次第みたいな話なのかな?
<上記2つは少なくともNDK使ってるという話は聞いてたりしてる
でStackOverFlowで調べてみると
4.2.2のimageではNDK動かないらしい<自分が試したのは4.1.1のimage
こういう話だと、提供されてるimageが信用できるか?
って話になってくるんでしょうか?*8
<<WebViewを使ったアプリの挙動>>
genymotion #facebook4j 2.0.0 の動作確認中。SSL系認証ページのWebViewの表示は無理みたい。実機では認証、投稿まで 動作確認できたのでとりあえず良とする
でも日本のキャリア系とかSSL好きなんですよね・・*9
Genymotion with GoogleAPI で登録したらGooglePlayのアカウントの方に実機として認識されてしまうよう。applican とかも問題なくWeb上からインストール可。(ただGooglePlay垢って後から実機とか消せたりしないのでテスト用垢必須かも
<<メモリの調節等>>
Genymotion 経由でネット使うと本体側のNWが凄く重くなるけどなんか設定とか有るんだろうか??うーん。
これに関しては、
VirtualBoxの方のほうにvargrantで作成されたimageの設定がもろにあるので
それを調整しましょうということのよう*10
ぐらいしかないからな・・・(汗
でも vargrant で作られているとう話だけど
vargrant.config の設定ファイルが見当たらないな。。。
何処を見ればいいんだろう?
操作感的なメモ)
クリックイベント | ◯ |
ドラック的な操作 | △*11 |
- キーボードは
Genymotion Configration で物理キーボードを認識できるように出来る
USBデバックを付けなくても
- デバック転送は問題なくできるので付けなくてOK
<<ホストとファイル/文字列共有>>
VirtualBoxがベースなので
ファイル共有がD&D出来ると楽かな?できるかな?と思ったけど無理みたい
- [USBでパソコンに接続] は動作しない(チェックつけるとエラーが出る動作はするけど。。。)
でVirtualBox正当な方法で試してみる
- VBOX側でホストのディレクトリを共有設定
- 同梱されてるアストロで参照 (/mnt/shared/share)
直接SDとか参照できないのが痛いな。。
アストロだとコピーとか難しい
[yahooファイルマネージャ] はSDカードのみの操作なので一個上の階層とかいけないorz
一応テキストのコピペベースではこういう方法もあるとのこと
@rejasupotaro Genymotionって、エミュからcopyしたのをホストでpasteってできないんすかね?
@__gfx__ VMwareでも別途ツール入れないとホスト/ゲスト間でコピペできないので、そのままだと出来ない気がします。公式サイトでもやり方載ってませんね…。
2013-09-18 17:00:05 via web to @__gfx__
@rejasupotaro く…とりあえずwebだったのでChrome Dev Toolsでアタッチしてconsoleに目的のコンテンツを出力してコピペ、というアレゲな方法でかいけつしました。
@__gfx__ なるほど、それいいですね
2013-09-18 17:02:46 via web to @__gfx__
@rejasupotaro 敗北感があるのは否めないですね…。
ちなみにこのimageをVBOXで直接立ち上げようとすると
エラー吐きまくって起動めちゃくちゃ遅い。
うーん、専用Playerにカスタマイズされてるvboxイメージなのかも。。
<<multi-touch gestures (using mouse events)>>
Right click + Move left | Zoom in | 二本指ピンチ縮小 |
Right click + Move right | Zoom out | 二本指ピンチ拡大 |
Right click + Move up | Tilt forth | 二本指スワイプ上 |
Right click + Move down | Tilt back | 二本指スワイプ下 |
Shift + Right click + Move left | Rotate Left | 二本指左回転 |
Shift + Right click + Move right | Rotate Right | 二本指右回転 |
らしい。
Zoom in/Zoom out の話から multi-touchって書いてるのかな。。。
本来認識してる複数同時押し的なマルチタッチとは違いますね(汗
確認手順は
がわかりやすいかと。
でもIOSでも其のレベルだって話は教えてもらった。
やっぱりそうですよね。。*12
genymotionはマルチタッチサポートしてんのか気付かなかった
@sys1yagi どうやるんですか?マルチタッチのオペレーション
2013-09-15 23:39:12 via YoruFukurou to @sys1yagi
@kimukou2628 いまブログにかいてますーソースはこちら URL Multi-touch Gesturesて項目があります
2013-09-15 23:39:47 via TweetDeck to @kimukou2628
@sys1yagi なるほど。Multi-touch Gestures は回転させたりとかだと思ってましたけど(汗。2点以上(Android的には5点ぐらい)の同時押しができる意味でのMulti-touchではないんですね・・
2013-09-15 23:45:15 via YoruFukurou to @sys1yagi
@kimukou2628 それはPC上では厳しいでしょーiOSのシミュもこの程度のマルチタッチサポートです
2013-09-15 23:46:15 via web to @kimukou2628
座標的にどうなるんだろうか、そこは見るかー
2013-09-15 23:46:31 via web
当然2点目のタッチが発生していたわけだが座標の検証まではめんどくさいので省略するかー
2013-09-15 23:52:20 via web
<<提供元不明のアプリオプション/Jenkinsテストに関して>>
Jenkins + Genymotion で Android なテストをしたメモ - OrangeSignal ブログ
- [設定]-[セキュリティ]-[提供元不明のアプリ]を オン にする
- [設定]-[セキュリティ]-[アプリを確認する]を オフ にする
これも正直付けても付けなくてもOK。転送は可能。これ多分動いてない
特に2個目のはアクティブにならないイメージも有
Jenkins ジョブ設定の話)
- adb connect 自体は既に接続済みの場合は直ぐ戻ってこない
場合があるのでtimeoutする可能性があり*13。
やるならadb devicesで接続済みかどうか確認してから接続するべき。
あとは事前にgenymotionをたちあげておくべき
って書いてたけど
XXXX/Genymotion.app/Contents/MacOS/player --vm-name <<ID>>
で立ちあげるほうが正当なんじゃないかなと思う。
ただこの場合clean slaveとかに[インスト=>実行]まで含めたjobを作るのはどうするんでしょうね。。
$HOME/.Genymobile 辺りの構成をコピーする設定にすればいけそうな気はするけど
<<日本語入力に関して>>
の記事だと キーボードマークが出てくるらしいんだけど、そんなものは出てこない。
(何故かソフトキーボードが表示されないんだよな。。。。)
あとキーボードショートカットもESC以外は
OSのとぶつかってしまいますね。。フォーカスをVMに合わせて手も(苦笑
- キーボードのデフォルト自体を変えるイメージ
- Genymotion configration
- 物理キーボードON
にするイメージ
追記)
会社のiMac 2G(OSX 10.7.5)の環境で試してみた。
起動自体は問題なし
--launcher.XXMaxPermSize 128m
だとPermGenSize OverでOOMが速攻落ちたので
--launcher.XXMaxPermSize 512m
に変更。
この場合、表示されないゾンビ状態になるのでVBoxを立ち上げて落とすしか無いみたい
genymotion自体はあくまでKickerとプロセスが立ち上がってるかの状態表示
しかしてくれないみたい
*14初心者向けのツールとしては
余計な操作がない方が迷わない んだろうけど・・・・
genymotion Virtual DeviceManager は一応複数起動は可能のよう*15
ただ状態はリフレッシュを押さないと最新状態には反映されない のが微妙な線か。。
でもこれもjenkinsとかで使うなら、気にしないところだろうしな *16
日本だとこの手のツールの採用は
開発者が決めるんじゃなくて上が決めるもんだしね‥‥‥ *17
今の仕事場みたいなIOSバンザイのところだと
[Android端末はできるだけ購入したくない。IOSは別だけど]
なスタンスなんで、まあそういうところには嬉しいんだろうけどな
ただ爆速エミュとのメモリとかの差分チェック(設定)調整しないと
OOMのエラーとかは出せそうもないよな<Androidは実機いらん の代名詞にされる?
でデフォルトのチェックをしてみたら
S4/HTCイメージ | 2048MB |
その他 | 1024MB |
なので512MB にしないと環境的に厳し目。
でもこの512MBの設定で問題なく動いてる*18
あとはUSBテザやってると
Genymotionの終了 | adb 接続切れる |
Genymotionの起動 | adb 再接続 |
な挙動になって切断ブツブツされるので、
動かしてる時は、
- USBテザ起動
- Genymotion起動
で終了させないのがコツ
Genymotionは一度接続(adb的な意味で)が切れると再起動するしかないのかなあ。
adb devices adb connect <<IP-address>>
でOK。でも[192.168.56.101]からで 固定みたいなので
adb connect 192.168.56.101
で盲撃ちでもいいのかもな。。
確認的には
- もう一個Genymotionのイメージを起動して終了
- adbの全接続が切れる
- メモってたIPで adb connect
すればOK。
ただadb connect ってUSBで繋がってる実機deviceに対しては出来ないので
ココは挿し直すしかないのがモンニョリするかな。。(汗
GenymotionShell>
Genymotion Shell.appの使い所がいまいち分かんなかったりする。
ちょくに実行しようとすると
Genymotion Shell.app: is a directory
という訳のわからんエラー出るし。。。
Genymotion Shell.appクリックして対話型前提だと使いどころが狭まるな。。。(汗
でもコマンドラインの公式記述有るよね?でやる方法としては下記の感じになるよう。
eclipseみたいにコマンドラインシェルまでのlnファイル有ったほうが混乱しないかもねとは正直思った
$ ./GenymotionShell.app/Contents/MacOS/genyshell -h Usage: ./GenymotionShell.app/Contents/MacOS/genyshell [options] Options: -h : Display this help -r ip_address : Use Genymotion virtual device specified with your IP address -c command : Launch command and display result in terminal host -f file : Launch all commands listed into file
ここらへんはIOS(Apple)ユーザには当然の認識(知識)だろうけど
自分的には違和感感じるかも。。。(汗
追記2)
NDKのテストを兼ねて cocos2d-xのサンプル動かしてみる。
確かに実機転送すると落ちるな。。。(4.1.1/4.2/4.3 すべて)
ココらへんはx86の爆速エミュレータとかも同じ感じですね(汗。
対応としては
jni/Application.mk に以下を追記する。
または ndk-build 実行時に APP_ABI=all を追加すると動くはずなんだけど
何故か動かせなかった *19
APP_ABI := armeabi armeabi-v7a x86
の指定が必要。フルビルドには時間かかるけど(汗
参考)
追記3)
ネット上の参考リンク>
− Genymotion :: インストールと起動 [Tipsというかメモ]
− Genymotion :: アプリ(.apk)をインストールする [Tipsというかメモ]
− VirtualBoxの仮想マシンフォルダ変更手順メモ - Qiita
− Genymotion - Google+
− Google グループ
-
- カメラの(エミュレート)サポートは今後のよう。
- たしかに applicanのQRコードのサンプル動かなかったもんな。。
Jenkins/Headlessで操作)
- android - How can I script genymotion emulator to launch a given avd, headless? - Stack Overflow
- VirtutalBoxのコマンドで直接Lunchするという方針
- VBoxManageコマンド | VirtualBox Mania
ここからvagrantで操作できると嬉しいよね! って話の路線になってくんだろうけど。。。
その手の設定ファイルは当然同梱されておらず。。。

- 作者: 新原雅司
- 出版社/メーカー: 技術評論社
- 発売日: 2013/09/12
- メディア: Kindle版
- この商品を含むブログ (5件) を見る

- 作者: Mitchell Hashimoto
- 出版社/メーカー: O'Reilly Media
- 発売日: 2013/05/30
- メディア: Kindle版
- この商品を含むブログ (2件) を見る

入門Chef Solo - Infrastructure as Code
- 作者: 伊藤直也
- 出版社/メーカー: 伊藤直也
- 発売日: 2013/03/11
- メディア: Kindle版
- 購入: 16人 クリック: 1,027回
- この商品を含むブログ (19件) を見る
追記4)
実際のeclipseプラグインの中を見てみる
- com.genymobile.genymotion.ide.eclipse.plugin_1.0.1.201307161043.jar
- eclipse周りの一覧表示周りの表示処理のみ記載
- com.genymobile.genymotion.lib_1.0.1.201307161043.jar
- 実際の実行処理を記述
発行されているコマンド
- VMToolsEngine.java
VBoxManage --version VBoxManage list vms XXX/Genymotion.app/Contents/MacOS/player --vm-name <<ID>>
- VMToolsMachine.java
VBoxManage guestproperty enumerate <<ID>> //androvm_ip_management の記述を検索 =>IP取得 //vbox_graph_mode 記述検索=>表示名取得
VBoxManage showvminfo <<ID>> //一覧リスト用のいろいろな情報を正規表現で取得=>格納
等を行ってる形。
特にadbと通信している箇所がないので、
- 接続先がバツンと落ちた時全接続が切れる
ってのは
- adb側が接続エラーを検出すると再起動する
とかのロジック入ってるのかも・・。AS対応始めてから実機でもよく切れるからな。。最新のadb。。
*1:Vagrantですらまともに立ち上がらなかったし。。。
*2:まだコレは経験してないけどメモ
*3:だったら全部NativeActivityで書けばいいやん! でもAd/アプリ内課金 がNativeActivityから弄れるまで難か・・
*4:これメニューとかに出せんのだろうか??
*5:with GoogleAPI で作っていないイメージ
*6:IDEAのコンソールからは実機扱い
*7:自分は昔から触ってたけど
*8:で末尾で検証してみたら、自分で転送するのはx86みたい。でも爆速エミュだとNDK使ってるGooglePlayの落とすとエラるのでなんか仕組みというか扱いが違うんだろうか??
*9:SSLにしておけばOKみたいな風潮は以前から有。あとはブラウザをintentで立ち上げればいいじゃん的な話がよくセキュクラスタさんから言及が。。。
*10:snapshotの設定等も
*11:なかなか認識しないことも
*12:IOSのエミュはAndと段違いに違うみたいな話ばかり聞かされるけど、其の割に最新実機は常に取り合いしてる状況見てたりしてる。。。エミュでできるなら実機はあんまいらんよな。。。
*13:この状態の時はadb kill-server/adb start-server までしなおさないと駄目だけど何でだろう??
*14:開発者経験がない or 薄い 指示する人が検証する用の
*16:開発者に使わせるだけなら・・
*17:もしくは開発者が勝手に使うか‥‥‥
*18:爆速エミュだと結構OOMでおちるけど差分なんだろうな?
*19:下の3つ列挙指定なら動かせるかもですが。。。