Как приложение Android выполняется на виртуальной машине Dalvik.
Работает ли одно приложение для Android на моем телефоне с собственной виртуальной машиной Dalvik (одно приложение, Dalvik VM)?
Или каждое приложение в моем телефоне Android использует одну и ту же виртуальную машину Dalvik? У меня телефон андроид 2.3.
5 ответов
Каждое Android-приложение работает в своем собственном процессе со своим экземпляром виртуальной машины Dalvik. Dalvik был написан так, чтобы устройство могло эффективно запускать несколько виртуальных машин.
Виртуальная машина Dalvik выполняет файлы в формате исполняемого файла Dalvik (.dex), который оптимизирован для минимального использования памяти.
Виртуальная машина основана на регистре и выполняет классы, скомпилированные компилятором языка Java, которые были преобразованы в формат.dex с помощью включенного инструмента "dx".
Также ознакомьтесь с разделом Что такое... Виртуальная машина Dalvik для подробного описания DVM.
DVM
построен специально дляandroid
, Он построен для решенияbattery life
,processing power
& этоfree
- Мы используем DVM вместо
Java Virtual Machine(JVM)
потому что Java, инструменты Java бесплатны, но JVM не бесплатна, поэтому разработчики Android из Google создали собственную виртуальную машину и сделали ее бесплатной - Виртуальная машина необходима, потому что виртуальная машина помогает в
debugging
как виртуальный компьютер, так что мои приложения могут работать на разных устройствах одинаково
Наглядное представление:
Просто посмотрите, и это легко понять:
Файл.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 обеспечивают согласованность на всех мобильных устройствах, т.е. одно приложение будет работать на разных устройствах одинаково.