Какво е Далвик? Чуваме тази дума да се хвърля много в интернет, когато говорим за Android и вътрешната му работа. Въпреки че няма лесно обяснение, което можем да дадем само в няколко абзаца, можем да обхванем основите и да ви насочим в правилната посока, ако трябва да подхраните нервната си страна. Най-просто казано, Dalvik е виртуална машина, която изпълнява приложения и код, написани на Java. Стандартният компилатор на Java превръща изходния код (написан като текстови файлове) в Bytecode, след което се компилира във.dex файл, който Dalvik VM може да чете и използва. По същество класовите файлове се преобразуват в.dex файлове (почти като jar файл, ако някой използва стандартния Java VM) и след това се четат и изпълняват от виртуалната машина на Dalvik. Дублиращите се данни, използвани в класовите файлове, се включват само веднъж в изхода.dex, което спестява място и използва по-малко режийни разходи. Изпълнимите файлове могат да бъдат променени отново, когато инсталирате приложение, за да направите нещата още по-оптимизирани за мобилни устройства. Неща като подмяна на байтови връзки и свързване на структурата на данните и функционалните библиотеки вградени правят файловете по-малки и работят по-добре на нашите устройства. Dalvik VM е написан от квадратна точка с Android.
Объркани още? Не се чувствайте зле, умопомрачителното говорене по програмиране обикновено има този ефект. Мислете за това по този начин - когато изграждате Java приложение за вашия компютър, Java Virtual Machine изпълнява компилирания изход на изходния код. Ето защо Java работи на почти всяка операционна система. Dalvik е оптимизирана за мобилна версия на виртуална машина на Java, създадена с код от проекта Apache Harmony, който е с отворен код и работи по-добре от стандартния Java VM на нашия ограничен хардуер, проектиран така, че да можете да стартирате повече от един инстанция на VM наведнъж - т.е. многозадачност. Тъй като Dalvik е с отворен код, той е пренесен и на други операционни системи, като тази в BlackBerry PlayBook. Това е доста дяволски сложно, доста дяволски готино и Oracle (компанията, която купи Java от Sun) го мрази.
Android използва Dalvik, защото докато лицензът за стандартната Java Virtual Machine е GPL2 (безплатен и с отворен код), когато се поставя в мобилно устройство и използва Java Micro Edition, това не е така. Големият спор между Google и Oracle се базира около Далвик. Google твърди, че е написано в среда „чиста стая“, без да се използва код на Oracle и Oracle не е съгласен. Ние твърдим, че нямаме идея, просто се радваме, че работи така добре, както го прави.