为什么要开虚拟机

核心提示安卓是谷歌将它从开源linux上改造而来,依旧保持开源特性。为了应用开发者更多地开发安卓程序,自然也就保留了linux上的虚拟机机制。同时,安卓的目标是手机等移动终端,这些设备的处理器五花百门,而且开源安卓也会被各种深入定制,这同样导致了安

是谷歌把它从开源的linux改造过来的,现在还保持着开源的特性。为了让应用开发者开发出更多的Android程序,linux上的虚拟机机制自然被保留了下来。同时,Android的目标是手机等移动终端。这些设备的处理器价格昂贵,开源的Android会进行深度定制,这也导致Android仍然使用虚拟机机制来保持高兼容性。当然这些华为开发了方舟编译器,让系统直接运行机器码,消除了虚拟机带来的弊端。

1.Android的诞生过程决定了它会沿袭linux的虚拟机。

Android最初不是由谷歌开发的,而是由一家名为Android的初创公司开发的。公司成立22个月后,以4000万美元的价格将最初的Android原型系统卖给了谷歌。这个原型本来是基于linux系统开发的,自然还是沿用了linux的虚拟机机制。

2.移动终端硬件厂商太多,只能走虚拟机模式。

谷歌拿到系统后,继续自主研发Android系统。2007年,它还聚集了84家一流的硬件制造商组成了RD联盟。整个研发还是基于linux开源系统,但是解决了商业化的一大难题。也就是linux是一个开源系统,有GPL开源协议。为了适应这个系统,很多硬件厂商必须公开上面开发的驱动。一旦公开了驱动代码,就相当于公开了他们自己的硬件设计。谷歌开发的Android系统解决了这个问题。它将驱动程序放在用户空间,并允许它通过L内核访问硬件。同时,暴露接口允许硬件制造商编写驱动程序。硬件厂商只需要提供驱动,不需要公开源代码。

这么多硬件厂商一起研发,自然会面临一个问题,每个厂商的硬件都不一样。这是安卓生态发展必须解决的兼容性问题。最好的办法还是遵循linux的虚拟机机制,这样Android软件编写者就不需要针对不同的硬件重新开发软件了。它只需要一次开发就可以在Android上的虚拟机中运行。

3.华为的方舟编译器

Android的虚拟机机制很大程度上解决了兼容性问题,但这种解释和执行的方式也降低了软件的运行效率。近年来,华为在这方面的研发力度很大,成功开发了“方舟”编译器。编译器就是为了解决这个问题而诞生的。如果软件作者用Ark编译器重新编译他的程序。其软件可以以机器码的形式在Android上高效运行,方舟编译器会对程序进行优化。根据华为的数据,华为方舟编译器编译的程序,操作流畅度提升24%,系统响应速度提升44%,第三方应用操作流畅度提升60%!

摘要

Android没有绕过虚拟机直接运行,因为从研发之初,为了保持高兼容性,就不得不遵循虚拟机机制。但这些年,华为开发了“方舟”编译器来解决这个问题。方舟编译器编译的程序可以直接在Android系统上以机器码的形式运行,效率大大提高。

 
友情链接
鄂ICP备19019357号-22