Veranstaltungen

Spring Boot (Michael Simons)

Do, 25. Januar 2018

Kalender als XML und iCal

Wir unterstützen...

Elterninitiative Kinderkrebsklinik e.V

Kinderkrebsklinik e.V

Sponsoren

Wir danken unseren Sponsoren:

Permanente Sponsoren

Uni Düsseldorf
(Raum und Beamer)


(Preise)


(Preise)


(Preise)


(Preise)

Mitgliedschaften



java.net Member

Events

Nachlese: Fun mit Java(FX) auf embedded Hardware | Print |
Written by Marc Buengener   
Monday, 07 April 2014 15:58

>> Zum Video

Heute Abend begrüßten wir in überschaubarer Runde Gerrit, um mit ihm Spaß mit Java, insbesondere mit JavaFX auf embedded Hardware zu haben. JavaFX auf embedded Hardware ist eine Teilmenge von JavaFX. Man muss also einige Einschränkungen in Kauf nehmen, profitiert aber von den Java-Vorteilen, z.B. einer aktiven Community. Wilde Grafikeffekte sind mit JavaFX allerdings nicht möglich. Das JDK für embedded Hardware ist aktuell noch 32 MB groß. Das Ziel ist es jedoch, den Footprint auf 16 MB zu verkleinern.

Unser Ziel ist es also, kleine Anwendungen zu schreiben, für die ein Desktoprechner überdimensioniert wäre. Als typische Anwendungsfelder nannte Gerrit
die Automatisierung der eigenen vier Wände,
Home Entertainment,
Anzeigen beliebiger Art, wie z.B. Displays für medizinische Messwerte,
sogenannte Information Kiosks, wie z.B. Bus- oder Zugfahrpläne und
den Bildungsbereich - einfach, um zu Lernen.

Auch die Hardware beschränkt die Möglichkeiten.
Empfehlenswert sind hier das
BeagleBoard xM,
das populäre Raspberry Pi und
neuere Hardware mit ARM-Architektur.

Neben dem eigentlichen Rechner sind noch
ein Netzteil,
eine Class 10 SD Memory Karte als schnelle Festplatte,
ein WiFi-Stick und
ein Touch-Display anzuschaffen.

Das Display ist die mit Abstand teuerste Komponente. Als allgemeinen Tipp empfahl Geritt einen powered USB-Hub zu verwenden, um seltsame Fehler, wie spontane Bildschirmausfälle, zu vermeiden.
Man muss also wieder tricksen, um Hardware-schonend zu programmieren.

Typische Anforderungen für die Entwicklung auf embedded Hardware ist beispielsweise die Verwendung einer berührungssensitive Benutzerschnittstelle. Maus- und Tastatureingaben wären für eine Fahrstuhlsteuerung ungewöhnlich. Auch die Steuerelemente entsprechen nicht denen einer Desktopanwendung und der Bildschirm ist oft viel kleiner, wie beispielsweise auf einer Smartwatch.

Der von Sun gepredigte Grundsatz "write once, run anywhere" trifft auf die Programmierung auf embedded Hardware nur mit erheblichen Einschränkungen zu.

Für das Rendering gilt das Scene-Graph-Konzept. Die Steuerelemente und deren Bestandteile sind in einer Baumstruktur hierarchisch gegliedert. Alle angewendeten Effekte und Bewegungen, gelten auch immer für die zugehörigen Kind-Knoten. Die Bildschirminhalte werden automatisch gerendert, der Entwickler hat darauf nur mittelbaren Einfluss. JavaFX ist nicht für die Spieleentwicklung gemacht.

Für die aktuellen Geräte sind ca. 1.000 Elemente (Nodes) verwaltbar. Wenn man mehr Bildschirmelemente nutzen möchte, reicht es nicht, diese unsichtbar zu machen. Sie würden im Speicher bleiben. Man muss ihre setManaged-Eigenschaft negieren.

Auch wenn Visualisierungen Gerrits Steckenpferd sind, auf embedded Hardware gilt der von Microsoft mit Windows 8 vorgemachte Grundsatz "content over chrome". Eine einfache Gestaltung einer Progressbar erfordert beispielsweise 3 Nodes im Scene-Graph. Den Fortschrittsbalken selbst, ein Zeiger-Element und vielleicht noch eine Textbox. Eine aufwendige Gestaltung mit gleichem Informationsgehalt kann schon mal 245 Nodes erfordern. Besonders, wenn viele Schattierungen und geschachtelte Elemente verwendet werden. Man sollte bei der Gestaltung der Benutzeroberfläche auf die Anzahl der Bildelemente achten. Animationen und aufwendige Effekte, wie dynamische Schattenwürfe und Verläufe sollte man vermeiden. Übereinander gezeichnete Elemente haben den besonderen Nachteil, dass sie sich gegenseitig beeinflussen.

Zum Abschluss erlebten wir eine Premiere in der rheinjug, eine interaktive Demo, zu der alle Zuhörer nach vorne gebeten wurden. Dort ergab sich die Party vor der Party und wir konnten die von Gerrit mitgebrachten Implementierungen auf Hardware wie Tablets, Smartphones und seiner Smartwatch wirklich begreifen.