1月16日华为的“小目标”方舟编辑器意在达成安卓全链条优化

其实我一直都在
阅读

1月16日华为的“小目标”方舟编辑器意在达成安卓全链条优化

华为P30系列手机上海公布会后,除了余承东以外,华为内部最忙碌的人可能就是华为消费者BG软件部总裁王成录博士。当天现场除了公布华为P30系列手机以外,另外两项对外发布的“黑科技”,也同样的引起了业内的关注。这两项“黑科技”分别是:华为方舟编译器和超级文件系统EROFS。一时间,方舟编译器成为了开辟者间讨论的热点,王成录和他实验室的来电川流不息,太多人迫切的想要了解关于方舟编译器的相关内容。

时隔两周后,华为召开了针对这新两项技术的小型沟通会,王成录博士为我们解读了有关于这两项技术的前生今世,以及未来将有可能给业内所带来的改变。据称,应用方舟编译器后,可以使目前的Android系统在操作流畅度提高24%以上。使用超级文件EROFS后,可以让现行的Android系统在随机读性能上提高20%,系统体量同时将减少14%。简单来说,告辞Android系统向来让人诟病的卡顿问题,兴许将指日可待。

△华为消费者BG软件部总裁王成录博士

方舟编译器是什么?

根据王成录的说法,方舟编译器是对安卓底层处理机制的一次颠覆。

我们都知道,所有的机器是拥有自己语言的,为了能够让机器按照人类的指令进行操作,需要先将高级语言转化为机器程序可以识别的语言,这之间就需要一个语言转换的媒介。担当这一工作的程序就是编译器,而编译器在接收和转换期间的效率也就直接影响到了机器从接受、反应到执行的速度。

目前的Android系统中识别JAVA或者C/C++语言所使用的是ART虚拟机,混合使用了AOT编译器(Ahead Of Time)、解释、JIT编译器(Juest In Timr)策略。AOT可以在APK运行之前,就对其包含的Dex字节码进行翻译,对指令进行逐一翻译,从而得到对应的本地机器指令。这一切都是在终端,也就是手机上进行的,所以也直接导致了一些比较明显的缺点:首先,逐条翻译的过程中需要等待,这会导致系统处理速度降低;其次,在处理不同的语言时,会占用更多的存储空间,同时也需要更长的安装和启用时间;另外,虚拟机的内存垃圾回收机制是将所有垃圾集中全局回收,当进行全局回收时会浮现短暂的应用中断,这也是造成Android系统卡顿的重要原因之一。

那么方舟编译器与传统的JAVA虚拟机相比又有哪些改进呢?首先,方舟编译器的编译过程是在开辟者端就完成的,开辟者在程序开辟的过程中就可以直接将不同编程语言编译为机器可识别的指令,最后一同打包在安装包内。当手机安装程序的时候就可以直接进行识别和运行,幸免了与虚拟机交互所需要花费的时间和消耗的存储空间,从而整体提高了软件和系统的运行速度。其次,方舟编译器采纳的是随用随回收的内存回收机制,无需暂停应用便可以回收内存,所以内存回收的卡顿问题也就不会再浮现了,这是一种绕过Android底层虚拟机架构进行的操作,可以称得上是从根本上所进行的改造。如果用量化的方式来表达的话,用用方舟编译器所带来的提升效果,能实现系统操作流畅度提升24%,系统响应性能提升44%。

华为为什么要这么做?

方舟编译器的工作原理我们已经大致了解了,那么华为作为一家手机厂商为何要花费精力对Android系统“开刀”呢?事实上这一切在很早就已经浮现了端倪,自Android公布以来,众多厂商对于系统的定制就从未停下脚步,从最初的UI定制到现在的系统定制,手机厂商对于系统的诉求,同时也促进着Android系统的不断更新。但仅仅是靠Google对于Android的迭代是不够的,所以为了能够匹配硬件的进步,满足更多手机新功能的开辟,使得很多国内软件研发人员纷纷将目光从应用领域向系统领域。华为自家的EMUI系统几乎是伴随着Android的成长进步的,华为也在不断的将更多自研技术应用到Android系统上。从“天生快,一生快”的EMUI5.0,到拥有GPU Turbo的EMUI8.1的,搭载Link Turbo的EMUI9.0,乃至在EMUI9.1搭载的方舟编译器和超级文件系统EROFS,华为实际上已经在一步步的为原生的系统进行着增补,从生态外部、框架层、中间件、硬件抽象和内核等多个层面进行了全链条优化。面对Android系统基因中所根深蒂固的弊端,华为选择用自己的方式不断的尝试,并获得了可喜的成果。

