T

Titanium + BlueStacksでAndroid開発

Androidのエミュレータの動作の遅さには困ったものがあります。ホストと異なるアーキテクシャのマシンをエミュレートするのですから遅いのは当然のことではありますが、開発の意欲を削ぐほどのノロさなので、いくらなんでも限界というものがあります。そういう場合、普通は(1)諦める(2)報復を仄めかす(3)工夫するといった選択肢が考えられますが、われわれ歌と踊りが大好きな愉快で楽しいTitaniumユーザーとしては、3の路線でいきたいものです。

というわけで、先日発表されて話題になった、WindowsやMac OS上でAndroidのアプリが実行できる環境を提供するBlueStacksを使ってみました。BlueStacksのインストールは簡単で、Mac OS Xならダウンロードしたファイルを展開してコピーするだけです。さっそく起動してみましょう。

bs

なんかそれっぽい画面が出てきましたね。さっそくゲームとかいろいろやってみたいところですが、いったん我慢して、Titaniumで作成したAndroidアプリをインストールできるようにします。ターミナルからadbをリロードしてみましょう。

$ adb kill-server
$ adb start-server

おそらくこれだけでBlueStacksがエミュレータとして認識されるはずです。されていなければ、ここだけの話ですが、localhostの10000とか10001とか10002、あるいは5550から順番にconnectを試したら繋がります。

$ adb connect localhost:1000x
$ adb connect localhost:555x

ひどい話ですね。

$ adb devices
List of devices attached 
emulator-5554	device

こんな風に表示されたらしめたものです。あとはTitaniumがエミュレータとして認識してくれれば楽なのですが、面倒くさい+CLIしか使わないので「build-onlyでapkファイルだけ作成」したら「adbでインストール」という手順でやってしまうことにしました。プロジェクトのディレクトリから

$ titanium build --platform=android --build-only && \
adb -s emulator-5554 install -r build/android/bin/app.apk

これで、apkファイルを作成し、インストールするはずです。さっそく実行します。ところが…

なぜだ…

なぜだ…

あれーっ!エラーがいっぱい!そう、実は3.0.2.GA時点でAndroidはbuild-onlyオプションが正しく動作しないのです。仕方がないので対応させてみましょう。$HOME/Library/Application\ Support/Titanium/mobilesdk/osx/3.0.2.GA/android/cli/commands/_build.jsを編集します。

$ diff /tmp/_build.js /tmp/_build_old.js 
404,405d403
<       } else if (cli.argv['build-only']){
<         return;

うーん、問題なければPull Requestしようかな。これでbuild-onlyを無視しなくなります。もう一度さっきのコマンドを実行してみます。

$ titanium build --platform=android --build-only && \
adb -s emulator-5554 install -r build/android/bin/app.apk

BlueStacksには普通のAndroidデバイスにあるようなアプリ一覧みたいなメニューがないので、ホーム画面左側の大きな「My Apps」ボタンをクリックします。

bs2

インストールされていましたね(画像のActionBar2っていうのがそうです。ええ、ついうっかりFruit Ninja Freeも入れましたとも)。ActionBarの動作を試したかったのですが、どうやら対応していないみたい。

bs3

Comments

  • […] そう、さっきのエントリを読んでお気づきの方もいらっしゃるでしょうが、実はほぼ同じやり方でVMware上のAndroid x86を動作させることも可能です。インストールについてはこちらの記事 […]

  • コメントを残す