王成录解密方舟编译器:安卓如何改良才能媲美iOS的流畅度

苹果并不是智能手机最早的发明者,但在2007年1月发布的第一代iPhone,却真正重新定义了智能手机并开启了移动互联网的时代序幕。12年过去,尽管iPhone手机在拍照、续航等细分领域纷纷被来自安卓阵营的竞争对手所超越,但在系统流畅性方面,iPhone和其搭载的iOS系统一直是业内当之无愧的标杆。



伴随着华为P30系列新品发布,华为在EMUI 9.1应用了全新的方舟编译器之后,据华为官方实验室测算数据显示,系统组件System Server就给操作系统流畅度带来了24%的提升,系统响应性能获得了44%的显著收益。为什么方舟编译器会让安卓系统获得可以媲美iOS系统的丝滑体验?既然更新编译器有如此大的收益,为什么之前华为和其他企业没有在编译器上有大动作?文件系统被称为是一个操作系统中不可轻易撼动的“承重墙”,华为为什么要选择EROFS这个全新的文件系统?4月25日下午,华为消费者BG软件部总裁王成录就以上方舟编译器和EROFS文件系统等焦点问题,进行了细致的解答。

方舟编译器为什么能提升安卓系统的流畅度?

编译器对于大多数用户来说,都是一个相当陌生的事物。其实通俗来讲,编译器的作用就是把编程人员开发的高级语言程序,翻译成机器可执行的机器指令。王成录做了一个形象的比喻:要想把编译器做好,就是你要懂原来的高级语言,又要懂你所看到的硬件平台。就像一个优秀的翻译官,要把中文翻译成英文,至少对中文和英文都有非常深刻的理解才行;你必须对整个机器的CPU、GPU所有的指令要熟悉,第二个对目标语言要非常熟悉,才能做出一款更优秀的编译器。

我们在电视综艺节目或者日常的线下聚会娱乐时,经常会玩一种叫“我来比划你来猜”的游戏,游戏规则通常是两人搭档,一人背对屏幕根据另一个人的语言表述和肢体动作来猜词,另一个人根据屏幕上关键词来做提示,最终以单位时间猜对关键词数量多者获胜。玩过这个游戏的朋友会深刻体会,在知识储备大致相当的情况下,描述者对关键词描绘的精准度越高、特征值越清晰,那么单位时间内猜对的概率就越高;反之,如果描述者给出的指令模糊,则需要不断做解释,才能逐步接近答案。方舟编译器,就是与猜词游戏中的原理有很多相通之处,原有的安卓系统的编译器是边执行边解释,而方舟编译器则是将指令一次性地编译到位,无需虚拟机运行,彻底消除了虚拟机动态编译的额外开销,从边执行边解释到直接执行,所以最终执行效率和流畅性都能得以大幅提升。



据王成录介绍,现有的安卓系统主要是在手机上进行编译,虽然谷歌一直在不断提升原生安卓编译器的效率,安卓5.0版本之前,安卓采用的是解释执行+JIT方式,安卓6.0开始尝试采用ART虚拟机,后来进化为采用解释执行+JIT+AoT的综合模式。但为了解决安卓程序开发的兼容性问题,ART虚拟机长期存在,安卓编译器可以通过JIT和AoT编译大部分Java语言,但对于Java的动态特性无能为力,仍然需要边解释边执行,,这也导致了安卓系统流畅性的损失。而华为方舟编译器可供开发者在开发环境一次性的将高级语言编译为机器码手机安装应用程序后可全速运行程序,带来效率上的巨大提升。

王成录坦言,经过华为方舟编译器编译后,安装包的体积会增大一些,安装后的占用空间也有些变大。但现在手机的普遍空间较大,并且安装包下载后系统会直接删掉,对用户的影响并不明显。经过方舟编译后的应用,性能得到质一般的提升,以微博极速版为例,根据华为实验室测试数据显示,操作流畅度提升高达60%。



在硬件配置相当的前提下,使用方舟编译器能大幅提升手机的流畅度,所以这是一个系统底层革新带来的巨大升级,但王成录表示,华为并不打算将方舟编译器私藏为华为的“独家秘笈”华为计划将方舟编译器开源,以此来提升整个安卓生态的产业竞争力,让更多的安卓阵营伙伴和用户受益,提升用户对整个安卓软件生态的满意度。

樱桃好吃树难栽。王成录回忆说,做方舟编译器是一个“板凳要坐十年冷”的工程,华为稳得住才能做下来。华为从2009年做海思芯片后,由于需要有自己的编译器才能真正发挥芯片的能力才开始起步,从2013年这开始,有华为自己的自研编译器了,叫HCC;再到2014年,FredChow等技术大牛加入,来做华为编译器的主架构;有了成功的实践经验以后,华为2012实验室成立了编译器与编程语言实验室,到今天推出了方舟编译器,其实这是历时十年艰辛努力的结果。

王成录认为华为方舟编译器主要优点体现在四个技术亮点上:第一,它是多语言联合优化编译器,消除跨语言调用开销,这是影响Android性能开销比较大的核心原因之一;第二,把虚拟机去掉,革新了内存回收机制;第三,灵活的编译优化,开发者不需要改代码,优化编译过的性能可以提升10%-20%;第四,方舟编译器将采取开源策略,降低开发者的学习和使用成本。以上这些技术亮点能给应用开发者带来了更多去优化自己应用的机会。

为什么说超级文件系统EROFS是一项底层重大突破?

如果说操作系统是一个设计缜密的大厦,那么文件系统就是这个大厦中其关键支撑作用的“承重墙”,我们可以对房屋进行各种个性化装修,但有一个基本的尝试就是千万不能动“承重墙”。

