Меню

Виртуальная машина dalvik – Что вы не можете сделать на VM Dalvik (виртуальная машина Android), которую вы можете использовать в Sun VM?

Leave a comment

Dalvik — Википедия

Материал из Википедии — свободной энциклопедии

Текущая версия страницы пока не проверялась опытными участниками и может значительно отличаться от версии, проверенной 6 декабря 2014; проверки требуют 9 правок. Текущая версия страницы пока не проверялась опытными участниками и может значительно отличаться от версии, проверенной 6 декабря 2014; проверки требуют 9 правок. Рыболовный порт Дальвик. Борнштейн назвал виртуальную машину именем места в Исландии, откуда происходит часть его предков[1].

Dalvik — регистровая виртуальная машина для выполнения программ, написанных на языке программирования Java, созданная группой разработчиков Google во главе с Дэном Борнштейном (англ. Dan Bornstein). Входит в мобильную операционную систему Android.

Dalvik оптимизирован для низкого потребления памяти, это нестандартная регистр-ориентированная виртуальная машина, хорошо подходящая для исполнения на процессорах RISC-архитектур, часто используемых в мобильных и встраиваемых устройствах, таких как коммуникаторы и планшетные компьютеры (большинство виртуальных машин, используемых в настольных системах, является стек-ориентированным, включая стандартную виртуальную машину Java, принадлежащую Oracle).

Программы для Dalvik пишутся на языке Java. Несмотря на это, стандартный байт-код Java не используется, вместо него Dalvik исполняет байт-код собственного формата. После компиляции исходных текстов программы на Java (при помощи javac) утилита dx из Android SDK преобразует файлы классов (расширение .class) в файлы собственного формата (с расширением .dex), которые и включаются в пакет приложения (.apk).

В версиях, начиная с Android 4.4 Kitkat, имеется возможность переключиться с Dalvik на более быстрый ART (Android Runtime). В Android 5.0 Dalvik был полностью заменён на ART.

Что такое Виртуальная машина Dalvik (Dalvik VM)


Dalvik Virtual Machine


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

Dalvik Virtual Machine является необходимой частью мобильной платформы Андроид. Это виртуальная машина, разработчиком которой является Dan Bornstein. Dalvik VM распространяется как свободное программное обеспечение под GPL-совместимой лицензией Apache 2.0. Во многом именно этот фактор сыграл свою важную роль в решении Гугл отказаться от JME (Java Micro Edition), на которую нужно было получать лицензию от Sun. Поэтому корпорация, главной целью которой была разработка открытой операционной системы, создала свою собственную виртуальную машину.

В отличие от многих виртуальных машин например (той же Java Virtual Machine), которые являются стек-ориентированными, Dalvik является регистр-ориентированной, что никак нельзя назвать типовым решением. Но с другой стороны, она очень хорошо подходит для работы на процессорах RISC-архитектуры, к которым относятся и процессоры ARM, широко применяемые в мобильных устройствах.

arm

Dalvik задумывалась специально под платформу Андроид. Учитывался тот фактор, что платформа представляет все свои процессы как изолированные, выполняющиеся каждый в своём адресном пространстве. Виртуальная машина была оптимизирована для небольшого потребления памяти и работы на мобильном аппаратном обеспечении. Начиная с версии Android 2.2., Dalvik использует JIT (just-in-time) компиляцию. В результате таких особенностей, получилась очень быстрая и производительная виртуальная машина, что конечно же не может не сказываться на работе приложений в целом.

Dalvik Virtual Machine использует свой собственный байт-код. При разработке приложения под Android переводятся компилятором в специальный машинно-независимый низкоуровневый код. При выполнении на платформе именно Dalvik Virtual Machine интерпретирует и выполняет такую программу.

Кроме этого, Dalvik Virtual Machine способна переводить байт-коды Java в коды своего собственного формата и также исполнять их в своей виртуальной среде. Программный код пишется на языке Java, а после компиляции все .class файлы конвертируются в формат .dex (пригодный для интерпретации в Dalvik) с помощью специальной утилиты dx, которая входит в состав Android SDK.





 

Что такое Виртуальная машина Dalvik (Dalvik VM)


Dalvik Virtual Machine


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

