让JavaFX运行到移动平台一直是社区努力完成的事。
当然,目前已经可以让JavaFX运行到Android和IOS平台了,下面我们来看看如何打包自己的JavaFX项目到Android平台。
这个示例是我从打包官方示例的例子里修改而来,用于打包一个简单的JavaFX程序。
示例结构如下:
由目录结构可以看到,示例是采用gradle来构建的。gradle也是国外非常火的自动化构建工具。
在第一次打包的时候,需要双击gradlew.bat,会下载一系列的库和包,这里可能会花不少的时间,大家需要等等。
打包的时候需要注意以下的步骤:
1.JavaFX的项目代码放在src/main/java/文件夹下面
2.JavaFX需要的资源放在src/main/resource/文件夹下面
3.修改build.gradle文件,里面的mainClassName表示的JavaFX主类的包结构,applicationPackage表示生成的Android的APK程序的包名,当然我们也可以指定自己的xml,这个是后面需要研究的事。
4.在环境变量里添加ANDROID_HOME,用于指定AndroidSDK的目录。
在完成了上面的操作后,通过cmd进入到示例文件夹的目录里,运行gradle run,看看能否运行,如果能运行,则执行gradle android来打包我们的APK程序。
打包好的APK放在build/javafxports/android目录下面。
另外,有一个重要的点,根据官方说明,JavaFX程序需要通过以下代码来设置Stage的大小,不然在Android设备上的程序分辨率和显示会有问题。
Rectangle2D bounds = Screen.getPrimary().getVisualBounds();
Scene scene = new Scene(root, bounds.getWidth(), bounds.getHeight());
在Android上运行效果如下:
点击颜色,下面会同步显示文本,运行效果良好。
本人之前用JavaFX写的SLG的示例,也可以打包到手机上运行,只有个别问题,当然是因为没有针对移动设备的分辨率进行调整。