È possibile eseguire applicazioni JavaFX su iOS, Android o Windows Phone 8?


105

È possibile sviluppare un'intera applicazione utilizzando JavaFX ed eseguirla su iOS, Android o Windows Phone 8, senza scrivere codice specifico della piattaforma?



1
Oracle sviluppa ADF mobile. Guarda questo. Supporta iOS e Android.
Alexander Kirov

Basta cercare la parola javafxports su www. La maggior parte delle funzionalità di javafx funziona bene su Windows / Android / iOS. Al momento, ci sono alcune funzionalità che non funzionano ancora su Android come: Task.cancel () o caratteri Unicode internazionali, o il lettore multimediale fx, ecc.
Amin

Risposte:


61

sfondo

La risposta di Invariant è una buona risorsa per sapere come tutto è stato avviato e qual era lo stato di JavaFX su embedded e mobile all'inizio del 2014. Ma da allora molto è cambiato e gli utenti che si imbattono in questo thread non ottengono le informazioni aggiornate.

La maggior parte dei miei punti sono legati alla risposta di Invariant, quindi suggerirei di esaminarla prima.

Stato attuale di JavaFX su dispositivo mobile / integrato

Prima alcune brutte notizie:

Ora, alcune buone notizie:

  • JavaFX funziona ancora su Android, iOS e sulla maggior parte dei dispositivi integrati
  • JavaFXPorts SDK per dispositivi Android, iOS e embedded può essere scaricato da qui
  • Il progetto JavaFXPorts è ancora fiorente ed è più facile che mai eseguire JavaFX su dispositivi mobili, tutto grazie ai plug-in IDE che si basano su questi SDK e ti consentono di iniziare in pochi minuti senza il fastidio di installare alcun SDK
  • JavaFX 3D è ora supportato sui dispositivi mobili
  • GluonVM per sostituire RoboVM abilitando il supporto Java 9 per gli sviluppatori mobili. Sì, hai sentito bene.
  • Mobile Project è stato lanciato da Oracle per supportare JDK su tutte le principali piattaforme mobili. Dovrebbe supportare anche JavaFX;)

Come iniziare

Se non sei il tipo fai-da-te, suggerirei di installare il plug-in IDE sul tuo IDE preferito e iniziare.

La maggior parte della documentazione su come iniziare può essere trovata qui e alcuni degli esempi possono essere trovati qui .


Non sono sicuro di quando hai usato JavaFX l'ultima volta, ma molti miglioramenti sono stati apportati a JavaFX 8. Molto è cambiato anche da JavaFXPorts iniziali a Gluon Mobile.
ItachiUchiha

Grazie per questo aggiornamento. Domanda veloce, JavaFXPorts può essere utilizzato gratuitamente per scopi commerciali (utilizzando la libreria, senza alterarla)? Ho una base di codice JavaFX che spero di integrare in Android in qualche modo. Gluon Mobile offre una prova gratuita, ma ho bisogno di una soluzione permanente. JavaFXPorts (non Gluon Mobile) è la soluzione? Si prega di chiarire
Nova

@Nova Ciao. Sì, JavaFXPorts è sotto l'eccezione GPLv2 + CLASSPATH, quindi puoi usarlo nel tuo progetto senza preoccuparti. Ma, poiché JavaFXPorts ti offre solo un supporto minimo (nessun supporto IDE + nessun controllo mobile), sarei scettico a sceglierlo per qualcosa di commerciale. Gluon Mobile è gratuito, ha solo uno schermo Nag all'avvio dell'applicazione (per la versione gratuita). Ma puoi sbarazzartene quando la tua app è famosa pagando una commissione :)
ItachiUchiha

@ItachiUchiha che sembra promettente! Un'ultima domanda: il confronto dei prodotti Gluon Mobile trovato qui mostra che la schermata nag è l'unica differenza tra il livello gratuito e il livello Indie. È lecito ritenere che posso utilizzare la versione gratuita per uso commerciale, per un tempo illimitato? Come in, nessuna data di scadenza? Posso gestire il ronzio fino a quando non arrivano i fondi :) Grazie per aver chiarito
Nova

1
Scusa, ancora una domanda: il mio codice JavaFX è completo al 90% con oltre 20.000 righe di codice. Posso ancora integrare Gluon Mobile nella mia base di codice ... o devo usarlo dall'inizio, prima di scrivere una singola riga? Thx
Nova

75

Sì, puoi eseguire l'applicazione JavaFX su iOS, Android, desktop, RaspberryPI (non ancora mobile Windows8).

Lavoro in azione:

