Java ante Smartphones

OpenJDK Mobile angekündigt: Wird Java wieder mobil?

Dominik Mohilo

Trismegist san / Shutterstock.com

Die Entwicklung von Java-Anwendungen für mobile Geräte ist in den letzten Jahren etwas eingeschlafen. Nun versucht sich Gluon an einem Revival des Java-Sektors für den Smartphone-Bereich. Aktuell liegt der Fokus insbesondere auf der iOS-Entwicklung, doch auch für Android-Enthusiasten könnte es bald wieder interessanter werden, Java zu lernen…

Wer Anwendungen für mobile Endgeräte, insbesondere Smartphones, schreibt, schaut schon länger nicht mehr nach der aktuellen Version des Java Micro Edition SDK. Attraktiver sind die Programmiersprachen Kotlin (im Android-Bereich) oder natürlich Swift (für iOS-Anwendungen). Neue Trends wie Flutter, das auf der Programmiersprache Dart basiert, oder generell Cross-Plattform-Anwendungen, die etwa in JavaScript geschrieben werden, sind interessanter.

Dennoch hat Johan Vos, Co-Founder von Gluon und LodgOn, eine Initiative gestartet, das Projekt OpenJDK Mobile zu reanimieren. Der letzte Stand der Dinge war dabei ein Repository, das auf OpenJDK 9 basiert. Problematisch ist das Ganze – gerade in Bezug auf iOS – allerdings bislang wegen der VMs (Virtual Machines) gewesen: Dynamischer Code ist auf Apple-Betriebssystemen nicht ohne weiteres auszuführen. Die Zero VM macht es möglich, ist aber in Sachen Geschwindigkeit eher fragwürdig.

GraalVM to the rescue!

Mit der GraalVM steht Entwicklern ein AOT-Compiler (ahead of time) zur Verfügung, der den Code zur Build-Zeit kompilieren kann. Der so kompilierte Code wird dann mit den entsprechenden nativen Bibliotheken für das jeweilige Betriebssystem verknüpft und ausführbare Dateien werden anschließend erstellt. Gluon hatte kürzlich erst vorgestellt, wie dies mit Java 11 und JavaFX 13 für iOS funktionieren kann.

Java auf iOS / Quelle: Gluon

Die neben der GraalVM benötigten Bibliotheken für die unterschiedlichen Betriebssysteme sollen nun Teil des „neuen“ OpenJDK Mobile werden, das auf GitHub gehostet wurde. Project Skara (wir berichteten) soll laut Vos nun dazu genutzt werden, um einen synchronisierten Fork des OpenJDKs (inklusive oben erwähnter Bibliotheken) zu erstellen.

Weitere Informationen zu OpenJDK Mobile gibt es auf der Java-Mailing-Liste mobile-dev sowie auf GitHub. Auf dem Unternehmensblog von Gluon gibt es Details zum Erstellen von Java-Anwendungen für iOS.

IT Security Summit 2019

Hands-on workshop – Hansel & Gretel do TLS

mit Marcus Boiton (Synchromedia Limited)

Sichere Logins sind doch ganz einfach!

mit Arne Blankerts (thePHP.cc)

Geschrieben von
Dominik Mohilo
Dominik Mohilo
Dominik Mohilo studierte Germanistik und Soziologie an der Goethe-Universität in Frankfurt. Seit 2015 ist er Redakteur bei S&S-Media.
Kommentare

Hinterlasse einen Kommentar

11 Kommentare auf "OpenJDK Mobile angekündigt: Wird Java wieder mobil?"

avatar
4000
  Subscribe  
Benachrichtige mich zu:
Carsten
Gast

Und das wird dann alles Open Source? Wie ich Gluon kenne nutzen die 99.9% open source code in ihrer Loesung aber verlangen dann fuer die Nutzung ihres closed source Mini-Layers eine heftige Lizenz. Oder irre ich mich da?

Entwickler
Gast

Wir bezahlen die knappen $500, um die gute Arbeit an JavaFX, JavaFXPorts und dem Gluon Client Plugin für native Images zu unterstützen. Könnten aber jederzeit selbiges mit JavaFXPorts und JFoenix völlig kostenlos und Open Source realiseren. Der Thin-Layer erleichtert überwiegend die Handhabung von Views über den Drawer. Die meisten anderen Gluon Bibliotheken sind sowieso kostenlos.

Carsten
Gast

Was heisst die meisten anderen Gluon Bibliotheken sind kostenlos? Open Source?
Gibt es ein gutes Beispielproject (z.B. Github) wo man sieht wie JavaFX mit einer Codebasis eine UI fuer Desktop/Browser/Android/iOS erstellen kann per Gradle build z.B.?

Entwickler
Gast

Beispiele:
https://gluonhq.com/developers/samples/

Client Plugin mit GraalVM Unterstützung für Maven & Gradle:
https://github.com/gluonhq/client-samples

Bibliotheken als Quellcode:
https://bitbucket.org/gluon-oss/

Gluon Docs:
https://gluonhq.com/developers/documentation/

OpenJFX:
https://openjfx.io/

Ziel von Gluon, die JavaFX ebenfalls mit weiterentwickeln, ist eine Codebasis für alle Plattformen inkl. nativer Unterstützung. Native Mac, iOS und Linux Unterstützung funktionieren bereits, siehe oben.
Die kommerzielle Gluon Bibliothek erleichtert durch fertige Komponenten die mobile Entwicklung. Entweder 499$ jährlich oder ein wegklickbarer Nag Screen. Wir setzen Gluon in der Firma das erstemal ein und sind zufrieden mit dem Ergebnis. Eine Codebasis denkt alle Desktopsysteme, iOS und Android ab.

