Intereting Posts
Gson – прочитать значение с двумя разными ключами Изменение значка гамбургера на панели навигации Lollipop CalenderView DatePicker не вызывает метод OnDateChanged () Что может вызвать эту ошибку в android? Перевернутая текстура? | OpenGL-ES 2.0 (android) Должен ли внутренний класс DialogFragment статичным или нет? ПредпочтениеФрагмент с прозрачным фоном? Выделите все слова, которые просматриваются с помощью EditText Как создать формат BKS (BouncyCastle) Java Keystore, который содержит цепочку сертификатов клиента Java.lang.NoSuchMethodError: android.app.Notification $ Builder.addAction Mp4parser запускается на устройстве из Android Studio, но сбой при установке APK вручную Как получить сообщения из блога WordPress в приложении для Android? Не удается создать проект Android с Gradle (с помощью аннотаций Android) Установка центра тяжести детского вида Изменение макета выравнивания другого дочернего вида в горизонтальной компоновке? Как я могу сделать макет, который будет работать как на планшете, так и на телефоне?

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

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

И что могло бы произойти, если бы ОС Android выбрала модель, где одна виртуальная машина запускает все приложения?

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

Существует много причин, по которым запуск нескольких приложений в одном процессе не работает; Вот два:

Зоны безопасности.

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

Отказоустойчивость.

Если процесс утечки памяти и сбоев, он вредит только себе.

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

Это дизайнерское решение, и, на мой взгляд, сделано, чтобы сохранить его простым. Каждый процесс работает в собственном vm . Все ресурсы выделены этому процессу, а vm внутри не имеет возможности координировать доступ к ресурсам, например FileDescriptor s, I/O и т. Д. Я никогда не слышал о multiprocess vm (vm, который позволяет запускать несколько процессов в Это), но я нашел статью, в которой вы могли бы дать вам представление.