在iOS项目中使用Java库
我正在开发一个项目,需要基于相对复杂的规则集进行业务逻辑计算。 卡路里将在以下平台上执行:
- Android应用
- iOS应用
- Java EE应用程序容器
业务逻辑不依赖于任何平台的具体细节,而是严格的“数字运算”。
为了避免Java和Objective C的双重实现,需要进行精细的测试等等,我想创建一个包含实现的Java库,并在iOS应用程序中使用它。
什么是最好的方法来做到这一点? 为Objective C做一个本地端口会更好吗? 反过来,最好是用Objective C编写库并在Android / Java上使用它?
如何在iOS应用程序中使用Java库是没有办法的。 Java需要运行时才能解释(JRE),而在iOS上则没有。
从技术上讲,你可以编译一个Java库到本地代码(有工具),但我不推荐它。
为了在Android和iOS之间共享业务代码,最好的解决方案是使用纯C库。 您可以使用JNI(Android的NDK)从Java调用C库。
因为Obj-C只是纯C的一个小对象层,所以可以很容易地从Obj-C使用C库。
你也可以为NDK编译Obj-C,但是比使用C要复杂得多。
你可以尝试使用j2objc解析java库到Objective C https://code.google.com/p/j2objc/
更新:这个Swift Java桥梁正在开发中https://github.com/SwiftJava/SwiftJava/blob/master/README.md
在这种情况下,你应该编写你的逻辑的C实现,并为Android应用程序使用JNI。
所以你不会重复自己
Kotlin Native现在有一个Swift集成。 所以有了一些构建过程的开销,你可以用iOS和Android共享用Kotlin编写的业务逻辑。
您无法在iOS中使用任何与Java相关的代码或应用程序。 你必须在本地端口上工作。 iOS没有jvm。