Зачем Android нужна виртуальная машина (DVM)? - PullRequest
5 голосов
/ 28 марта 2012

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

Ответы [ 3 ]

9 голосов
/ 28 марта 2012

Платформа Android может работать на разных архитектурах - ARM, MIP и x86. Чтобы абстрагироваться от необходимости компилировать двоичные файлы для каждой архитектуры, VM вступает в игру. Это также делает управление памятью для разработчика.

3 голосов
/ 27 ноября 2013

Нам нужен кто-то, чтобы скомпилировать и преобразовать Java-классы в байт-код, который может быть выполнен интерпретатором.

Это похоже на JVM ... у вас есть файлы .java, которые будут компилироваться компилятором java в файлы .class.файлы .class - это не что иное, как байт-код, который будет запускаться JVM.JVM может находиться на любой платформе (Windows, Linux или Unix).

В Android также файлы компилируются в файлы .dex и запускаются DVM.просто чтобы понять, когда приложение установлено, ОС Android назначает уникальный идентификатор пользователя linux, для каждого приложения назначается DVM.Короче говоря, у каждого приложения есть собственный процесс linux, DVM и идентификатор пользователя linux.

Файлы java скомпилированы в файлы .dex, которые занимают меньше памяти по сравнению с файлами .class.

Теперь предположим, что 10 приложений имеют 10 отдельных DVM, а в ОС 10 процессов.

Диспетчер или планировщик в ОС Android отвечает за обработку этих 10 процессов .... вот почему у нас есть жизненный цикл активности Android.

Вам необходим DVM для поддержания рабочего состояния каждого процесса (каждого приложения).

2 голосов
/ 27 июня 2017

Зачем Android нужна виртуальная машина на основе того, что Google API Android широко использует интерфейс Java.Сама Java обычно запускается на виртуальной машине.

Сама JVM - это виртуальная машина на основе стекового компьютера, а виртуальная машина Android (называемая Dalvik) - это виртуальная машина на основе регистров (это делается для меньшего количества генерируемого кода и более быстрой скорости).для повышения производительности любого устройства, использующего Android)

Цель виртуальной машины состоит в том, чтобы иметь возможность абстрагировать оборудование путем его моделирования.Если вы создадите виртуальную машину и скомпилируете ее для работы на всех возможных аппаратных средствах, вы получите то, что изначально сделало Java популярным: писать один раз, запустив переносимость в любом месте.

Вы можете писать код, не меняя его и не запускаяЭто на любом оборудовании, на котором может работать ваша виртуальная машина.

Отступление, Android в основном встроен в C (и C ++?), но API, который управляет ОС, связан через Java, поэтому вам требуется виртуальная машина.

...