大鹏展翅_ParparVM展翅高飞

大鹏展翅

大鹏展翅

我们写了很多关于为iOS构建的新VM的体系结构以及构建它的原因。 直到最近,我们一直将其视为一种Codename One专用工具。 只会对我们有用的东西。 我们之所以使用开放源代码,是因为“这就是我们的方式”,此后没有多加考虑。

最近,我们开始意识到该工具可能对其他开发人员有用,这些开发人员可能会将其用于与我们最初意图不同的方向。 我们还得出结论,这可能完全不是一个坏主意。 因此,我们正在有效地将Codename One VM作为ParparVM启动,它具有许多有趣的优点。

为了避免造成混乱和复杂的支持开销,我们始终表示我们不本地构建Codename One提供支持。 在我们主要的支持渠道是电子邮件和讨论论坛的那一天,这很有意义。 但是,既然我们将支持重点放在StackOverflow上,那么这应该不会成为障碍,因为它不会增加“噪音”。 我们无法保证为每个问题都提供答案,因为这些事情可能会超出我们的舒适范围,但我们将一如既往地尽力而为。 因此,随时可以使用“ codenameone”标签询问有关stackoverflow上的VM和本机编译的问题。

入门

此处提供源代码,虽然应该可以将ByteCodeTranslator和JavaAPI项目设计为NetBeans项目,但可以直接与任何Java IDE或ant一起使用。 它需要asm 5.0.3,您可以在cn1-binaries项目中找到它。 您可以使用以下命令运行翻译过程:

java -jar ByteCodeTranslator.jar ios path_to_stub_class:path_to/vm/JavaAPI/build/classes;path_to_your_classes  dest_build_dir MainClassName com.package.name "Title For Project" "1.0" ios none

翻译过程成功完成后,您应该有一个可以正常运行和使用的有效xcode项目。 您需要一台Mac才能正常工作。 主类名称应具有一个public static void main(String[])方法,并且假定它位于com.package.name目录中(例如,您需要用传递的实际包替换com.package.name给翻译者)。

为什么要使用另一个VM for iOS?

在该领域似乎有很多开源的iOS Java VM,但现实情况是,大多数Java Java VM要么是专有的,要么依赖非常危险的路径。 通过将字节码转换为C源代码,ParparVM实际上是我们知道的唯一VM,它使用Apple支持的100%的Java兼容性。 最接近的第二名是Google的J2ObjC,但这并不是完整的VM,实际上与ParparVM有很大的不同。

XMLVM的C后端具有类似的体系结构,但该项目不再得到积极维护。 积极维护的所有其他适用于iOS的Java VM使用Apple不正式支持的方法,例如LLVM代码或ARM代码。 这使得这些解决方案对于Apple所做的更改非常脆弱。 例如这个报价

我们的工作是在iOS 9公开发布之前及时增加对iOS 9的全面支持,这是我们在生存中面临的最艰巨的挑战之一

亨利克·穆勒

相比之下,ParparVM不需要更改任何代码即可支持iOS 9、64位,位代码或Apple进行的其他更改。ParparVM的核心工作花了我们大约一个月的时间,与之相比,VM显得微不足道。 从这个意义上讲,微不足道也是很好的,因为这意味着即使没有新手也可以在没有严格的编译器工程背景的情况下进一步扩展和增强VM。

采取行动

在Codename One项目中检出ParparVM页面,对其加星标/分叉并开始使用它。 让我们知道您的想法,以及如何改善以下注释中设置的VM覆盖率/功能。 我们认为我们可以向VM添加很多功能作为条件选项,从而保留Codename One不需要的东西作为可以随意打开的第三方扩展。

翻译自: https://www.javacodegeeks.com/2015/12/parparvm-spreads-wings.html

大鹏展翅

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值