代号一(或ParparVM)如何将Java库编译成iOS库
Codename One (or ParparVM) how to compile Java library into iOS library
通过查看 Codename One 网站和 ParparVM Github,它的指南仅展示了如何将 Java(具有 Java 主函数入口点)构建到本机 executable/app (iOS),但我找不到任何将 build/compile Java 转换为 iOS 共享库的指南(无论是 C 源代码还是二进制文件,只要可以iOS 应用中的 swift/objective-C 重复使用。
那我们能做到吗?有什么指南吗?
它不是为此目的而设计的,因此它可能不会很好地工作。有一些固有的设计决策会使 ParparVM 与库一起工作变得非常困难。两个大的:
GC 需要与 root 一起工作,如果没有完全控制应用程序将很难收集
生成的代码看起来“很糟糕”。方法名称转换为 C 中非常长的函数名称,语法非常复杂,以允许各种 VM 边缘情况,例如协方差
我建议你看看 J2ObjC。我已经很久没有检查过了,但它的设计正是考虑到了这个用例。它没有“真正的”GC,但对于 ARC 可能没问题。它与您的资源一起工作,并生成在 iOS.
上看起来更“自然”的库
通过查看 Codename One 网站和 ParparVM Github,它的指南仅展示了如何将 Java(具有 Java 主函数入口点)构建到本机 executable/app (iOS),但我找不到任何将 build/compile Java 转换为 iOS 共享库的指南(无论是 C 源代码还是二进制文件,只要可以iOS 应用中的 swift/objective-C 重复使用。
那我们能做到吗?有什么指南吗?
它不是为此目的而设计的,因此它可能不会很好地工作。有一些固有的设计决策会使 ParparVM 与库一起工作变得非常困难。两个大的:
GC 需要与 root 一起工作,如果没有完全控制应用程序将很难收集
生成的代码看起来“很糟糕”。方法名称转换为 C 中非常长的函数名称,语法非常复杂,以允许各种 VM 边缘情况,例如协方差
我建议你看看 J2ObjC。我已经很久没有检查过了,但它的设计正是考虑到了这个用例。它没有“真正的”GC,但对于 ARC 可能没问题。它与您的资源一起工作,并生成在 iOS.
上看起来更“自然”的库