Подтвердить что ты не робот

Создается ли экземпляр виртуальной машины Dalvik для каждого приложения?

Создается ли экземпляр виртуальной машины Dalvik для каждого приложения или все приложения Android совместно используют один и тот же экземпляр виртуальной машины Dalvik?

4b9b3361

Ответ 1

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

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

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

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

Ответ 2

  1. Виртуальная машина Dalvik создана специально для Android. Он был создан для решения проблем времени автономной работы и питания, и он бесплатный.

  2. Мы используем Dalvik VM вместо Java Virtual Machine (JVM), потому что компилятор Java, инструменты Java бесплатны, но JVM не бесплатна, поэтому разработчики Android из Google создали свою собственную виртуальную машину и сделали ее бесплатной.

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

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

IMG

Ответ 3

Файл .java передается компилятору java (javac) для генерации файла .class.

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

Файл dex передается виртуальной машине Dalvik для генерации окончательного машинного кода.

Окончательный машинный код передается ЦПУ для выполнения.

Ответ 4

Все исходные коды 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 нажмите здесь

Ответ 5

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

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

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

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