Dalvik is een virtuele machine die gebruikt werd in Google Android tot en met versie 4.4.4. Dalvik is een register-gebaseerde virtuele machine die geoptimaliseerd is voor het werken met weinig geheugen en op langzame processors. Dalvik wordt ontwikkeld door Dan Bornstein en Google en is opensourcesoftware. Sinds versie 5.0 Lollipop is Dalvik vervangen door de nieuwe Android Runtime (ART).

Dalvik wordt in Android hoofdzakelijk gebruikt om applicaties uit te voeren die in Java geschreven zijn. Hoewel Dalvik dus gebruikt wordt in plaats van een Java Virtual Machine is het zelf geen Java Virtual Machine. Nadat een Java-compiler de Java bytecode heeft geproduceerd, moet deze eerst omgezet worden in Dalvik Executable-bytecode (dex). Een dex-file bevat meerdere classes, die gebruik kunnen maken van een gedeelde constant pool, waardoor het geheugengebruik omlaag wordt gebracht.

Sinds Android 2.2 heeft Dalvik een just in time compiler. Daarnaast wordt de dex-bytecode tijdens de installatie op een apparaat geoptimaliseerd, onder andere door function inlining toe te passen, door de bytecode te optimaliseren voor de specifieke processor die het apparaat bevat en door het verwijderen van dode code, zoals lege methodes.

Android