2009-06-05 7 views
3

BlackberryとRIMの両方で実行する必要のあるプロジェクトにJiBXを使用することを検討しています。 JiBXJ2MEの使用がコミュニティによって検討されているようですが(JiBXジラチケットごとに)、Androidは比較的新しいです。AndroidのJiBX(または他のビルド時のバイトコード操作ライブラリ)

これは、AndroidでJiBXを使用して誰かが成功したことがありますか?またはビルド時にクラスのバイトコードを変更する必要がある他のライブラリですか?

(実行時のバイトコード計測を使用した場合と比べて)Androidでこのようなライブラリをどのように実行できるかについては議論がありましたが、これを実際に試みている人に関するレポートはあまり多くありませんでした。

答えて

0

私はXMLPull APIをXMLPull APIの上に書いてみることにしました。

私のスキーマが現在よりも複雑になった(そして私には時間がかかる)場合は、ANTLRベースのXMLパーサジェネレータを作成して個々のスキーマのパーサーの実際のJavaコードを生成することを試してみたいと思います。

現時点では、モバイル用のJava世代はモバイル用のバイトコード生成よりもずっと安全で優れています。

1

アンドロイドはバイトコードを実行しないため、動作しません。 AndroidのJavaランタイムは、クラスファイルではなく.dexファイルを実行するレジスタベースの仮想マシン(Dvalik)を使用します。理論的には、Javaバイトコードの代わりにそれらを生成することができます。

+4

Dalvikは特別なバイトコード形式の.dexを実行しますが、標準のjavaバイトコードを.dex形式(表記here)に変換するdxというGoogle提供のツールがあります。 したがって理論的には、ビルド時にバイトコードを操作し、標準準拠のJavaバイトコードを生成するlibは、アンドロイドでも動作します.dxツールは結果のバイトコードを.dexに変換します。 –

1

はい、JiBXを使用してAndroidアプリケーションでプロトタイプを作成しました。 jibx jarをAndroidプロジェクトライブラリとして追加すると、自動的にdexにパッケージ化されます。実際、JiBXのバインディングはAndroidでうまく動作します。私は3つのジャーを入れるだけです。 Jibx-run.jar、jibx-ws-0.9-bata.jarと私のgenereatedバインディングジャー。そして、アンドロイドアプリケーションはSOAPクライアント呼び出しを行うことができます。オブジェクトバインディングに対するxmlは、内部的にjibxによって処理されます。

関連する問題