Gluon:在 iOS 和 Android 上运行同一份 Java 代码

Gluon 宣布
,支持同一份 JavaFX 应用程序代码在 PC、Mac、iOS 和 Android 上运行,该支持目前尚处于 Beta 阶段。因此,开发人员可以使用自己熟悉的语言和工具,为每个应用程序而不是每个设备管理一个代码库。

该工具链扩展了 Jose Perada 和 Bruno Borges 在 2015 年所做的工作,他们为 Android 开发了 一款名为2048FX 的JavaFX 游戏
Gluon 也是从 Java 9 开始推动移动 Java
。对于在 iOS 上运行,Gluon 的工具套件有几个方面值得注意,这些都是通过构建管道自动实现的:

  • OpenJDK 库是作为针对目标平台编译而成的静态库引入的;
  • OpenJFX 是面向用户交互的图形框架,适用于所有目标平台;
  • 原生模式的 GraalVM 提供了关键的、针对目标平台构建的运行时。

当和 javafxmobile
插件搭配使用时,最终结果是 iOS 和 Android 平台上的一个二进制形式的原生应用程序。与典型的桌面或服务器 Java 应用程序不同,iOS 和 Android 应用程序完全是 提前编译
的、原生的,并且不使用字节码或 Just In Time(JIT)编译。

AOT 编译用于提供对设备的直接访问,启动速度更快。对于基于服务器的应用程序,Andrew Dinn 从技术上对 为什么 AOT 并不一定比 JIT 快
进行了分析。它们都是 Gluon 栈中的选项,而 AOT 是优先选项。

大约两年前,Codename One 首席执行官 Shai Almog 说,“ Gluon 和 RoboVM 一样已经死了
。”RoboVM 是一个类似的项目,它在移动设备上运行 JavaFX。这种说法与技术人员以及以宣称 Java 已死
它并没有死
)为职业的 记者的说法
类似。2016 年,Redmonk 认定 “Java 已死”这种说法已经死了
。Almog 关于RoboVM 的说法是正确的,因为RoboVM 被Xamarin 收购了,而 Xamarin 被微软收购
,并集成到了 Visual Studio 栈中。虽然名称已经更改,但 文档和资料仍然可用

希望为 iOS 构建 JavaFX 应用程序的开发人员可以参考 Gluon 的 文档
SceneBuilder
是一个单独的工具,可以帮助开发人员设计一个在每个平台上运行的用户界面。获得可视化库有许多渠道,其中, Jonathan Giles 会定期收集和报道 JavaFX 活动
。Giles 是 ControlsFX
Scenic View
这两个重要的库的作者。ControlsFX 是一套交互式可视化组件,而 Scenic View 是分析器,可以帮助检查正在运行的图形布局。

原文链接:

Java On iOS and Android via Gluon