Dalvik Virtual Machine является необходимой частью мобильной платформы Андроид. Это виртуальная машина, разработчиком которой является Dan Bornstein. Dalvik VM распространяется как свободное программное обеспечение под GPL-совместимой лицензией Apache 2.0. Во многом именно этот фактор сыграл свою важную роль в решении Гугл отказаться от JME (Java Micro Edition), на которую нужно было получать лицензию от Sun. Поэтому корпорация, главной целью которой была разработка открытой операционной системы, создала свою собственную виртуальную машину.

В отличие от многих виртуальных машин например (той же Java Virtual Machine), которые являются стек-ориентированными, Dalvik является регистр-ориентированной, что никак нельзя назвать типовым решением. Но с другой стороны, она очень хорошо подходит для работы на процессорах RISC-архитектуры, к которым относятся и процессоры ARM, широко применяемые в мобильных устройствах.

arm

Dalvik задумывалась специально под платформу Андроид. Учитывался тот фактор, что платформа представляет все свои процессы как изолированные, выполняющиеся каждый в своём адресном пространстве. Виртуальная машина была оптимизирована для небольшого потребления памяти и работы на мобильном аппаратном обеспечении. Начиная с версии Android 2.2., Dalvik использует JIT (just-in-time) компиляцию. В результате таких особенностей, получилась очень быстрая и производительная виртуальная машина, что конечно же не может не сказываться на работе приложений в целом.

Dalvik Virtual Machine использует свой собственный байт-код. При разработке приложения под Android переводятся компилятором в специальный машинно-независимый низкоуровневый код. При выполнении на платформе именно Dalvik Virtual Machine интерпретирует и выполняет такую программу.

Кроме этого, Dalvik Virtual Machine способна переводить байт-коды Java в коды своего собственного формата и также исполнять их в своей виртуальной среде. Программный код пишется на языке Java, а после компиляции все .class файлы конвертируются в формат .dex (пригодный для интерпретации в Dalvik) с помощью специальной утилиты dx, которая входит в состав Android SDK.




 

dalvik virtual machine Вики

dalvik virtual machine Вики
Рыболовный порт Дальвик. Борнштейн назвал виртуальную машину именем места в Исландии, откуда происходит часть его предков[1].

Dalvik — регистровая виртуальная машина для выполнения программ, написанных на языке программирования Java, созданная группой разработчиков Google во главе с Дэном Борнштейном (англ. Dan Bornstein). Входит в мобильную операционную систему Android.

Dalvik оптимизирован для низкого потребления памяти, это нестандартная регистр-ориентированная виртуальная машина, хорошо подходящая для исполнения на процессорах RISC-архитектур, часто используемых в мобильных и встраиваемых устройствах, таких как коммуникаторы и планшетные компьютеры (большинство виртуальных машин, используемых в настольных системах, является стек-ориентированным, включая стандартную виртуальную машину Java, принадлежащую Oracle).

Программы для Dalvik пишутся на языке Java. Несмотря на это, стандартный байт-код Java не используется, вместо него Dalvik исполняет байт-код собственного формата. После компиляции исходных текстов программы на Java (при помощи javac) утилита dx из Android SDK преобразует файлы классов (расширение .class) в файлы собственного формата (с расширением .dex), которые и включаются в пакет приложения (.apk).

В версиях, начиная с Android 4.4 Kitkat, имеется возможность переключиться с Dalvik на более быстрый ART (Android Runtime). В Android 5.0 Dalvik был полностью заменён на ART.

Примечания[ | код]

Ссылки[ | код]

Реклама

CC© cookies police  

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

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

android dalvik

Поделиться Источник Rockystech     27 ноября 2012 в 05:08

5 Ответов



56

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

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

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

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

Поделиться Sahil Mahajan Mj

    27 ноября 2012 в 05:34



34

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

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

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

графическое представление

IMG

Поделиться Devrath     14 сентября 2014 в 06:05



30

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

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

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

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

Поделиться Tapsee Panu     04 сентября 2014 в 06:08



13

Весь основной исходный код apk находится на языке java . При создании этого проекта .java файлы преобразуются в .класс теперь инструмент DX adk преобразует все .файлы классов в файл classes.dex .И этот файл classes.dex выполняется на виртуальной машине Dalvik.

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

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

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

