Что такое Dalvik и dalvik-cache?


Я знаю, что это может быть основной вопрос в Android. Но что такое Dalvik и dalvik-cache?

3 71

3 ответа:

Dalvik-это виртуальная машина, которая используется в Android. Это обычно считается виртуальной машиной Java, хотя это не совсем правильно. Он использует объектную модель, которая идентична Java, и ее модель памяти также почти эквивалентна. Но виртуальная машина dalvik-это виртуальная машина на основе регистра, в отличие от виртуальных машин Java, которые основаны на стеке.

соответственно, он использует совершенно другой байт-код, чем Java. Тем не менее, Android SDK включает в себя инструмент ДХ to переведите байт-код Java в байт-код dalvik, поэтому вы можете писать приложения для Android на Java.

когда вы говорите:"dalvik-cache" Я полагаю, вы имеете в виду / data / dalvik-cache каталог, который можно найти на типичных устройствах Android. Когда вы устанавливаете приложение на Android, оно выполняет некоторые модификации и оптимизации в файле dex этого приложения (файл, содержащий весь байт-код dalvik для приложения). Затем он кэширует в результате odex (оптимизированный dex файл) в / data / dalvik-cache каталог, так что он не должен выполнять процесс оптимизации каждый раз, когда он загружает приложение.

good reference

Dalvik-это виртуальная машина на основе java, которая запускает приложения Android на Android. Dalvik-cache - это область кэша для виртуальной машины Dalvik, она создается, когда виртуальная машина Dalvik оптимизирует ваше приложение для работы.

вы можете посмотреть больше в интернете о различиях между ОП-кодами Dalvik VM и "нормальными" ОП-кодами Java VM, если хотите.

кэш Dalvik - это не что иное, как временная компиляция кода приложения, хранящегося в виде исполняемых файлов. Поскольку они могут быть скомпилированы динамически из исходного кода приложения, находящегося за пределами кэша Dalvik, вы можете очистить кэш Dalvik без каких-либо реальных штрафов.