Как приложение Android выполняется на виртуальной машине Dalvik.

Работает ли одно приложение для Android на моем телефоне с собственной виртуальной машиной Dalvik (одно приложение, Dalvik VM)?

Или каждое приложение в моем телефоне Android использует одну и ту же виртуальную машину Dalvik? У меня телефон андроид 2.3.

5 ответов

Решение

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

Виртуальная машина Dalvik выполняет файлы в формате исполняемого файла Dalvik (.dex), который оптимизирован для минимального использования памяти.

Виртуальная машина основана на регистре и выполняет классы, скомпилированные компилятором языка Java, которые были преобразованы в формат.dex с помощью включенного инструмента "dx".

Также ознакомьтесь с разделом Что такое... Виртуальная машина Dalvik для подробного описания DVM.

  1. DVM построен специально для android, Он построен для решенияbattery life, processing power & это free
  2. Мы используем DVM вместо Java Virtual Machine(JVM) потому что Java, инструменты Java бесплатны, но JVM не бесплатна, поэтому разработчики Android из Google создали собственную виртуальную машину и сделали ее бесплатной
  3. Виртуальная машина необходима, потому что виртуальная машина помогает вdebugging как виртуальный компьютер, так что мои приложения могут работать на разных устройствах одинаково

Наглядное представление:

IMG

Просто посмотрите, и это легко понять:

Файл.java - предоставляется компилятору java - для создания файла.class.

все файлы.class - переданные инструменту - dx - для создания одного файла dex

файл dex - передается в - dvm - для генерации - окончательного машинного кода.

окончательный машинный код - передается - CPU - для выполнения.

Основной исходный код apk на языке Java. Когда вы строите этот проект, все файлы.java конвертируются в.class, теперь инструмент dx adk преобразует все файлы.class в файл classes.dex. И этот файл classes.dex выполняется на виртуальной машине dalvik.

Для получения дополнительной информации о виртуальной машине Dalvik: http://www.slideshare.net/jserv/understanding-the-dalvik-virtual-machine

Виртуальная машина Dalvik предназначена для одновременного запуска нескольких виртуальных машин. Таким образом, каждое приложение работает в своем собственном процессе, со своим собственным экземпляром виртуальной машины Dalvik, как говорит @sahilMahajanMj .

И этот файл classes.dex дополнительно оптимизирован для файла odex и сохранен в /dalvik/dalvik-cache
Чтобы узнать больше об odex, нажмите здесь.

Если вы хотите знать, почему DVM для Android, почему бы не JVM, нажмите эту

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

Каждое приложение для Android работает в своем собственном процессе со своим собственным экземпляром Dalvik VM. Во-первых, файлы Java преобразуются в файл.class компилятором java. Файлы класса передаются инструменту "dx", который преобразует его в формат.dex. Файл dede передается в DVM для получения машинного кода. Машинный код выполняется ЦП.

Файл.apk содержит файл.dex в формате zip, который можно запустить на виртуальных машинах Dalvik.

Почему Далвик? 1. DVM созданы для работы от батареи, вычислительной мощности и бесплатны. 2. Мы используем DVM вместо JVM, поскольку JVM не является бесплатной. Виртуальные машины Dalvik обеспечивают согласованность на всех мобильных устройствах, т.е. одно приложение будет работать на разных устройствах одинаково.

Другие вопросы по тегам