安卓要不是傍上JAVA,可以在多个系统平台上运行,安卓起初的时候是要做一套跨平台的移动系统,为什么安卓不放弃虚拟机机制,在arm里面是调用加法器,为什么Android不可以绕开虚拟机直接运行当初设计android的时候,而硬件不断增加CPU性能,多平台(cpu)运行因为机器针对不同机器语言。
为什么Android不可以绕开虚拟机直接运行
当初设计android的时候,设计人员只是软件工程师,无法针对某个CPU(目前有的CPU框架intel,arm,mips,rsicv等)去开发。最好的是,我针对所有CPU都支持。
于是,安卓发现了java,java设计理念是啥?
跨平台,是指java语言编写的程序,一次编译后,可以在多个系统平台上运行。
怎么实现一次编译,多平台(cpu)运行
因为机器针对不同机器语言,有不同执行逻辑。
就好比二进制000100,在arm里面是调用加法器,而riscv是调用乘法器一样。所以,需要给这些不同平台请个翻译。而虚拟机就是起到翻译作用。
这样虽然增加了消耗(例如执行同样代码,时间消耗上,c明显由于java),但是可以某种意义上,把软件,物理硬件分开了。软件重点设计自己app,而硬件不断增加CPU性能。
为什么安卓不放弃虚拟机机制,转变更高效的方式,例如ios一样
那不就是Linux手机?很多厂商做过,不了了之。安卓要不是傍上JAVA,也不会有如今的局面。JAVA开发者比C/C++多太多了。WP就死在这上面。IOS要不是有硬件支撑,也早死了。
安卓起初的时候是要做一套跨平台的移动系统,事实上以前也出现过X86和MIPS的手机,只不过后来被ARM一统天下,才会让人觉得这个JVM是个累赘。