但华为在EMUI 9.1中却采用了全新的超级文件系统(EROFS),这行为相当于拆掉重做了安卓系统的“承重墙”,华为为什么要冒如此大的战略风险?对用户而言收益如何体现?

在做EROFS之前,华为先大胆尝试了F2FS,Flash友好的文件系统。王成录解释道,其实华为当初做F2FS立项时,内部也产生过争议,但华为坚信F2FS才是与闪存介质最匹配的文件系统,F2FS能够给用户带来更流畅的体验,这值得华为去尝试。2016年,F2FS伴随Mate 9搭载的EMUI 5.0正式发布,过了一年半以后,Google看到F2FS在安卓系统上运行的卓越表现,便在Google Pixel手机用了这个文件系统。



王成录表示,文件系统实际上是伴随着存储介质的发展一步一步走过来的,存储介质不断的演进,让这个文件系统不断的跟着演进,就是让数据在存储介质上存储读取更好、更安全也更快。EROFS文件系统本身,它的第一个核心特点就是只读特性,保证系统的安全。操作系统的系统分区不能被写入,否则就意味着系统被攻破了。但安卓起源于Linux,其文件系统Ext4及其前身Ext2、Ext3等从Android诞生那一天起,并没有考虑到闪存的特点,文件系统是读写双向的,读写双向用在系统区是不合适的。Ext4为了解决这个问题,加了两把锁锁住,不允许外部写进去。华为EROFS这个系统,既解决了随机读的速度问题,又解决安全问题,这个文件系统是只读的不允许写的,先天就把写的可能性屏蔽掉了。第二个核心特性是对于系统分区专门量身定制的,可以提升读的速度,还有第三点也非常重要,那就是通过压缩算法,可以将整个系统区空间占用减少2GB,这个对消费者直接受益还是比较大的。华为已经把EROFS的文件系统在社区开源了,Linux下一个主版本4.19版本就使用了华为EROFS文件系统 ,这也是国内厂商第一次贡献完整的文件系统到Linux主线版本。



华为EMUI还将如何进化与变革?

安卓和iOS阵营的良性竞争,让双方都保持着足够强的技术更新动力,也让移动应用生态更加健康。但整体而言,安卓在生态系统层面还有很多值得向苹果学习之处。

王成录直言,在软硬件结合的精细化资源调度和安卓系统组件深度优化等方面,EMUI未来还有很长的路要走。华为的技术创新都围绕用户体验,当我们把华为手机端侧锻炼得非常健康的时候,我们另外一头必须往前走,通过生态共同努力,让业务更丰富,让应用体验更好,必须借助第三方生态,这就是华为与BAT和网易等伙伴成立了安卓绿色联盟的初衷,目的就是中国的安卓生态建设的更加纯净、高效。

未来华为EUMI会围绕着三个关键点做大做强生态:第一,是让业务更丰富,AI应用便是典型。华为从做AI的第一天起,我们就把AI所有能力开放给第三方,使能现在的应用更丰富、更强大;第二,就是解决体验的基础性流畅性问题,使用方舟编译器只是其中的一种方式;第三,要把网络也考虑进来,Link Turbo会有更新版本,对网络的依赖也会变小。



王成录强调,在EMUI 9.1的诸多新特性中,其中有一项是华为手机与华为PC的一碰传,同时华为也在跟微软合作,把这些东西贡献给微软,不久将来,在其它品牌Windows的笔记本上也可以使用这个功能;华为还跟奥迪、宝马等车企合作手机钥匙;华为手机与主流商用跑步机合作,用户在健身房/酒店锻炼的时候,华为手机与跑步机碰一碰,就可以把所有的跑步数据都同步在手机上,跑完了就可以拿走。以前是两个设备通常是单点的连接,未来的连接,所有的设备关系是平等的,所有设备之间都可以互相连接。未来EMUI的革新和进化方向,是让应用和服务,可以在设备之间无缝的流转,让智慧化全场景体验由美好愿景变成触手可及的现实。

华为、小米、OV为代表的中国手机厂商,在全球智能手机市场份额不断提升。但中国手机厂商在之前的安卓生态体系中,更多的是生态系统受益者的角色,而方舟编译器和EROFS文件系统的开源,让中国厂商更多地开始承担起底层技术革新和创新赋能的重任,并开始反哺安卓生态。我们也衷心希望更多中国科技企业,能够在万物互联、万物智联的5G时代,能够在底层技术层面上做出更多的创新和成绩,书写好“中国智造”的国家形象新标签。


极客网企业会员

免责声明:本网站内容主要来自原创、合作伙伴供稿和第三方自媒体作者投稿,凡在本网站出现的信息,均仅供参考。本网站将尽力确保所提供信息的准确性及可靠性,但不保证有关资料的准确性及可靠性,读者在使用前请进一步核实,并对任何自主决定的行为负责。本网站对有关资料所引致的错误、不确或遗漏,概不负任何法律责任。任何单位或个人认为本网站中的网页或链接内容可能涉嫌侵犯其知识产权或存在不实内容时,应及时向本网站提出书面权利通知或不实情况说明,并提供身份证明、权属证明及详细侵权或不实情况证明。本网站在收到上述法律文件后,将会依法尽快联系相关文章源头核实,沟通删除相关内容或断开相关链接。

2019-04-28
王成录解密方舟编译器:安卓如何改良才能媲美iOS的流畅度
但在2007年1月发布的第一代iPhone,却真正重新定义了智能手机并开启了移动互联网的时代序幕。12年过去,尽管iPhone手机在拍照、续航等细分领域纷纷被来自安卓阵营的竞争对手所超越。

长按扫码 阅读全文