Ce l'abbiamo fatta! Progetto multimediale JavaFX8 su iPad, Android, Windows e Mac!

JavaFX ovunque

Demo di Ensemble8 Javafx8 Android

La mia applicazione JavaFX di esempio in esecuzione su Raspberry Pi

La mia applicazione di esempio in esecuzione su Android

JavaFX su iOS e Android

Risorse per sviluppatori:

Android:

Creazione e distribuzione di applicazioni JavaFX su Android

iOS:

Il supporto NetBeans per JavaFX per iOS è uscito!

Sviluppa un'app JavaFX + iOS con gli strumenti clipse di RoboVM + e (fx) in 10 minuti

Se hai intenzione di sviluppare applicazioni serie, ecco qualche informazione in più

Varie:

Al momento per JavaFX la lista delle priorità Oracle è Desktop (Mac, Windows, Linux) e Embedded (Raspberry Pi, beagle Board, ecc . ) Per iOS / Android Oracle ha fatto la maggior parte del duro lavoro e degli javafxports opnesourced di queste piattaforme come parte di OpenJFX, ma lì non è una JVM di Oracle per ios / android, la community sta mettendo insieme tutti i pezzi mancanti (JVM) per ios / android, la community ha fatto buoni progressi nell'esecuzione di JavaFX su ios ( RoboVM) / android ( DalvikVM ). Se vuoi puoi anche contribuire alla comunità sponsorizzando ( Diventa uno sponsor RoboVM ) o iniziare a sviluppare app e segnalare problemi.

Modifica 23/06/2014:

Johan Vos ha creato un sito Web per le porte javafx JavaFX su dispositivi mobili e tablet , controlla questo per informazioni aggiornate ..


3
RoboVM ha il miglior logo MAI. È un uccello, è un pollice in su, no è un aereo!
Aleksandr Dubinsky


@invariant quanto sono efficaci l'integrazione e l'accesso a microfono, accelerometro, gps, fotocamera e così via per i vari dispositivi?
mmm

Il primo anello è morto. Versione archiviata: web.archive.org/web/20141008171951/http://…
Miscreant

4

Desktop: supporto di prima classe

Oracle JavaFX di Java SE supporta solo OS X (macOS), GNU / Linux e Microsoft Windows . Su queste piattaforme, le applicazioni JavaFX vengono in genere eseguite su JVM da Java SE o OpenJDK.

Android: dovrebbe funzionare

C'è anche un progetto JavaFXPorts , che è un progetto open source sponsorizzato da una terza parte . Ha lo scopo di portare la libreria JavaFX su Android e iOS.

Su Android, questa libreria può essere utilizzata come qualsiasi altra libreria Java; il bytecode JVM è compilato in bytecode Dalvik . È ciò che le persone intendono dicendo che "Android esegue Java".

iOS: stato non chiaro

Su iOS, la situazione è un po 'più complessa, poiché né Java SE né OpenJDK supportano i dispositivi mobili Apple. Fino a poco tempo, l'unica opzione sensata era usare il compilatore Java RoboVM in anticipo per iOS. Sfortunatamente, il 15 aprile 2015, il progetto RoboVM è stato chiuso .

Una possibile alternativa è il Multi-OS Engine di Intel . Fino a poco tempo fa era una tecnologia proprietaria, ma l'11 agosto 2016 era open source . Sebbene sia possibile compilare un'app JavaFX per iOS utilizzando l'implementazione JavaFX di JavaFXPorts, finora non ci sono prove per questo. Come puoi vedere, la situazione sta cambiando dinamicamente e, si spera, questa risposta verrà aggiornata quando saranno disponibili nuove informazioni.

Windows Phone: nessun supporto

Con Windows Phone è semplice: non c'è supporto JavaFX di alcun tipo.


2

Possibile. Puoi anche fare sport commerciali.

JavaFXPorts è il nome del progetto open source gestito da Gluon che sviluppa il codice necessario affinché Java e JavaFX funzionino bene su hardware mobile e embedded. L'obiettivo di questo progetto è di contribuire il più possibile al progetto OpenJFX, ove possibile e, quando non è possibile, mantenere il numero minimo di modifiche necessarie per abilitare gli obiettivi di JavaFXPorts. Gluon prende il codice sorgente JavaFXPorts e lo compila in binari pronti per la distribuzione su iOS, Android e hardware incorporato. Le build JavaFXPorts sono disponibili gratuitamente su questo sito Web per tutti gli sviluppatori.

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


-4
  1. sì, puoi eseguirlo su iOS e Android (Win8 non è supportato!
  2. nessuna distribuzione come app web non funziona
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.