这样的增补对于Android系统来说更像是一种反哺,同时也表现出了华为的一种觉悟,在使用平台的同时,对平台进行研究和探究,并提出有效的改进方法,从而推动整个Android“帝国”的进步。这一过程中兴许有人会担心来自Google方的压力,王成录表示,实际上在对Android增补的过程中,华为和Google的沟通从未间断过,并且双方对此都抱有积极的态度,这从Android后续版本中,融入了很多华为研究成果这一结果上就可以感受出来。此次华为推出的超级文件系统EROFS已经被纳入Android版本中,而方舟编译器目前也正在积极的进入Google的开源社区,希翼未来也可以进驻到系统内部,兴许可能就浮现在下一代的Android系统中。

接下来还有哪些问题?

目前看来,方舟编译器对于开辟者要比使用者更故意义,华为方面也表示在未来方舟编译器将对开辟者进行全面开源,让所有人都可以通过方舟编译器进行开辟。由于Android并未对开辟者进行如iOS一样的高度标准化要求,所以在编程语言、编译方式以及软件适配上有着更多的变数。如果方舟编译器能够得到迅速普及,那么就可以从开辟者角度根本性的解决上面所提到的弊端。王成录还表示,方舟编译器在使用上并不复杂,对于已经上市或者正在研发的应用程序,开辟者无需修改现有代码,只需要通过方舟编译器重新进行编译,就可以直接使用,并获得优秀的实际表现;在使用者方面,也和过去下载没有任何区别,但是体验上去能够获得整体的提升。例如,通过方舟编译器编译过的微博,就能在使用过程中直接感受到比从前提升超过60%的操作流畅度。

所以对于方舟编译器来说,开辟者的支持就显得尤为重要了,事实也证明,公布会后王成录忙碌的原因大多数是来自于行业内开辟者们对于方舟编译器所抱有的浓厚兴趣和疑问。在华为看来,手机终端厂商和开辟者共同合作,才会给用户在使用中带来更好的体验。王成录还表示,方舟编译器想要通过华为一家厂商就做到全部软件的覆盖是很难的,所以指望通过Android阵营所有合作伙伴的一同努力,在各自的场景和平台中使用方中编译器,才干让Android手机整体体验感觉越来越好,在未来“Android系统将比iOS系统还要流畅”,将不再是一句空话。

什么时候投入使用?

目前EROFS文件系统和方舟编译器均已正式搭载于EMUI 9.1系统,也就是说,华为P30系列手机已经正式开始使用这两项新技术了。

除此之外,为了能够让更多开辟者可以使用方舟编译器,完整的开源代码,也会很快会跟大家见面。在沟通会上,王成录感慨道:“编译器真的是一个‘板凳要坐十年冷’的工程。”早在2009年的时候华为就已经创建了编译组,这期间甚至经历了第一颗麒麟芯片的诞生,正因为了解了芯片对编译器的需求,方舟编译器的框架构思才会在2013年正式定型。所以说通过10年的努力才换来了方舟编译器面世,这凝结了无数国内外研发人员的心血。好在,接下来需要开辟者等待的时间并不会太长,华为方面已经决定在今年11月的“绿盟开辟者大会”上开源完整的方舟编译器代码,让更多的开辟者可以体验方舟编译器所带来的改变。

方舟编译器、EROFS超级文件系统这样的颠覆性技术创新,是华为在软件领域砥砺前行不断探究的成果。开源的做法也代表着华为有着足够的自信来面对未来各方面的挑战。协同进展,合作共赢,华为在做的事情是为了提高所有Android使用者的体验,这不仅仅是华为一家公司的进步,同时也是整个Android阵营的进步。

阅读
本文由用户上传,如有侵权请联系删除!

撰写回复
更多知识