我怀着极大的兴趣一直关注 RoboVM 进行 iOS 开发。有人可以向我指出在 iOS 上运行时您的 JavaFX(或您使用的任何技术)的限制吗?
例如,您可以使用 Spring 吗?我想这永远不可能,因为 RoboVM 使用了提前编译器,而 Spring 是运行时依赖注入。有人可以详细说明吗?
JPA 和其他 Java EE 技术怎么样?
RoboVM 支持您对 JVM 的大多数期望,包括反射,这是 Spring 用于其依赖注入的。像RoboGuice这样的东西应该可以在 RoboVM 上正常工作。
RoboVM 不支持的最显着特性是运行时字节码的生成和加载。依赖字节码操作的库将无法在 RoboVM 上使用。
RoboVM 缺少的另一件事是对动态 JNI 的支持。JNI 仍然受支持,但本机代码必须在编译时静态链接,而不是像普通 JVM 那样在运行时动态链接。原因是普通的JNI是基于动态库的,而iOS上不允许使用动态库。
RoboVM 的运行时类库(java.*
、javax.*
等)基于 Android 运行时类库的非 UI 部分。因此,任何适用于 Android 且不使用 Android UI 类的技术理论上都应该适用于 RoboVM。