Dalvik - виртуальная машина на Android

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

Виртуальная машина - это виртуальный смартфон или планшет, который имеет виртуальный процессор с известным всем набором команд. То есть не важно какой физический процессор и какой набор команд он поддерживает, можно запустить программу на виртуальной машине, где набор команд постоянен и известен программистам. Таким образом производителям достаточно реализовать виртуальную машину под свою аппаратную архитектуру (фактически это создание прошивки с системой Android), чтобы обеспечить запуск разнообразного программного обеспечения на своих устройствах.   

Dalvik — так называется виртуальная машина, которую разработала компания Google и встроила в систему Android. Благодаря ей обеспечивается запуск все программ, которые можно найти в магазине Google Play. Причем одна и та же программа может работать как на слабом смартфоне так и на продвинутом, как на планшете так и на телевизионной приставке. Все это достигается благодаря виртуальной машине Dalvik, которая абстрагирует программу от реального железа. 

Java - язык программирования, который используется для написания программ под систему Android. Именно этот язык "понимает" виртуальная машина Dalvik. Программисты создают пакет программы (файл с расширением apk) в которой содержится байт-код языка Java. После установки в систему этого пакета программы, виртуальная машина Dalvik при запуске читает ее и выполняет команды. 

Чтобы ускорить выполнение команд "процессором" виртуальной машины Dalvik было предложено делать преобразование команд визуального процессора в команды реального. Этот процесс назвали JIT компиляцией. Внедрение такого преобразование привело к тому, что программы в системе Android 2.2 стали выполняться гораздо быстрее чем в Android 2.1 и более страх версиях (где не было JIT компилятора). Однако сам процесс преобразования увеличивал время запуска программы (во время старта проводилась компиляция). Поэтому, чтобы уменьшить этот отрицательный эффект JIT, в виртуальной машине Dalvik выделили специальную память - кеш (часто встречается термин Dalvik-кеш), в которой хранится преобразованный код. Таким образом получилось достигнуть того, что второй и преследующие запуски программы происходят быстрее из-за того, что преобразования уже не делаются, а код берется из кеша.

http://novosti-android.ru/voprosy-i-otvety/655-chto-takoe-virtualnaya-mashina-chto-takoe-dalvik-chto-takoe-java

Категории: