Czy można uruchamiać aplikacje JavaFX na iOS, Android lub Windows Phone 8?


105

Czy można stworzyć całą aplikację przy użyciu JavaFX i uruchomić ją na iOS, Android lub Windows Phone 8 bez pisania kodu specyficznego dla platformy?



1
Oracle opracowuje ADF mobile. Spójrz na to. Obsługuje systemy iOS i android.
Alexander Kirov

Wystarczy poszukać słowa javafxports na stronie www. Większość funkcji javafx działa dobrze w systemie Windows / Android / iOS. W tej chwili jest kilka funkcji, które jeszcze nie działają na Androidzie, takich jak: Task.cancel () lub międzynarodowe znaki Unicode lub odtwarzacz multimedialny fx itp.
Amin

Odpowiedzi:


61

tło

Odpowiedź firmy Invariant jest dobrym źródłem informacji o tym, jak wszystko się zaczęło i jaki był stan JavaFX na urządzeniach wbudowanych i mobilnych na początku 2014 r. Jednak od tego czasu wiele się zmieniło, a użytkownicy, którzy natkną się na ten wątek, nie otrzymują zaktualizowanych informacji.

Większość moich punktów jest związana z odpowiedzią Invariant, więc proponuję najpierw przez nią przejść.

Bieżący stan JavaFX na urządzeniach mobilnych / osadzonych

Najpierw złe wieści:

A teraz kilka dobrych wiadomości:

  • JavaFX nadal działa na Androidzie, iOS i większości urządzeń wbudowanych
  • JavaFXPorts SDK dla Androida, iOS i urządzeń wbudowanych można pobrać stąd
  • Projekt JavaFXPorts wciąż się rozwija i uruchamianie JavaFX na urządzeniach mobilnych jest łatwiejsze niż kiedykolwiek, a wszystko to dzięki wtyczkom IDE które są zbudowane na tych pakietach SDK i umożliwiają rozpoczęcie pracy w ciągu kilku minut bez konieczności instalowania jakiegokolwiek zestawu SDK
  • JavaFX 3D jest teraz obsługiwana na urządzeniach mobilnych
  • GluonVM zastąpi RoboVM, umożliwiając obsługę języka Java 9 dla programistów mobilnych. Tak, dobrze słyszałeś.
  • Firma Oracle uruchomiła Mobile Project w celu obsługi JDK na wszystkich głównych platformach mobilnych. Powinien również obsługiwać JavaFX;)

Jak zacząć

Jeśli nie jesteś majsterkowiczem, proponuję zainstalować wtyczkę IDE na swoim ulubionym IDE i zacząć.

Większość dokumentacji dotyczącej rozpoczęcia pracy można znaleźć tutaj, a niektóre przykłady można znaleźć tutaj .


Nie jestem pewien, kiedy ostatnio korzystałeś z JavaFX, ale w JavaFX 8 wprowadzono wiele ulepszeń. Wiele się również zmieniło od początkowych JavaFXPorts do Gluon Mobile.
ItachiUchiha

Dziękuję za tę aktualizację. Szybkie pytanie, czy korzystanie z JavaFXPorts w celach komercyjnych jest bezpłatne (korzystanie z biblioteki, a nie jej modyfikowanie)? Mam bazę kodu JavaFX, którą mam nadzieję jakoś zintegrować z Androidem. Gluon Mobile oferuje bezpłatną wersję próbną, ale potrzebuję stałego rozwiązania. Czy JavaFXPorts (nie Gluon Mobile) jest rozwiązaniem? Proszę o wyjaśnienie
Nova

@Nova Hi. Tak, JavaFXPorts jest objęta wyjątkiem GPLv2 + CLASSPATH, więc możesz go używać w swoim projekcie bez obaw. Ale ponieważ JavaFXPorts zapewnia tylko minimalne wsparcie (brak obsługi IDE + brak kontroli mobilnych), byłbym sceptyczny, wybierając go do czegoś komercyjnego. Gluon Mobile jest darmowy, po uruchomieniu aplikacji ma po prostu ekran Nag (w wersji bezpłatnej). Ale możesz się go pozbyć, gdy Twoja aplikacja jest sławna, płacąc opłatę :)
ItachiUchiha

@ItachiUchiha to brzmi obiecująco! Ostatnie pytanie: porównanie produktów Gluon Mobile, które tutaj znajdziesz , pokazuje, że ekran nag jest jedyną różnicą między poziomem darmowym a niezależnym. Czy można bezpiecznie założyć, że mogę używać bezpłatnej wersji do użytku komercyjnego przez nieograniczony czas? Jak w, bez daty ważności? Poradzę sobie z ekranem nag, dopóki fundusze nie wpłyną :) Dzięki za wyjaśnienie
Nova

1
Przepraszamy, jeszcze jedno pytanie: mój kod JavaFX jest w 90% kompletny i zawiera ponad 20 000 linii. Czy nadal mogę zintegrować Gluon Mobile z moją bazą kodów ... czy też muszę używać go od samego początku, zanim napiszę pojedynczą linię? Dzięki
Nova,

75

Tak, możesz uruchomić aplikację JavaFX na iOS, Androidzie, komputerze stacjonarnym, RaspberryPI (nie ma jeszcze systemu Windows8 Mobile).

