导读:虚拟机相当于应用程序在不同运行环境中的翻译。
说起谷歌安卓系统的“虚拟机”,很多人爱拿它和苹果iOS做比较,结果,安卓的很多短腿儿都让虚拟机背了锅,比如安卓手机运存容量是iPhone的两到三倍,流畅度却没有脱胎换骨的变化,有时还被iOS摁在地上摩擦,然后很多人将其归结为虚拟机拖了后腿儿。
虚拟机表示:为安卓流畅度背这口锅,也是为了广大程序员的饭碗着想!
解开这个梗,先要搞懂什么是虚拟机,以及虚拟机有什么用。
简单说,虚拟机是一种消除计算机硬件差异的机制,它可以提供一种稳定的运行环境,让相同的应用程序在不同的操作系统和硬件上运行。
说到应用程序的运行环境,需要展开一下。
应用程序的运行环境=操作系统+硬件,其中硬件是起主要作用。原因不复杂,特定指令集的CPU只能解释其固有的机器语言,不同的CPU能解释的机器语言(本地代码)自然不同,英特尔的CPU和ARM的CPU能解释得机器语言是不同的。这好比不会英文的人听不懂英语,反之亦然。
怎么才能让不会英文的人听懂英语?找英语翻译可以办到。
虚拟机就相当于应用程序在不同运行环境中的翻译。比如著名的虚拟机软件“VirtualPCforMac”,它由微软出品,有了它,苹果的Macintosh用户也能在Mac操作系统上运行Windows应用了,把苹果电脑用出PC的感觉。
不过,到年时,微软停止了对“VirtualPCforMac”的开发,因为苹果电脑换“芯”了,从PwoerPC换成英特尔的CPU,和Windows应用程序的运行环境相同,所以现在苹果电脑不借助虚拟机软件也能运行Windows及其应用程序。
安卓也有自己的虚拟机,它叫Java虚拟机,简称JavaVM(JavaVirtualMachine)。
Java虚拟机有多种版本,有用于Windows的虚拟机,有用于Macintosh(现为MacOS)的虚拟机,也有用于移动设备的虚拟机,比如安卓系统的Java虚拟机。
不同的Java虚拟机对应不同的操作系统和CPU,好处是程序员不用