Apakah mungkin menjalankan aplikasi JavaFX di iOS, Android atau Windows Phone 8?

105

Bisakah seseorang mengembangkan seluruh aplikasi menggunakan JavaFX dan menjalankannya di iOS, Android atau Windows Phone 8, tanpa menulis kode khusus platform?

mmm
sumber
1
Saya kira tidak. Lihat di sini: news.kynosarges.org/2013/10/10/javafx-on-ios-android
Viktor K.
1
Oracle mengembangkan ADF mobile. Lihat ini. Ini mendukung iOS dan android.
Alexander Kirov
Cari saja kata javafxports di www. Sebagian besar fitur javafx berfungsi dengan baik di windows / android / iOS. Saat ini, ada beberapa fitur yang belum berfungsi di android seperti: Task.cancel () atau karakter unicode internasional, atau pemutar media fx, dll.
Amin

Jawaban:

61

Latar Belakang

Jawaban invarian adalah sumber yang bagus tentang bagaimana semuanya dimulai dan bagaimana keadaan JavaFX di embedded dan mobile pada awal 2014. Namun, banyak hal telah berubah sejak saat itu dan pengguna yang tersandung di thread ini tidak mendapatkan informasi yang diperbarui.

Sebagian besar poin saya terkait dengan jawaban Invarian, jadi saya sarankan untuk membahasnya terlebih dahulu.

Status JavaFX Saat Ini di Seluler / Tertanam

Beberapa kabar buruk dulu:

Sekarang, kabar baik:

  • JavaFX masih berjalan di Android, iOS dan sebagian besar perangkat yang disematkan
  • JavaFXPorts SDK untuk android, iOS dan perangkat yang disematkan dapat diunduh dari sini
  • Proyek JavaFXPorts masih berkembang dan lebih mudah dari sebelumnya untuk menjalankan JavaFX di perangkat seluler, semua berkat plugin IDE yang dibangun di atas SDK ini dan Anda mulai dalam beberapa menit tanpa perlu menginstal SDK apa pun
  • JavaFX 3D sekarang didukung di perangkat seluler
  • GluonVM untuk menggantikan RoboVM memungkinkan dukungan Java 9 untuk pengembang seluler. ya, Anda tidak salah dengar.
  • Proyek Seluler telah diluncurkan oleh Oracle untuk mendukung JDK di semua platform seluler utama. Ini harus mendukung JavaFX juga;)

Bagaimana cara memulai

Jika Anda bukan tipe DIY, saya sarankan untuk menginstal plugin IDE pada IDE favorit Anda dan memulai.

Sebagian besar dokumentasi tentang cara memulai dapat ditemukan di sini dan beberapa contoh dapat ditemukan di sini .

ItachiUchiha
sumber
Saya tidak yakin kapan terakhir kali Anda menggunakan JavaFX tetapi banyak perbaikan telah terjadi di JavaFX 8. Banyak juga yang berubah dari JavaFXPorts awal menjadi Gluon Mobile.
ItachiUchiha
Terima kasih atas pembaruan ini. Pertanyaan singkatnya, apakah JavaFXPorts gratis digunakan untuk tujuan komersial (menggunakan pustaka, bukan mengubahnya)? Saya memiliki basis kode JavaFX yang saya harap dapat diintegrasikan ke dalam Android. Gluon Mobile menawarkan uji coba gratis, tetapi saya membutuhkan solusi permanen. Apakah JavaFXPorts (bukan Gluon Mobile) solusinya? Harap klarifikasi
Nova
@Ova.hai. Ya, JavaFXPorts berada di bawah pengecualian GPLv2 + CLASSPATH sehingga Anda dapat menggunakannya dalam proyek Anda tanpa khawatir. Tapi, karena JavaFXPorts hanya memberi Anda dukungan minimal (tidak ada dukungan IDE + tidak ada kontrol Seluler), saya akan skeptis untuk memilihnya untuk sesuatu yang komersial. Gluon Mobile gratis untuk digunakan, hanya memiliki layar Nag saat aplikasi Anda dimulai (untuk versi gratis). Tapi, Anda dapat menyingkirkannya saat aplikasi Anda terkenal dengan membayar biaya :)
ItachiUchiha
@ItachiUchiha kedengarannya menjanjikan! Satu pertanyaan terakhir: Perbandingan produk Gluon Mobile yang ditemukan di sini menunjukkan layar cerewet adalah satu-satunya perbedaan antara tingkat gratis dan tingkat Indie. Apakah aman untuk mengasumsikan bahwa saya dapat menggunakan versi gratis untuk penggunaan komersial, untuk waktu yang tidak terbatas? Seperti, tidak ada tanggal kedaluwarsa? Saya dapat menangani layar cerewet sampai dana masuk :) Terima kasih telah mengklarifikasi
Nova
1
Maaf, satu pertanyaan lagi: Kode JavaFX saya 90% lengkap dengan 20.000+ baris kode. Apakah saya masih dapat mengintegrasikan Gluon Mobile ke dalam basis kode saya ... atau apakah saya perlu menggunakannya dari awal, sebelum saya menulis satu baris? Thx
Nova
75

Ya, Anda dapat menjalankan aplikasi JavaFX di iOS, android, desktop, RaspberryPI (belum ada windows8 mobile).

Bekerja dalam Tindakan:

Kita berhasil! Proyek multimedia JavaFX8 di iPad, Android, Windows dan Mac!

