在iOS项目中使用Java库

时间:2013-02-18 10:30:00

标签: android ios java

我正在开发一个项目,需要基于相对复杂的规则集进行业务逻辑计算。 calucations将在以下平台上执行:

  • Android应用
  • iOS应用
  • Java EE应用程序容器

业务逻辑不依赖于任何平台特定的细节,但严格来说是“数字运算”。

为了避免Java和Objective C的双重实现,这需要精心的测试等等,我想创建一个Java库来保存实现并在iOS应用程序中使用它。

最好的方法是什么?为Objective C做一个原生端口会更好吗?以相反的方式做它并在Objective C中编写库并在Android / Java上使用它会更好吗?

5 个答案:

答案 0 :(得分:8)

如何在iOS应用程序中使用Java库。 Java需要运行时解释(JRE),而你在iOS上没有。

从技术上讲,您可以将Java库编译为本机代码(有适用的工具),但我不推荐它。

为了在Android和iOS之间共享业务代码,最好的解决方案是使用纯C库。您可以使用JNI(NDK for Android)从Java调用C库。

由于Obj-C只是纯C上的一个小对象层,因此您可以从Obj-C轻松使用C库。

您也可以为NDK编译Obj-C,但它比仅使用C要复杂得多。

答案 1 :(得分:4)

您可以尝试使用j2objc https://code.google.com/p/j2objc/

将java库解析为Objective C.

更新:这个Swift Java桥正在开发中 https://github.com/SwiftJava/SwiftJava/blob/master/README.md

答案 2 :(得分:4)

Kotlin Native现在有一个Swift集成。因此,通过一些构建过程开销,您可以与iOS和Android共享在Kotlin中编写的业务逻辑。

https://blog.jetbrains.com/kotlin/2017/12/kotlinnative-v0-5-released-calling-kotlin-from-swift-and-c-llvm-5-and-more/

答案 3 :(得分:2)

在这种情况下,您应该编写逻辑的C实现,并将JNI用于Android应用程序。

所以你不会重复自己

http://en.wikipedia.org/wiki/Java_Native_Interface

答案 4 :(得分:1)

您无法在iOS中使用任何与java相关的代码或应用程序。您必须在本机端口上工作。 iOS没有jvm。