除了代码的可移植性之外,将JavaFX用于android项目而不是android UI本身有什么优势

Sri*_*nda 3 java user-interface android portability javafx

大多数人在javafx上制作他们的android项目的原因是在不同平台上有相同的代码库(例如ios,桌面,android,甚至可能是使用Bck2Brwsr/teavm/doppio的web)

但我的问题是,与android ui框架相比,javafx ui框架本身有什么优势吗?

我从来没有为Android编写过hello world应用程序,但我打算现在就这样做.因此,我想知道在javafx中使用代码是否值得付出努力,除了可移植性的好处之外,我可以直接在android上开发.

小智 9

这类问题可能会产生主观/自以为是的答案,但我认为这是一个很好的问题,所以我会提供我的评估.

  1. 在所有这些平台上拥有相同的代码库是巨大的.不要忽视这一点.我正在使用Gluon MobileDeep Space Trajectory Explorer(DSTE)的各个方面移植到Android和iOS.正如您从视频中看到的那样极其复杂的应用程序.我无法在原生Android中重写它......从成本角度来看,这是不可取的.
  2. 从JavaFX开始开发可以更轻松地制作复杂的视觉效果.我不只是指传统的2D GUI形式.再看看DSTE,您将看到我们使用Canvas进行密集渲染,JavaFX 3D与FXyz库一起进行3D渲染.这些东西在JavaFX中很容易,并且在Android/iOS上再次使用Gluon只是"正常工作".事实上,只需要一天时间就可以将DSTE代码库的这些方面用于Pixel C平板电脑,其中大部分都是正确的Gradle构建设置.现在想象必须将3D代码从JavaFX移植到Native框架?我是一个3D人,我仍然不会尝试.
  3. 桌面上的测试比移动设备更容易.这并不意味着桌面上的测试是100%.有时在桌面上工作的东西"在移动平台上无效",你必须相应调整.但是,您可以使用JavaFX节省大量时间站在应用程序上,因为它知道90%的应用程序在移动设备上的工作方式相同.

尽管如此......请记住桌面应用程序不是移动应用程序.您将很想将桌面应用程序"移植"到您的设备上.我是我的第一次.您可以进入其他问题,您为桌面设计的接口和布局在移动设备上"工作"但不合适,因此可用性会降低.移植时启动缓慢.想一想应该调动桌面工作流程的哪些方面.仅移植您在移动工作流程中绝对属于的内容.省去一些头疼的事.

  • 呵呵...我其实很害怕问这个问题,因为我问的问题可能会产生毫无成效的主观/固执己见的答案,所以我会得到负分。不过还是谢谢你的回答。你所说的在各个方面对我来说都很有意义。也想看看其他人对此的回答。 (2认同)