2013-10-23 9 views
5

私はRoboVMのiOS開発に大きな関心を寄せています。誰かがあなたのJavaFX(またはあなたが使っている技術)の制約をiOS上で指摘してくれますか?RoboVM先験的コンパイラの基本的な制約

たとえば、Springを使用できますか? RoboVMは事前コンパイラを使用しており、Springはランタイム依存性注入を使用しているため、これは決して可能ではないでしょう。誰かが詳しく説明できますか?

JPAと他のJava EEテクノロジーについてはどうですか?

答えて

8

RoboVMは、Springが依存性注入に使用するリフレクションを含む、JVMから期待されるほとんどのものをサポートします。 RoboGuiceのようなものは、RoboVMで正常に動作するはずです。

RoboVMでサポートされていない最も注目すべき機能は、ランタイムバイトコードの生成とロードです。バイトコード操作に依存するライブラリは、RoboVMでは使用できません。

RoboVMには、動的JNIのサポートがありません。 JNIは引き続きサポートされていますが、ネイティブコードは、通常のJVMが実行するように実行時に動的にではなく、コンパイル時に静的にリンクする必要があります。その理由は、通常のJNIはダイナミックライブラリをベースにしていますが、ダイナミックライブラリはiOSでは使用できないためです。

RoboVMのランタイムクラスライブラリ(java.*,など)は、AndroidのランタイムクラスライブラリのUI以外の部分に基づいています。したがって、Androidで動作し、Android UIクラスを使用しない技術は理論上はRoboVMで動作するはずです。

+0

ありがとうございますので、AspectJは動作しません。 – HighTML

+2

静的織りを使用すると機能します。 – ntherning