Vad är Dalvik? Vi hör det ordet slängs mycket på Internet när vi pratar om Android och dess inre funktioner. Även om det inte finns någon enkel förklaring som vi kan ge i bara några stycken, kan vi täcka grunderna och peka dig i rätt riktning om du behöver mata din nördiga sida. Dalvik är i sina enklaste termer en virtuell maskin som kör applikationer och kod skriven i Java. En standard Java-kompilator förvandlar källkod (skriven som textfiler) till Bytecode och kompileras sedan till en.dex-fil som Dalvik VM kan läsa och använda. I huvudsak konverteras klassfiler till.dex-filer (ungefär som en jarfil om man använder standard Java VM) och läses sedan och körs av Dalvik Virtual Machine. Duplicerad data som används i klassfiler ingår endast en gång i.dex-utmatningen, vilket sparar utrymme och använder mindre omkostnader. De körbara filerna kan ändras igen när du installerar ett program för att göra sakerna ännu mer optimerade för mobil. Saker som byteorderbyte och länkande av datastruktur och funktionsbibliotek i linje gör filerna mindre och körs bättre på våra enheter. Dalvik VM skrevs från fyrkant med Android i åtanke.
Förvirrad ännu? Känn dig inte dåligt, nördiga programmeringssamtal har oftast den effekten. Tänk på det här sättet - när du bygger en Java-applikation för din dator kör en Java Virtual Machine den sammanställda utgången från källkoden. Det är därför Java kör på nästan alla operativsystem. Dalvik är en mobiloptimerad version av en Java Virtual Machine, byggd med kod från Apache Harmony-projektet, som är öppen källkod och kör bättre än en standard Java VM på vår begränsade hårdvara, utformad så att du kan köra mer än en instans av VM åt gången - dvs. multitasking. Eftersom Dalvik är öppen källkod har den också portats till andra operativsystem, som det på BlackBerry PlayBook. Det är ganska jävligt komplicerat, ganska jävligt coolt, och Oracle (företaget som köpte Java från Sun) hatar det.
Android använder Dalvik eftersom licensen för Java Virtual Machine är GPL2 (gratis och öppen källkod), när den placeras i en mobil enhet och använder Java Micro Edition, så är den inte. Den stora tvisten mellan Google och Oracle är alla baserade kring Dalvik. Google hävdar att det var skrivet i en "clean room" -miljö utan att använda någon av Oracle's kod, och Oracle håller inte med. Vi påstår sig inte ha någon aning, vi är bara glada att det fungerar så bra som det gör.