https://gluonhq.com/java-on-ios-for-real/

Was ist GraalVM:
https://www.graalvm.org/

Carsten
Gast
Vielen Dank. Die Links kannte ich schon. Leider lassen sich die client-samples nicht unter Linux zum Laufen bringen. Issue: https://github.com/gluonhq/client-samples/issues/19 https://github.com/gluonhq/client-samples/issues/21 Irgendwie finde ich die Website von Gluon ziemlich verwirrend. Was ist Open Source und was nicht. Ich lese es ist unter der GPLv3. Mit Classpath Exception oder muss aller Code der es nutzt ebenfalls unter die GPLv3? Welche Funktionalitaet fuegt der kommerzielle Layer hinzu? Ein einfaches Schaubild wo Open Source und Kommerziell klar gekennzeichnet werden, wuerde viel Verwirrung ersparen. Im Bitbucket Repo sehe ich nur Gluon Charm Down. Gluon Charm und Gluon Glisten – welche soweit ich das sehe… Read more »
Entwickler
Gast

Alle Client-Samples laufen unter Ubuntu, aber nur mit OpenJDK 11.0.2 oder AdoptOpenJDK 11.0.3.

Der kommerzielle Layer fügt Charm Glisten, wie MobileApplication, hinzu. Charm Down & Gluon Connect sind opensource. Ohne Classpath Exception würde für kommerzielle Projekte eine Offenlegung des Quellcodes bedeuten und wäre damit nutzlos.

JavaFXPorts ermöglicht eine kostenlose Entwicklung von mobilen Applikationen mit dem Nachteil der fehlenden Gluon View, Seitenmenu und einigen anderen Komponenten. Vieles davon läßt sich aber mit JFoenix realisieren oder mit eigenen Komponenten.

https://docs.gluonhq.com/javafxports/

Carsten
Gast

Komisch. Ich hatte AdoptOpenJDK 11.0.4 (nicht 11.0.3) ausprobiert. Ich werde es mit der alten Version ausprobieren.
Kannst du mir eine paar Github Projekte empfehlen die Open-Source-JavaFX (also ohne kommerzielle Parts) auf Mobile (Android/iOS) nutzen, wo man mal reinschnuppern kann?

Entwickler
Gast

Testumgebung WSL1 Ubuntu 18.04, OpenJDK 11.0.2. Es funktionieren alle Beispiele, ich konnte sogar eigene JavaFX Projekte, nach Hinzufügen von Klassen die mittels Reflection geladen werden, nativ übersetzen. Gluon bietet viele native Java Bibliotheken auch statisch an.

Da fallen mir wirklich nur die JavaFXPorts Beispiele ein.
https://bitbucket.org/javafxports/samples/src/default/

Ansonsten kann ich nur wärmstens die Twitterkanäle javafx3d, GluonHQ und von johanvos empfehlen. #JavaFX ist auch ein Besuch wert.

Carsten
Gast
Thanks. I am also using Ubuntu 18.04 with OpenJDK 11.0.2. However there is a bug for some system (probably graphics card related). There is an issue here: https://github.com/gluonhq/client-samples The ’nativeBuild‘ does not work. What works is normal execution via ‚gradle run‘. You cannot run on Android yet 🙁 https://bitbucket.org/javafxports/samples/src/default works when running on the Desktop. The Android build/install fails. After fixing some problems in the build and manually installing the apk it still doesn’t work since the App just shows a black screen. Overall those samples are so simple it hurts a bit. Even something ancient like SwingSet had a… Read more »
Carsten
Gast
Ich habe auch mal diese Samples hier ausprobiert: https://gluonhq.com/developers/samples Seltsam, dass die eher komplexen aber kommerziellen Gluon Samples alle recht gut „builden“ – auch unter Android – und die Nicht-Kommerziellen Samples wie oben beschrieben sehr schrecklich sind im Vergleich. Trotzdem ist mir bei den Gluon Samples sehr negativ die Performance aufgefallen. Laeuft das irgendwie emuliert oder warum ist das alles so lahm? Mein Android-Testgeraet ist zwar nicht taufrisch aber die Apps die ich sonst so nutze – inklusive dem Monster Chrome – laufen alle super fluessig. Die Gluon Samples sind zaeh wie Sirup. Der Start dauert auch deutlich zu lange.… Read more »
Entwickler
Gast
In der Firma habe ich auf drei Rechnern das Bauen und Testen der Apps mit Erfolg durchgeführt. Zuhause traten ebenfalls keine Probleme auf. Was nicht funktioniert, obwohl von Gluon durch eine statische Bibliothek bereitgestellt, ist HTTPS. Mir reichen die Beispiele, alles andere ergibt sich dann von selbst wenn konkrete Anforderungen vorliegen. CodeNameOne gefällt, ist mir aber zu restriktiv. Gluon verfolgt mit JavaFX und GraalVM einen transparenteren Weg. Um hier wirklich fair zu sein, müßte ich tief in CodeNameOne eintauchen. Flüssig wie eine Android App laufen sie, bedingt durch die Bridge(JFXAndroid RT) Kommunikation, nicht. Gut ersichtlich wird dies am seitlichen Menu.… Read more »