Чтобы узнать больше об odex, нажмите здесь .

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

Поделиться Imposter     12 декабря 2012 в 14:57



1

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

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

.

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

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

Поделиться Akash Raj     10 ноября 2016 в 17:36



Используют ли приложения, использующие несколько процессов, общий экземпляр Dalvik?

Я изучаю управление процессами Android, и мне интересно, используют ли приложения, использующие несколько процессов (не потоков), общий экземпляр Dalvik или существует экземпляр Dalvik для каждого...


Многопоточность в среде виртуальной машины VMWare

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


Как открыть Dalvik .dex файлы и получить байт-код Dalvik приложения из формата apk

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


Почему существует отдельный экземпляр VM(Dalvik/ART) для каждого приложения на Android?

Как говорится в названии, Почему существует отдельный экземпляр VM(Dalvik/ART) для каждого приложения на Android?(необходимость в этом ) и что бы произошло, если бы Android OS выбрал модель, в...


Размер, взятый виртуальной машиной Dalvik

Я пытаюсь понять, сколько памяти выделяется для каждого процесса в Android. Как я понимаю, для каждого процесса приложения существует отдельный экземпляр процесса Zygote, и Zygote будет fork Dalvik...


Google Cloud-развертывание приложения на конкретном экземпляре виртуальной машины

Я использую Google Cloud / Google Compute для размещения моего приложения. Я был на Google App Engine, и я переношу свой код в Google Compute, чтобы использовать настроенный экземпляр виртуальной...


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

Можно ли просмотреть байт-код Dalvik для моего приложения в Android Studio? Если да, то как? Обновление : Мое приложение написано в Java с использованием Android Studio, и я хочу видеть свой...


Пользовательский образ Виртуальной Машины Azure

Я хочу создать пользовательский образ Виртуальной Машины для Azure cloud. При создании нового экземпляра Azure cloud Azure cloud должен использовать образ моей виртуальной машины, а не стандартный...


Google Compute Engine автоматически удаляет экземпляр виртуальной машины

