66

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

 5 years ago
source link: https://36kr.com/p/5198778?amp%3Butm_medium=referral
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

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

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

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

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

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

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

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

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

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

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

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

aeaU7vB.jpg!web

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

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

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

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

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

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

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

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

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

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


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK