我正在开发一个项目,需要基于相对复杂的规则集进行业务逻辑计算。 calucations将在以下平台上执行:
业务逻辑不依赖于任何平台特定的细节,但严格来说是“数字运算”。
为了避免Java和Objective C的双重实现,这需要精心的测试等等,我想创建一个Java库来保存实现并在iOS应用程序中使用它。
最好的方法是什么?为Objective C做一个原生端口会更好吗?以相反的方式做它并在Objective C中编写库并在Android / Java上使用它会更好吗?
答案 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中编写的业务逻辑。
答案 3 :(得分:2)
答案 4 :(得分:1)
您无法在iOS中使用任何与java相关的代码或应用程序。您必须在本机端口上工作。 iOS没有jvm。