正如标题所述,
 为什么Android上的每个应用都有单独的VM(Dalvik / ART)实例?(需要它)
如果Android操作系统选择了单个虚拟机运行所有应用程序的模型会发生什么?

答案 0 :(得分:5)
在单个流程中运行多个应用程序并不起作用的原因有很多;这是两个:
两个不相互信任的应用程序不应该能够查看彼此的内存,即使它们使用本机代码或反射也是如此。
如果进程泄漏内存并崩溃,则只会损害自身。
答案 1 :(得分:1)
为什么每个应用程序都有一个单独的VM实例(Dalvik / ART)? 需要它)
这是一个设计决定,在我看来,是为了保持简单。每个进程都在自己的vm
中运行。所有资源都分配给该流程,而vm
在内部不会协调对资源的访问,例如: FileDescriptor
s,I/O
等。我从未听说过multiprocess vm
(一个允许在其中运行多个进程的虚拟机),但我找到了article你可以给你一个见解。