Android Runtime | |
---|---|
Basisdaten
| |
Entwickler | Google Inc. |
Betriebssystem | Android |
Programmiersprache | C, C++ |
Kategorie | Laufzeitumgebung |
Lizenz | Apache-Lizenz 2.0[1] |
source.android.com/devices/tech/dalvik/art.html |
Android Runtime (kurz ART) ist eine Laufzeitumgebung, die von Googles mobilem Betriebssystem Android ab Version 5.0 Lollipop eingesetzt wird.
Zuvor war sie als experimentelle Laufzeitumgebung in Android 4.4 KitKat enthalten und löste ab Android 5.0 offiziell die bis dato verwendete virtuelle Maschine Dalvik ab. Dalvik wandelte den Dex-Bytecode[2] einer Anwendung in den nativen Befehlssatz des Prozessors (meist ARM) um, welcher anschließend von der Laufzeitumgebung des Gerätes ausgeführt wurde.[3] Da Dalvik auf Just-in-time-Kompilierung setzte, musste bei jedem Aufruf der Anwendung der Bytecode zunächst umgewandelt werden, was eine verzögerte Ausführung verursachte. Daher wurde ein entsprechend großer Cache eingesetzt, damit diese Verzögerung nur beim ersten Start eintrat oder wenn eine Applikation gestartet wurde, die länger nicht verwendet worden war. Bei entsprechenden Tests auf demselben Gerät erwies sich der Vorteil von ART gegenüber Dalvik dann auch meist kleiner als gehofft.
ART wandelt dagegen den Dex-Bytecode einmalig und bereits während der Installation einer Anwendung mit Hilfe des dex2oat-Tools in nativen Binärcode um. Dadurch werden Verzögerungen beim Start einer Anwendung weitestgehend vermieden.[3] Durch das Wegfallen der Just-in-time-Kompilierung wird der Prozessor weniger in Anspruch genommen, was sich in geringerem Energieverbrauch bemerkbar machen soll. Anwendungen, die für die Dalvik-Laufzeitumgebung konzipiert sind, sind in der Regel zu ART kompatibel.
Die Unterstützung für 64-Bit-Anwendungen auf entsprechenden Prozessortypen wurde in Dalvik nicht mehr hinzugefügt und ist nur in ART vorhanden. Auch soll die Garbage Collection, die automatische Speicherbereinigung, nun weniger häufig gestartet werden und schneller arbeiten als noch unter Dalvik.[4]
Nachteilig dagegen ist die längere Dauer der Installation von Anwendungen und beim Vergleich der beiden Kompilationsprozeduren der erhöhte Speicherverbrauch um durchschnittlich 20 Prozent.[5]