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

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

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

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

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

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

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

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

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

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