Android系统中,
为什么要为每个运行的程序开一个虚拟机呢?
如果说是为了一个挂了,不影响其它的运行..那么windows系统中的进程也能达到同样的效果啊.
windows中A程序无响应时,你还是可以正常操作B程序,没影响啊..
个人感觉Android中,每打开一个程序,就开启一个虚拟机,是不是太耗资源了,而且在虚拟机中运行,肯定没有在物理机中运行速度快啊...(我理解的虚拟机就是像VMWare那中,只是没有单独的虚拟机界面..不知道是否正确)
为什么Android不采用进程的机制,而要单独开一个虚拟机呢?
纯属好奇,知道的同学告诉我一下..谢谢
首先声明,我没有专业的研究过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已经适配了非常非常多的各种乱七八糟堆砌起来的硬件设备了,兼容好的优点不言而喻。