业界动态

华为方舟编译器是怎么改变安卓底层架构的?

2019/6/30 6:44:28

  要在安卓系统底层进行优化,除了技术难题外,关键在于如何跟谷歌达成合作。

  P30系列中国发布会上,华为推出方舟编译器,可以做到在安卓底层优化架构,引起业内关注。

  中兴事件后,安卓系统禁用的风险屡屡被探讨。此前,华为曾表态,自己有手机系统备份,但不到万不得已不会启用。

  当然,方舟编译器并没有取代安卓系统,而是跟安卓系统进行深度合作,以这种方式来提升华为手机的体验,并提升华为对抗风险的能力。

  编译器是一种语言(通常为高级语言)翻译为另一种语言(通常为低级语言)的程序,可以将源代码翻译成可以被计算机或虚拟机执行的代码。

  华为方舟编译器可供开发者,在开发环境一次性将高级语言编译为机器码,可以让手机安装的APP运行效率明显提升。

  据华为实验室测试数据,EMUI 9.1在仅仅对系统组件System Server应用了华为方舟编译器后,系统操作流畅度提升24%,系统响应性能提升44%。新浪微博极速版是第一款采用方舟编译器的第三方应用,操作流畅度提升60%。

  华为为什么要做方舟编译器?

  4月25日,CBG软件部总裁王成录博士在采访中解释:

  由于安卓的开放性,对上层应用没有强制规则。比如安卓的第三方应用市场非常多,数量无法统计;安卓的安装方式也非常多,通过邮件都可以安装,由此带来的问题比较多。所以安卓用户要真正能够获得好的体验,手机厂家只把手机(硬件)做好是不够的,(还需要对软件进行提升)。

  王成录打了一个比方:假设手机是一个人,过去这个人身体体质弱容易得病,但是今天把这个人身体锻炼好了非常强壮了,但是吃的东西没有保障。从应用市场下载的东西有问题,这个人免疫力再好,也难免受食物所累。

  手机内部的资源是有限的,要想取得好的用户体验,就要对系统硬件资源机型合理调配。华为先后发布了多种新技术,包括AI芯片、GPU Turbo、Link Turbo来提升手机性能。在此之后,编译器成为安卓机性能提升最大的难题,为了攻克这一难关,华为推出了方舟编译器。

  nl4li9bg4tl977xt.jpeg

  做编译器是一个非常复杂的工程。据王成录介绍,华为2009年就开始为编译器做准备,2013年有了自己的编译器HCC,2014年引入了Fred Chow等技术大牛,来做华为编译器的主架构。此后,2012年实验室成立了编译器与编程语言实验室,今年4月推出了方舟编译器。

  相比于安卓原生系统,方舟编译器可以明显提升系统运行效率:

  首先,它是多语言联合优化编译器,消除跨语言调用开销,这是影响Android性能消耗较大的核心原因之一。

  其次,把虚拟机去掉了,内存回收机制。“我们在内存回收上,华为现在这方面做的比Android领先的非常高,内存回收的机制和效率非常高。”王成录表示。

  虚拟机是安卓系统的关键部分之一。虚拟机可以帮助安卓系统适配各种处理器,实现跨平台操作,不管是X86机器,还是ARM机器,或是其他CPU的机器都没有问题。但这样一来,只要装上安卓系统,虚拟机也会占用额外的系统资源。

  “我们编译器的目标是上层业务代码不需要改,大家只需要通过方舟编译器重新编译就足够了。现在还需要开发者作一些对接,但很快随着一些APP进来,这个目标很快就能实现。”

  据王成录介绍,方舟编译器目前是基于ARM指令集开发的,2019年全面开源,适用于所有ARM平台,不限于安卓,未来可基于具体芯片指令集进行开发。

  其实,要在安卓系统底层进行优化,除了技术难题外,关键在于如何跟谷歌达成合作。

  2012年,因为基于安卓框架的阿里云OS去掉了谷歌的虚拟机,代之以自行研发的虚拟机,谷歌反对宏碁生产搭载阿里云OS的智能手机,并宣称要取消其GMS授权。由于谷歌的反对,此事就此搁浅。华为则跟谷歌达成了合作,在华为手机系统国内版本上,可以采用方舟编译器。

  王成录也表示,华为在安卓底层的优化工作,是产业的共同资产,华为愿意将方舟编译器贡献给整个安卓生态,这个过程需要谷歌、手机厂家、应用开发者一起努力,让编译器更加完善。


华为 方舟编译器
亚洲av