2013/05/27

Titanium SDK をMIPS 対応にする(完成か?)

Titanium SDK のMIPS対応の続報です。


前回問題になっていた
libtiverify
libtiprofiler
のMIPS版が存在しない問題ですが、ないなら使わないようにSDKを修正することで対処可能です。今のところこれらがなくても、作成されたアプリは支障なく動作するようです。libtiverifyはおそらくTi アプリ起動時にライセンス等々を確認するためのもの、libprofilerはTiアプリのプロフィリングのためのものだと思われます。

その他、いろいろワーニングがでている箇所を、新しいV8のお作法通りにきれいにして、これで、無事解決と思ったのですが、そうはいかず、ハマってしまいました。

全般的に何となく動いているのですが、Ti.Media.vibrate()など、オブジェクトに対するメソッドを呼んだ場合、実行時に
illegal invocation
になって、肝心の登録された関数本体が呼ばれなくなっていました。あれこれ原因を探るのに時間を浪費してしまいました。
しかし、
[v8] r13131 committed - Change deprecated semantics of function template signatures....
によれば、新しいV8では、元になるFunctionTemplateのプロトタイプがHiddenでなければならないという仕様になったとのことです。

ということで、この修正を加えて、無事オブジェクトに対するメソッドも完動するようになりました。
これで、外部モジュール以外の部分は、問題なく動作するようになっていると思います。
MIPS以外の端末でも、新しいV8の効果が期待できるので、皆さんお試しください。


ソースコード
https://github.com/isis/v8_titanium/tree/gyp
https://github.com/isis/titanium_mobile/tree/mips
バイナリ(テスト用)
https://www.dropbox.com/s/3gn0qfdjzcwd1ld/mobilesdk-3.2.0-osx.zip


0 件のコメント:

コメントを投稿