官网做的好看的网站有哪些,wordpress 仿豆瓣,做好网站建设工作总结,免费咨询法律电话导读#xff1a;虚拟机相当于应用程序在不同运行环境中的翻译。说起谷歌安卓系统的“虚拟机”#xff0c;很多人爱拿它和苹果iOS做比较#xff0c;结果#xff0c;安卓的很多短腿儿都让虚拟机背了锅#xff0c;比如安卓手机运存容量是iPhone的两到三倍#xff0c;流畅度却…导读虚拟机相当于应用程序在不同运行环境中的翻译。说起谷歌安卓系统的“虚拟机”很多人爱拿它和苹果iOS做比较结果安卓的很多短腿儿都让虚拟机背了锅比如安卓手机运存容量是iPhone的两到三倍流畅度却没有脱胎换骨的变化有时还被iOS摁在地上摩擦然后很多人将其归结为虚拟机拖了后腿儿。虚拟机表示为安卓流畅度背这口锅也是为了广大程序员的饭碗着想解开这个梗先要搞懂什么是虚拟机以及虚拟机有什么用。简单说虚拟机是一种消除计算机硬件差异的机制它可以提供一种稳定的运行环境让相同的应用程序在不同的操作系统和硬件上运行。说到应用程序的运行环境需要展开一下。应用程序的运行环境操作系统硬件其中硬件是起主要作用。原因不复杂特定指令集的CPU只能解释其固有的机器语言不同的CPU能解释的机器语言(本地代码)自然不同英特尔的CPU和ARM的CPU能解释得机器语言是不同的。这好比不会英文的人听不懂英语反之亦然。怎么才能让不会英文的人听懂英语找英语翻译可以办到。虚拟机就相当于应用程序在不同运行环境中的翻译。比如著名的虚拟机软件“Virtual PC for Mac”它由微软出品有了它苹果的Macintosh用户也能在Mac操作系统上运行Windows应用了把苹果电脑用出PC的感觉。不过到2006年时微软停止了对“Virtual PC for Mac”的开发因为苹果电脑换“芯”了从PwoerPC换成英特尔的CPU和Windows应用程序的运行环境相同所以现在苹果电脑不借助虚拟机软件也能运行Windows及其应用程序。安卓也有自己的虚拟机它叫Java虚拟机简称JavaVM(Java Virtual Machine)。Java虚拟机有多种版本有用于Windows的虚拟机有用于Macintosh(现为MacOS)的虚拟机也有用于移动设备的虚拟机比如安卓系统的Java虚拟机。不同的Java虚拟机对应不同的操作系统和CPU好处是程序员不用关注操作系统和CPU的差异只要是用Java语言写成的源代码就可以在所有具有Java虚拟机的操作系统上运行。Java虚拟机的运行过程是Java编译器先将应用程序源代码转换成字节代码再由Java虚拟机将字节代码转换成适用于相应CPU的机器语言由其执行。如果感到上面这段话比较晦涩难懂记住这个结论也行Java虚拟机是个称职好用的翻译可以让不同的CPU看懂Java语言编写的应用程序。虚拟机还有一个好处就是写应用程序和操作系统的编程语言可以风马牛不相及。iOS和安卓操作系统的源代码都是用C语言写成由于C语言是较早出现的高级编程语言入门门槛较高而安卓应用程序是用Java编程是一种更高级的编程语言(iOS的应用程序编写语言是swift)入门门槛较低。Java之父詹姆斯·高斯林 (James Goslin显然Java的低门槛可以吸引大量人员进入应用程序编程行业方便迅速建立生态。实际上这也是Java得以流行的原因。不过虚拟机也不是没有短板最大的短腿儿就是代码转来转去会拖慢程序运行特别吃硬件资源。这个胎里带的毛病是安卓手机流畅度不及iPhone的原因之一在绝大部分虚拟机上都能反映出来。反过来想想如果没有虚拟机的话该怎么办只能开发不同版本的应用程序比如Mac版、iOS版、Linux版、安卓版和Windows版。对应用开发商来说如此多的版本会增加开发成本和维护成本结果就是一些小众的硬件很难建立起丰富的软件生态。当然对数以十万计的安卓应用开发程序员来说没有Java虚拟机的话就意味自己的Java武功被废饭碗被砸了要么改行要么学C语言这么武功。这比开发多版本程序还让人着急。