首页 新闻 搜索 专区 学院

Android为什么要为每个程序开一个虚拟机呢?

0
悬赏园豆:5 [待解决问题]

Android系统中,

为什么要为每个运行的程序开一个虚拟机呢?

 

如果说是为了一个挂了,不影响其它的运行..那么windows系统中的进程也能达到同样的效果啊.

 

windows中A程序无响应时,你还是可以正常操作B程序,没影响啊..

 

个人感觉Android中,每打开一个程序,就开启一个虚拟机,是不是太耗资源了,而且在虚拟机中运行,肯定没有在物理机中运行速度快啊...(我理解的虚拟机就是像VMWare那中,只是没有单独的虚拟机界面..不知道是否正确)

 

为什么Android不采用进程的机制,而要单独开一个虚拟机呢?

纯属好奇,知道的同学告诉我一下..谢谢

hexllo的主页 hexllo | 菜鸟二级 | 园豆:326
提问于:2015-10-10 13:00
< >
分享
所有回答(1)
-1

首先声明,我没有专业的研究过android

据我所知:

1. android的VM(vm==Virtual Machine )也是类似JRE的东西,当然,各方面都截然不同,不过有一个作用都是一样的,为app提供了运行环境

2. android为每个程序提供一个vm,可以使每个app都运行在独立的运行环境,使稳定性提高。

3. vm的设计可以有更好的兼容性。android apk都被编译成字节码(bytecode),在运行的时候,vm是先将字节码编译真正可执行的代码,否则不同硬件设备的兼容是很大的麻烦。

结合现实,android中VM的设计是很有必要的。1)android(非ROOT)没有windows下键盘钩子之类的东西,各个程序之间也不可以随意访问内存,所以此类木马病毒几乎没有。

2)android已经适配了非常非常多的各种乱七八糟堆砌起来的硬件设备了,兼容好的优点不言而喻。

iVechan | 园豆:351 (菜鸟二级) | 2015-10-11 09:58
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册