JavaFX Di Mana Saja

Ensemble8 Javafx8 Android Demo

Contoh Aplikasi JavaFX Saya Berjalan di Raspberry Pi

Aplikasi Sampel Saya Berjalan di Android

JavaFX di iOS dan Android

Sumber Daya Dev:

Android:

Membangun dan menerapkan Aplikasi JavaFX di Android

iOS:

Dukungan NetBeans untuk JavaFX untuk iOS sudah keluar!

Kembangkan aplikasi JavaFX + iOS dengan alat clipse RoboVM + e (fx) dalam 10 menit

Jika Anda ingin mengembangkan aplikasi yang serius, berikut adalah beberapa info lebih lanjut

Lain-lain:

Saat ini untuk daftar prioritas Oracle JavaFX adalah Desktop (Mac, windows, linux) dan Embedded (Raspberry Pi, beagle Board dll) . Untuk iOS / android oracle dilakukan sebagian besar kerja keras dan operasional javafxports dari platform ini sebagai bagian dari OpenJFX, tetapi ada bukan JVM dari oracle untuk ios / android. Komunitas mengumpulkan semuanya dengan mengisi bagian yang hilang (JVM) untuk ios / android, Komunitas membuat kemajuan yang baik dalam menjalankan JavaFX di ios ( RoboVM) / android ( DalvikVM ). Jika mau, Anda juga dapat berkontribusi ke komunitas dengan mensponsori ( Menjadi sponsor RoboVM ) atau mulai mengembangkan aplikasi dan melaporkan masalah.

Edit 23/06/2014:

Johan Vos membuat situs web untuk port javafx JavaFX di Seluler dan Tablet , periksa ini untuk info terbaru ..

invarian
sumber
3
RoboVM memiliki logo terbaik yang PERNAH. Itu seekor burung, itu diacungi jempol, bukan itu pesawat!
Aleksandr Dubinsky
Anda dapat menambahkan tautan itu: youtube.com/watch?v=a3dAteWr40k&feature=youtu.be ;-)
assylias
@invariant seberapa baik integrasi dan akses ke mikrofon, akselerometer, gps, kamera, dan sebagainya untuk berbagai perangkat?
mmm
Tautan pertama sudah mati. Versi yang diarsipkan: web.archive.org/web/20141008171951/http://…
Miscreant
4

Desktop: dukungan kelas satu

Oracle JavaFX dari Java SE hanya mendukung OS X (macOS), GNU / Linux dan Microsoft Windows . Pada platform ini, aplikasi JavaFX biasanya dijalankan di JVM dari Java SE atau OpenJDK.

Android: seharusnya berfungsi

Ada juga proyek JavaFXPorts , yang merupakan proyek sumber terbuka yang disponsori oleh pihak ketiga . Ini bertujuan untuk mem-port pustaka JavaFX ke Android dan iOS.

Di Android, pustaka ini bisa digunakan seperti pustaka Java lainnya; yang bytecode JVM dikompilasi ke Dalvik bytecode . Itu yang orang maksud dengan mengatakan bahwa "Android menjalankan Java".

iOS: status tidak jelas

Di iOS, situasinya sedikit lebih kompleks, karena baik Java SE maupun OpenJDK tidak mendukung perangkat seluler Apple. Sampai saat ini, satu-satunya pilihan yang masuk akal adalah menggunakan kompiler Java RoboVM sebelumnya untuk iOS. Sayangnya, pada 15 April 2015, proyek RoboVM ditutup .

Salah satu alternatif yang mungkin adalah Mesin Multi-OS Intel . Sampai saat ini, itu adalah teknologi berpemilik, tetapi pada 11 Agustus 2016 itu bersumber terbuka . Meskipun dimungkinkan untuk mengompilasi aplikasi JavaFX iOS menggunakan implementasi JavaFX JavaFXPorts, sejauh ini tidak ada bukti untuk itu. Seperti yang Anda lihat, situasinya berubah secara dinamis, dan jawaban ini mudah-mudahan akan diperbarui ketika informasi baru tersedia.

Windows Phone: tidak ada dukungan

Dengan Windows Phone itu sederhana: tidak ada dukungan JavaFX apa pun.

cubuspl42.dll
sumber
2

Bisa jadi. Anda juga bisa mendapatkan olahraga komersial.

JavaFXPorts adalah nama proyek open source yang dikelola oleh Gluon yang mengembangkan kode yang diperlukan untuk Java dan JavaFX agar berjalan dengan baik di perangkat seluler dan perangkat keras tertanam. Tujuan dari proyek ini adalah untuk memberikan kontribusi sebanyak mungkin kembali ke proyek OpenJFX jika memungkinkan, dan jika tidak memungkinkan, untuk mempertahankan jumlah minimal perubahan yang diperlukan untuk mengaktifkan tujuan JavaFXPorts. Gluon mengambil kode sumber JavaFXPorts dan mengompilasinya menjadi biner yang siap untuk diterapkan ke iOS, Android, dan perangkat keras yang disematkan. Build JavaFXPorts tersedia secara gratis di situs web ini untuk semua pengembang.

http://gluonhq.com/labs/javafxports/

jeton
sumber
-4
  1. ya, Anda dapat menjalankannya di iOS dan Android (Win8 tidak didukung!
  2. tidak ada penerapan karena aplikasi web tidak berfungsi
tomsontom.dll
sumber