6

シリアル通信に RXTX ライブラリを使用する JavaFx アプリケーションを開発しましたが、将来は Bluetooth に Bluecove を使用する予定です。Android デバイスで JavaFx アプリを実行するにはいくつかの方法があることを理解していたので、調査を開始しました。

最初のオプションは、Android アプリ「Java Manager」で「jar」パッケージ アプリを実行することでした。ここでの問題は、外部ライブラリを配置できる標準の JVM が Android デバイスにないため、外部ライブラリをどう処理すればよいか分からないことです。このプロジェクト「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 ビルド ツールが必要です。

すべての準備が整ったら、サンプルを試すことができます。

また、NetBeansの Gluon-pluginもご覧になることをお勧めします。基本的に、新しい空の 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 ファイルに依存関係を追加するだけです。ローカル ファイルまたは外部リポジトリからcompileまたはを使用できます。runtime

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.**.*' ]
    }
}

androidCompileやなど、1 つのプラットフォームにのみ追加される依存関係を追加できることに注意してくださいandroidRuntime

apk は Dalvik VM で実行されるため、Java 7 機能のみが許可されます。ただし、プラグインはコードの内部で Retrolambda プロジェクトを使用するため、ラムダを使用できます。追加された jar には適用されないことに注意してください。

プロジェクトで 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 に答える