¿Por qué hay una instancia separada de VM (Dalvik / ART) para cada aplicación en Android?

Como dice el título,
¿Por qué hay una instancia separada de VM (Dalvik / ART) para cada aplicación en Android? (La necesidad de ello)

Y, ¿qué habría pasado si el sistema operativo Android hubiera elegido un modelo en el que una sola máquina virtual ejecute todas las aplicaciones?

    2 Solutions collect form web for “¿Por qué hay una instancia separada de VM (Dalvik / ART) para cada aplicación en Android?”

    Hay muchas razones por las que ejecutar múltiples aplicaciones en un solo proceso no funciona; Aquí hay dos:

    Zonas de seguridad.

    Dos aplicaciones que no confían entre sí no deberían poder ver la memoria del otro, incluso si utilizan código nativo o reflexión.

    Aislamiento de falla.

    Si un proceso pierde memoria y se bloquea, sólo perjudica a sí mismo.

    ¿Por qué hay una instancia separada de VM (Dalvik / ART) para cada aplicación? (La necesidad de ello)

    Es una decisión de diseño, y en mi opinión, se hace para mantenerlo simple. Cada proceso se ejecuta en su propio vm . Todos los recursos están asignados a ese proceso, y el vm , internamente, no tiene que coordinar el acceso a los recursos, por ejemplo FileDescriptor s, I/O etc. Nunca oí hablar de multiprocess vm (un vm que permite que más de un proceso se ejecute en ), Pero he encontrado un artículo que usted podría darle una idea.

    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.