6

我刚刚开发了一个 JavaFx 应用程序,它使用 RXTX 库进行串行通信,未来将使用 Bluecove 进行蓝牙。我知道有一些方法可以在 Android 设备上运行 JavaFx 应用程序,所以我开始了我的研究。

第一个选项是使用 Android 应用程序“Java Manager”运行“jar”打包应用程序。这里的问题是我不知道如何处理外部库,因为在我可以放置它们的 android 设备上没有标准的 JVM。我找到了这个项目“ http://v-lad.org/projects/gnu.io.android/ ”,但它似乎是面向Android应用程序的。

因此,当我找到“ http://javafxports.org/ ”时,我尝试使用它迈出第一步。这个项目似乎是我需要的,但我是 Android 的新手,我发现文档有点混乱,所以我不知道从哪里开始。此外,我仍然不确定是否可以通过这种方法在 Android 中使用这些 java 库。

有谁知道我假装是否可行?在这种情况下,我应该遵循哪些步骤?

4

1 回答 1

3

您已经可以尝试 JavaFXPorts 插件。它正在持续开发中,但最近的版本已经足够成熟,可以毫无问题地使用它。

看看这里开始的基本要求。您将需要 JDK8u40+、Gradle 2.2+、Android SDK 和 Android Build 工具。

一切准备就绪后,您就可以试用样品了。

另外我建议你看看Gluon-plugin for NetBeans。基本上,它将为您创建一个新的空 JavaFX 项目,您将能够构建它并将其部署在您的桌面、Android 和 iOS 平台上。

看一下build.gradle文件:

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'org.javafxports:jfxmobile-plugin:1.0.0-b4'
    }
}

apply plugin: 'org.javafxports.jfxmobile'

repositories {
    jcenter()
}

mainClassName = 'org.test.javafxports.TestJavaFX'

jfxmobile {
    ios {
        forceLinkClasses = [ 'org.test.javafxports.**.*' ]
    }
}

首先,您只需要更新插件版本。在此处查看最后一个:1.0.0-b8。

在您的桌面上构建并运行,或运行 androidInstall 等任务来生成 apk 并将其部署到您的 Android 手机上。

一旦您对其进行了测试,并且一切正常,您就可以开始添加项目的代码了。

回到您的问题,是的,您可以将任何第三方 jar 添加到项目中。

基本上你只需要添加对 gradle 文件的依赖。您可以使用compileruntime与本地文件或来自外部存储库:

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'org.javafxports:jfxmobile-plugin:1.0.0-b8'
    }
}

apply plugin: 'org.javafxports.jfxmobile'

repositories {
    jcenter()
}

dependencies {
    compile files('lib/<your local jar>.jar')
    compile 'org.glassfish:javax.json:1.0.4'
    androidCompile 'org.glassfish:javax.json:1.0.4'
}

mainClassName = 'org.test.javafxports.TestJavaFX'

jfxmobile {
    ios {
        forceLinkClasses = [ 'org.test.javafxports.**.*' ]
    }
}

请注意,您可以添加仅添加到一个单一平台的依赖项,例如androidCompileandroidRuntime.

由于该 apk 将在 Dalvik VM 上运行,因此只允许使用 Java 7 功能。不过,您可以使用 lambda,因为该插件在您的代码内部使用了 Retrolambda 项目。请注意,它不适用于添加的罐子。

作为在您的项目中使用 jar 的示例,您可以使用 Gluon-Charm-Down 开源库,该库已经提供了对您设备上某些本机服务的访问,例如本地存储或 GPS。

dependencies {
    compile 'com.gluonhq:charm-down-common:0.0.1'
    androidRuntime 'com.gluonhq:charm-down-android:0.0.1'
    desktopRuntime 'com.gluonhq:charm-down-desktop:0.0.1'
}

事实上,通过 jfxmobile 插件和这个库,2048FX游戏已经成功移植到 Android(Google Play)和 iOS(Apple Store)。

于 2015-05-12T13:22:44.540 回答