Praca w akcji:

Zrobiliśmy to! Projekt multimedialny JavaFX8 na iPad, Android, Windows i Mac!

JavaFX Everywhere

Demo Ensemble8 Javafx8 na Androida

Moja przykładowa aplikacja JavaFX działająca na Raspberry Pi

Moja przykładowa aplikacja działa na Androidzie

JavaFX na iOS i Androida

Zasoby deweloperskie:

Android:

Tworzenie i wdrażanie aplikacji JavaFX na Androida

iOS:

Wsparcie NetBeans dla JavaFX dla iOS jest wyłączone!

Stwórz aplikację JavaFX + iOS z narzędziami Clipse RoboVM + e (fx) w 10 minut

Jeśli masz zamiar tworzyć poważne aplikacje, tutaj znajdziesz więcej informacji

Różne:

Obecnie lista priorytetów Oracle dla JavaFX to Desktop (Mac, Windows, Linux) i Embedded (Raspberry Pi, Beagle Board itp.) Dla iOS / Android Oracle wykonał większość ciężkiej pracy i opnesourcingu javafxports tych platform w ramach OpenJFX, ale tam is no JVM z oracle dla ios / android. Społeczność łączy wszystko razem, uzupełniając brakujący element (JVM) dla ios / android, Społeczność poczyniła duże postępy w uruchamianiu JavaFX na ios ( RoboVM) / android ( DalvikVM ). Jeśli chcesz, możesz także wnieść swój wkład w społeczność, sponsorując ( zostań sponsorem RoboVM ) lub zacznij tworzyć aplikacje i zgłaszać problemy.

Edycja 23.06.2014:

Johan Vos stworzył witrynę internetową dla portów javafx JavaFX na telefony komórkowe i tablety. Sprawdź to, aby uzyskać aktualne informacje


3
RoboVM ma najlepsze logo KIEDYKOLWIEK. To ptak, uniesiony kciuk, nie, to samolot!
Aleksandr Dubinsky,


@invariant Jak dobra jest integracja i dostęp do mikrofonu, akcelerometru, GPS, kamery i tak dalej dla różnych urządzeń?
mmm

Pierwszy link nie działa. Wersja archiwalna: web.archive.org/web/20141008171951/http://…
Miscreant

4

Komputer stacjonarny: pierwszorzędne wsparcie

Oracle JavaFX z Java SE obsługuje tylko OS X (macOS), GNU / Linux i Microsoft Windows . Na tych platformach aplikacje JavaFX są zwykle uruchamiane na JVM z Java SE lub OpenJDK.

Android: powinien działać

Istnieje również projekt JavaFXPorts , który jest projektem open source sponsorowanym przez firmę zewnętrzną . Ma na celu przeniesienie biblioteki JavaFX na Androida i iOS.

W systemie Android ta biblioteka może być używana jak każda inna biblioteka Java; kodu bajtowego JVM jest kompilowany do kodu bajtowego Dalvik . To właśnie mają na myśli ludzie, mówiąc, że „Android obsługuje Javę”.

iOS: status nie jest jasny

Na iOS sytuacja jest nieco bardziej złożona, ponieważ ani Java SE, ani OpenJDK nie obsługują urządzeń mobilnych Apple. Do niedawna jedyną rozsądną opcją było użycie wyprzedzającego kompilatora Java RoboVM dla iOS. Niestety 15 kwietnia 2015 roku projekt RoboVM został zamknięty .

Jedną z możliwych alternatyw jest Multi-OS Engine Intela . Do niedawna była to technologia zastrzeżona, ale 11 sierpnia 2016 roku była to technologia open source . Chociaż możliwe jest skompilowanie aplikacji JavaFX na iOS przy użyciu implementacji JavaFX JavaFXPorts, jak dotąd nie ma na to dowodów. Jak widać, sytuacja dynamicznie się zmienia i miejmy nadzieję, że ta odpowiedź zostanie zaktualizowana, gdy pojawią się nowe informacje.

Windows Phone: brak wsparcia

Z Windows Phone sprawa jest prosta: nie ma żadnego wsparcia dla JavaFX.


2

Możliwy. Możesz także uprawiać sport komercyjny.

JavaFXPorts to nazwa projektu open source prowadzonego przez Gluon, który rozwija kod niezbędny do tego, aby Java i JavaFX działały dobrze na urządzeniach mobilnych i wbudowanych. Celem tego projektu jest wniesienie jak największego wkładu w projekt OpenJFX, gdzie tylko jest to możliwe, a gdy nie jest to możliwe, utrzymanie minimalnej liczby zmian niezbędnych do realizacji celów JavaFXPorts. Gluon pobiera kod źródłowy JavaFXPorts i kompiluje go do postaci plików binarnych gotowych do wdrożenia na iOS, Android i wbudowany sprzęt. Kompilacje JavaFXPorts są bezpłatnie dostępne na tej stronie dla wszystkich programistów.

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


-4
  1. tak, możesz go uruchomić na iOS i Androidzie (Win8 nie jest obsługiwany!
  2. żadne wdrożenie jako aplikacja internetowa nie działa
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.