Я использовал Google Compute Engine для моего бэкэнда (debian-lamp), внезапно он автоматически удаляется без какого-либо взаимодействия с пользователем, а также не показывает операцию(удаление...


Google Compute Engine + Google Cloud Storage + экземпляр виртуальной машины NFS

Я хотел бы знать, пробовал ли кто-нибудь с хорошим успехом установить экземпляр Google Compute Engine + Google Cloud Storage + NFS VM ? Сценарий, который я имею в виду, состоит в том, чтобы создать...


Что такое Dalvik – Прошивки – DroidTune – Лучшee для Android и iOS



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

Когда вы создаете Java приложение для вашего компьютера, Java Virtual Machine использует выходные данные исходного кода. По этой причине  Java может работать на какой-либо операционной системе. Dalvik же является оптимизированной версией Java Virtual Machine, при этом - открытой для редактирования и мультизадачной, как следствие этого всего - работает лучше чем Java VM в условиях ограниченного железа. Благодаря открытому исходному коду Dalvikм VM была внедрена в другие операционные системы, например, BlackBerry PlayBook.

Android использует Dalvik по той причине, что лицензия GPL2 распрстраняется только на стандартную Java Virtual Machine, но не Java Micro Edition для мобильных устройств. Между Google и Oracle возникакет много споров относительно Dalvik. Первые утверждают, что машина написана с чистого листа, вторые не согласны и обвиняют Google в использовании кодов Oracle.

Android от А до Я: Что такое Dalvik:
рейтинг 80 из 80 на основе 80 оценок.
Всего 80 отзывов.

Dalvik — Википедия (с комментариями)

Материал из Википедии — свободной энциклопедии

К:Википедия:Статьи без изображений (тип: не указан)

Dalvik — регистровая виртуальная машина для выполнения программ, написанных на языке программирования Java, созданная группой разработчиков Google во главе с Дэном Борнштейном (англ. Dan Bornstein). Входит в мобильную операционную систему Android.

Dalvik оптимизирован для низкого потребления памяти, это нестандартная регистр-ориентированная виртуальная машина, хорошо подходящая для исполнения на RISC-архитектурах процессоров, часто используемых в мобильных и встраиваемых устройствах, таких, как коммуникаторы и планшетные компьютеры. (Большинство виртуальных машин, используемых в настольных системах, являются стек-ориентированными, включая стандартную виртуальную машину Java, принадлежащую Oracle.)

Программы для Dalvik пишутся на языке Java. Несмотря на это, стандартный байт-код Java не используется, вместо него Dalvik исполняет байт-код собственного формата. После компиляции исходных текстов программы на Java (при помощи javac) утилита dx из Android SDK преобразует файлы классов (расширение .class) в файлы собственного формата (с расширением .dex), которые и включаются в пакет приложения (.apk).

В версиях, начиная с Android 4.4 Kitkat, имеется возможность переключиться с Dalvik на более быстрый ART (Android Runtime). В Android 5.0 был полностью заменён ART.

Напишите отзыв о статье "Dalvik"

Примечания

  1. [www.onlamp.com/pub/a/onlamp/2007/11/12/google-calling-inside-the-gphone-sdk.html Google Calling: Inside Android, the gPhone SDK]. onlamp.com. Проверено 5 февраля 2008.

Ссылки

  • [code.google.com/android/what-is-android.html code.google.com/android]
  • [www.betaversion.org/~stefano/linotype/news/110/ Dalvik: how Google routed around Sun’s IP-based licensing restrictions on Java ME]
  • [wireless.itworld.com/4269/071116googlesun/page_1.html Google and Sun may butt heads over Android]

Отрывок, характеризующий Dalvik

– Я очень удивился, когда услышал об этом, – сказал князь Андрей.
Пьер покраснел так же, как он краснел всегда при этом, и торопливо сказал:
– Я вам расскажу когда нибудь, как это всё случилось. Но вы знаете, что всё это кончено и навсегда.
– Навсегда? – сказал князь Андрей. – Навсегда ничего не бывает.
– Но вы знаете, как это всё кончилось? Слышали про дуэль?
– Да, ты прошел и через это.
– Одно, за что я благодарю Бога, это за то, что я не убил этого человека, – сказал Пьер.
– Отчего же? – сказал князь Андрей. – Убить злую собаку даже очень хорошо.
– Нет, убить человека не хорошо, несправедливо…
– Отчего же несправедливо? – повторил князь Андрей; то, что справедливо и несправедливо – не дано судить людям. Люди вечно заблуждались и будут заблуждаться, и ни в чем больше, как в том, что они считают справедливым и несправедливым.
– Несправедливо то, что есть зло для другого человека, – сказал Пьер, с удовольствием чувствуя, что в первый раз со времени его приезда князь Андрей оживлялся и начинал говорить и хотел высказать всё то, что сделало его таким, каким он был теперь.
– А кто тебе сказал, что такое зло для другого человека? – спросил он.
– Зло? Зло? – сказал Пьер, – мы все знаем, что такое зло для себя.
– Да мы знаем, но то зло, которое я знаю для себя, я не могу сделать другому человеку, – всё более и более оживляясь говорил князь Андрей, видимо желая высказать Пьеру свой новый взгляд на вещи. Он говорил по французски. Je ne connais l dans la vie que deux maux bien reels: c'est le remord et la maladie. II n'est de bien que l'absence de ces maux. [Я знаю в жизни только два настоящих несчастья: это угрызение совести и болезнь. И единственное благо есть отсутствие этих зол.] Жить для себя, избегая только этих двух зол: вот вся моя мудрость теперь.
– А любовь к ближнему, а самопожертвование? – заговорил Пьер. – Нет, я с вами не могу согласиться! Жить только так, чтобы не делать зла, чтоб не раскаиваться? этого мало. Я жил так, я жил для себя и погубил свою жизнь. И только теперь, когда я живу, по крайней мере, стараюсь (из скромности поправился Пьер) жить для других, только теперь я понял всё счастие жизни. Нет я не соглашусь с вами, да и вы не думаете того, что вы говорите.
Князь Андрей молча глядел на Пьера и насмешливо улыбался.

Отправить ответ

avatar
  Подписаться  
Уведомление о