Open Source im professionellen Einsatz
Linux-Magazin 11/2014
© Ferenczi Gyorgy, 123RF

© Ferenczi Gyorgy, 123RF

Die neue Android Runtime (ART)

Generationswechsel

Schon bald soll die neue Android Runtime, kurz ART genannt, die alte Dalvik-Laufzeitumgebung von Android ablösen. Für den Endbenutzer verspricht Google schnellere Programme. Was sich für den Entwickler ändert, behandelt dieser Artikel.

493

Das ursprüngliche Java-Versprechen "Compile once, run everywhere" wurde noch nie eingehalten. Die Spezifikation der virtuellen Maschine, auch Java Runtime Environment (JRE) genannt, ist einfach zu komplex, als das alle Hersteller alle Details genau gleich implementieren könnten – oder wollten. Der Autor erinnert sich noch an stundenlanges Remote-Debugging von Webapplikationen, die sich unter Sun/Windows, Sun/Linux und IBM/Linux jeweils anders verhielten. Da ging es um Feinheiten an den Grenzen der jeweiligen JRE.

Als Google dann für Android mit Dalvik eine eigene, definitiv nicht kompatible Runtime ins Rennen schickte, war die Java-Vision endgültig beerdigt. Auch wenn die Programmiersprache für Android weiterhin Java war, der Bytecode war es nicht mehr. Mit Oracle als aktuellem Patentinhaber gab und gibt es deshalb viel Ãrger, für Entwickler blieben die Auswirkungen gering. Fremde, vorkompilierte Jar-Dateien funktionierten aber eventuell nicht und der Compiler des Developer-Kits musste den Bytecode für Dalvik umwandeln. Da Android auch nicht alle Standardklassen von Java nutzt, war manchmal eine Anpassung des Quellcodes notwendig. All das war mühsam, aber ein einmaliger Aufwand.

Zeit für einen Wechsel

Mehrere Jahren Android machen klar, dass Dalvik trotz aller Optimierungen immer noch Performance-Engpässe produziert. Zusammen mit den Lizenzproblemen und dem mehr gefühlten als gemessenen Performance-Vorsprung von I-OS war es also Zeit für einen Wechsel. Denn wie so oft in der Software-Entwicklung kommt irgendwann der Punkt, an dem eine Neuentwicklung sinnvoller ist als die Pflege alten Codes.

Mit Kitkat erschien die erste Android-Version, die auf ausgewählten Geräten einen temporären Wechsel zur neuen Android Runtime (ART) erlaubt. Mit Android L (siehe Abbildung 1) wird dann der endgültige Umstieg auf ART als standardmäßiger Laufzeitumgebung passieren. Für Entwickler ist das also ein ausreichender Vorlauf, um sich auf die neue Rahmenbedingung einzustellen.

Abbildung 1: Android L wirft mit der Developer Preview seine Schatten voraus.

Die Botschaft von Google wiederholt dabei eine alte Java-Maxime: Bestehende Anwendungen laufen ohne Probleme auf der neuen Runtime. Natürlich darf niemand dieser Marketingbotschaft unkritisch Glauben schenken.

Fallen in ART

Eine echte Falle innerhalb von Java resultiert aus einem Fehler in Dalvik. Der Bug erlaubte es Programmierern, Methoden mit der Sichtbarkeit »package-private« in anderen Packages zu überschreiben. Das ist sowieso schlechter Stil, so etwas kommt daher eher ungewollt vor, niemand hat alle Methoden einer Klasse im Kopf. Der Compiler für ART gibt daher eine entsprechende Warnung aus.

Die zweite Änderung im Objektmodell betrifft »java.lang.Object« . Die Wurzelklasse der gesamten Klassenhierarchie hat jetzt private Felder. Damit funktionieren nun Algorithmen nicht mehr, die sich per »getSuperclass()« die Klassenhierarchie hochhangeln, per Reflection die Felder der Klassen abfragen und erst stoppen, wenn die Methode »null« liefert. Statt gegen den Null-Wert muss der Entwickler künftig das Ergebnis von »getSuperclass()« auf »java.lang.Object« prüfen und somit eine Ebene in der Hierarchie früher stoppen – oder mit bisher nicht geworfenen Exceptions umgehen können.

Diesen Artikel als PDF kaufen

Express-Kauf als PDF

Umfang: 3 Heftseiten

Preis € 0,99
(inkl. 19% MwSt.)

Linux-Magazin kaufen

Einzelne Ausgabe
 
Abonnements
 
TABLET & SMARTPHONE APPS
Bald erhältlich
Get it on Google Play

Deutschland

Ähnliche Artikel

  • ART

    Schon bald soll die neue Android Runtime, kurz ART genannt, die alte Dalvik-Laufzeitumgebung von Android ablösen. Für den Endbenutzer verspricht Google schnellere Programme. Was sich für den Entwickler ändert, behandelt dieser Artikel.

  • Ruboto klettert auf Version 1.2.0

    Mit Ruboto lassen sich vollwertige Android-Apps über J-Ruby for Android entwickeln. Version 1.2.0 bereitet die Plattform unter anderem auf die nächste Android-Version vor.

  • Dalvik-Alternativen
  • Android L

    Ende Juni präsentierte Google auf seiner Hausmesse Google I/O einen Vorgeschmack auf die nächste Android-Version L. Die beerdigt Dalvik und will mit natürlich anmutendem "Material Design" gefallen.

  • Android L

    Ende Juni präsentierte Google auf seiner Hausmesse Google I/O einen Vorgeschmack auf die nächste Android-Version L. Die beerdigt Dalvik und will mit natürlich anmutendem "Material Design" gefallen.

comments powered by Disqus

Ausgabe 11/2017

Digitale Ausgabe: Preis € 6,40
(inkl. 19% MwSt.)

Stellenmarkt

Artikelserien und interessante Workshops aus dem Magazin können Sie hier als Bundle erwerben.