如何使用JavaFX和GraalVM创建移动App?


本文介绍了 JavaFX、Gluon Substrate 和 GraalVM 如何协同工作,帮助用户创建强大、灵活的桌面应用程序,这些应用程序也可以在移动和嵌入式客户端上运行。然后它展示了如何快速创建一个示例应用程序,并为您指出市场上已经利用这种成功组合的应用程序。
除了作为桌面应用程序的多功能平台之外,具有Gluon Substrate 支持的 JavaFX 允许GraalVM Native Image将 Java 字节码转换为可执行文件,然后向目标文件添加一些功能以将其与所需的一切捆绑在一起。这是一个绝佳的机会,因为最终用户无需担心系统的 JDK 或类似问题。此时,JavaFX 应用程序与用户系统上的任何其他应用程序一样只是本机应用程序。
由于native-image实用程序执行的封闭世界分析,只有应用程序所需的代码才会被编译并链接到最终的本地可执行文件中。这减少了应用程序的占用空间,还降低了安全风险,因为您的应用程序未使用的代码中的漏洞不会存在于最终镜像中。
GraalVM 在与iOS 的互操作性方面具有巨大优势: Apple 条款和条件不允许动态编译的代码在 iOS 设备上执行。为了克服这个限制,所有的字节码都需要提前编译成 iOS 原生代码。这就是 GraalVM Native Image 正在做的事情。使用 GraalVM Native Image 进行提前编译提供了更多机会:在进入目标设备之前预编译的代码不再需要在设备上编译。这也直接转化为更快的启动和更低的内存需求。
然后是 Native Image 中的LLVM后端,它允许您将 Java 字节码转换为 LLVM 位码,从而允许您使用任何 LLVM 后端编译器来针对 iOS。在那之后,当然,它必须与所有所需的本机代码捆绑在一起:Java 类库的本机代码、JavaFX 库的本机代码、依赖于平台的硬件探索等。
在此过程中,Gluon Substrate可帮助您完成所有这些任务:您的应用程序代码及其依赖项将由 Gluon Substrate 发现。它将引入包含静态库的所需 Java SDK,以及包含 JavaFX 静态库的 JavaFX SDK。之后,将应用 GraalVM Native Image 创建一个目标文件,并捆绑所有内容。因此,您将获得一个在桌面、移动或嵌入式客户端上运行的应用程序。
  
有两种方法可以开始使用 JavaFX:在本地下载 SDK,或者使用 Maven。如果您下载 SDK,除了 JavaFX 库之外,您还需要下载本机库。如果您从 Maven 下载,则本机库是您为特定平台下载的 JAR 文件的一部分。
还有 IDE 插件可以帮助开发人员在 NetBeans、IntelliJ IDEA 或 Eclipse 中尽快开始使用 JavaFX,您不必担心 JavaFX 的“低级”部分。
最后,这可能是最简单的方法,您可以在Gluon Start网站上生成一个 JavaFX 项目,您可以在其中选择 Java 版本、cherrypick Gluon 功能、预览pom.xml等。
 
案例:https : //github.com/gluonhq/gluon-samples
详细点击标题