mayutan's blog

日常の!おもいのたけを!

【Titanium Advent Calendar 2011:15日目】Titanium 1.8 から Android module を呼び出す たった一つの方法 for mac

タイトルは釣りです。

 

この日記は、@astronaughtsさん企画の「Titanium Advent Calendar 2011」向けに書きました。

 

補欠でこっそり手を挙げたら順番が回ってきてあわてて書きます。とりあえず、 Android モジュールを呼んでみちゃいます。Titanium 1.8  もでて、もしかしたら誰もまだ試してないかも。。。なんて///

ぶっちゃけここここの通りなんですが、よくわからいよ!という方のために私もよくわからないのですが一緒にがんばりましょう!ちなみに一番大変かもしれない Android 開発環境は設定済みという前提です。さらににNative Development Toolsから Android NDK なるものもダウンロードして展開したのちに適当な場所に置いてくだしあ
このとき!ディレクトリ名にスペースが含まれていると後々 ant で失敗します!くれぐれも「/Library/Application\ Suppor」の下などに置かないようにしましょう!

まず、iOS モジュールの説明と同じように titanium ってコマンドを使えるように、.bash_profile に以下を追記します。しなくてもいいんですけどね。

 alias titanium='/Library/Application\ Support/Titanium/mobilesdk/osx/1.8.0.1/titanium.py' 

bash_profile を読み込んでから試しに titanium とターミナルで打ち込んでやると、あらふしぎ!

では、次は Android module を作ってやります。これは Titanium のドキュメントを参考に、私の環境では以下の通りに hello という module を作ってみましょう。

 titanium create --platform=android --type=module --name=hello --id=jp.mayutan.hello --android=/Library/Application\ Support/android-sdk-macosx 

じゃーん!どうやらモジュール君が生成されました!

ではこいつをつかってごにょごにょしちゃうぞ!
時間がないので、さっさと eclipse を起動します。みなさん起動しましたか?しましたね!ドキュメントに従って先ほど作った module を import しましょう。
Packege Explorer で右クリック → General → Existing Projects into Workspace で先ほどの module を browse ボタンを押して選択して Finish !

そしてドキュメントを欲読むと、

 Building from command line / Ant 

なにやら ant してやらんといけないらしいです。 まず、 hello 直下にある manifest ファイルを開き、apiversion: 2 となっている事を確認します。さらに、build.properties に 

android.ndk=/Library/ApplicationSupport/android-ndk-r7
titanium.sdk=/Library/Application\ Support/Titanium/
titanium.os=osx
titanium.version=1.8.0.1
android.sdk=/usr/android-sdk

を追記して、 ant を実行します。じゃーーん。成功しましたね。すると、project/dest/jp.mayutan.hello-android-0.1.zip というファイルができています。これが配布用の zip らしいです。命名規則は $MODULE_ID-android-$MODULE_VERSION.zip らしいです。

Titanium 嬢で Android 対応プロジェクト(名前は適当に est/)を作成し、/path/Titainum 直下に zip をコピーします。そして test プロジェクト直下に生成された tiapp.xml

  
  
  jp.mayutan.hello

と追加し、 そしてエミュレターを起動!私の環境ですと /Librar y/Application Support/Titanium/modules/android/jp.mayutan.hello 以下にバージョンのモジュールが展開されました。

/Library/Application Support/Titanium/modules/android/jp.mayutan.hello/0 .1/exmple/app.js をそのまま Titanium project の Resouce/app.js にコピペして実行してみましょう。 

じゃーん!

label に HelloModule の example  を呼び出した値が反映されてますね!

 こんな感じで呼び出せますのでみんなじゃんじゃん呼び出しちゃいましょう。
ただ、こんなに大変なら普通に java で書いた方がいいんじゃ、という気がしましたが、おそらく気のせいです。 


今回は思ったより開発環境の設定などに時間がかかってしまったり、さらにはてなブログで写真を投稿できずに四苦八苦してしまったりで締め切りをすぎてしまって本当に申し訳ありませんでした。
参加させていただいてありがとうございます!みなさんよいお年を!