Dalvik – Die virtuelle Maschine in „Android“
Jede Anwendung, die auf einem „Android“-Handset läuft, wird in der Programmiersprache Java geschrieben.
Da das Betriebssystem diese Programmiersprache aber nicht direkt „versteht“ und um diese Programme nun auf den verschiedenen Handsets mit ihrer unterschiedlichen Hardwareausstattung laufen zu lassen, werden diese Java-Programme von der sogenannten „virtuellen Maschine“ Dalvik entgegengenommen, für das Betriebssystem interpretiert, also „übersetzt“ und vom Betriebssystem dann ausgeführt.
Um beim Beispiel des Java-Kaffees zu bleiben: Die Kaffeebohnen (das Java-Programm) werden von der Kaffeemaschine (Virtuelle Maschine „Dalvik“) gemahlen, der zerkleinerte Kaffee (die für das Betriebssystem übersetzten Anweisungen des Java-Programms) in den vorbereiteten Filter geschüttet und das heiße Wasser angestellt (Betriebssystem).
Eine bemerkenswerte Besonderheit ist, dass die Anwendungen in „Dalvik“ gekapselt werden, also für jedes Programm eine virtuelle Maschine zur Verfügung steht, auch wenn mehrere Programme parallel laufen. Der Vorteil liegt darin, dass sie sich damit nicht gegenseitig beeinflussen können, beispielsweise bei einem Programmfehler nicht das ganze System destabilisieren.
Bei unserem obigen Beispiel wären das also für jede Sorte Kaffee jeweils eine eigene Maschine. Wenn uns vielleicht eine Sorte des Kaffees zu bitter ist, werden die anderen Kaffeemaschinen trotzdem unverändert leckeren Kaffee produzieren.
Dazu soll „Dalvik“ die Programme mit dem geringstmöglichen Speicherplatzverbrauch ausführen können.
Kritiker äußerten mittlerweile aber Bedenken, weil Google sich mit dieser „Übersetzung“ der Java-Programme nicht an den offenen Java-Standard hielt, der von der Firma Sun vorgegeben wird. Der Grund hierfür liegt lt. Google in der für Handsets nötigen Reduzierung des Speicherplatzverbrauchs und den höheren Geschwindigkeitsansprüchen für moderne Programme, die mit der Java-Umsetzung von Sun allem Anschein nach nicht zu machen war.