Logo ru.androidermagazine.com
Logo ru.androidermagazine.com

Android от a до z: что такое далвик

Anonim

Что такое Далвик? Мы слышим, как это слово часто встречается в Интернете, когда речь идет об Android и его внутренней работе. Хотя нет простого объяснения, которое мы можем дать всего лишь в нескольких параграфах, мы можем охватить основы и указать вам правильное направление, если вам нужно прокормить свою занудную сторону. Проще говоря, Dalvik - это виртуальная машина, которая запускает приложения и код, написанный на Java. Стандартный Java-компилятор превращает исходный код (написанный в виде текстовых файлов) в байт-код, а затем компилируется в файл.dex, который виртуальная машина Dalvik может читать и использовать. По сути, файлы классов преобразуются в файлы.dex (очень похоже на файл jar, если используется стандартная виртуальная машина Java), а затем считываются и выполняются виртуальной машиной Dalvik. Повторяющиеся данные, используемые в файлах классов, включаются только один раз в вывод.dex, что экономит пространство и использует меньше служебных данных. Исполняемые файлы могут быть изменены еще раз при установке приложения, чтобы сделать вещи еще более оптимизированными для мобильных устройств. Такие вещи, как замена порядка байтов и связывание структуры данных и встроенных библиотек функций, делают файлы меньше и работают лучше на наших устройствах. Dalvik VM был написан с нуля с учетом Android.

Смущены еще? Не чувствуйте себя плохо, разговоры о программировании обычно имеют такой эффект. Подумайте об этом так: когда вы создаете приложение Java для своего компьютера, виртуальная машина Java запускает скомпилированный вывод исходного кода. Вот почему Java работает практически на любой операционной системе. Dalvik - это оптимизированная для мобильных устройств версия виртуальной машины Java, созданная с использованием кода из проекта Apache Harmony, который имеет открытый исходный код и работает лучше, чем стандартная виртуальная машина Java на нашем ограниченном оборудовании, так что вы можете запускать более одной экземпляр виртуальной машины одновременно - то есть многозадачность. Поскольку Dalvik имеет открытый исходный код, он также был портирован на другие операционные системы, например, на BlackBerry PlayBook. Это чертовски сложно, чертовски круто, и Oracle (компания, которая купила Java у Sun) ненавидит это.

Android использует Dalvik, потому что лицензия на стандартную виртуальную машину Java - GPL2 (бесплатная и с открытым исходным кодом), но когда она размещена на мобильном устройстве и использует Java Micro Edition, это не так. Большой спор между Google и Oracle основан на Далвике. Google утверждает, что он был написан в «чистой комнате» без использования какого-либо кода Oracle, и Oracle не согласна. Мы утверждаем, что понятия не имеем, мы просто рады, что это работает так же, как и это.