《电子技术应用》
您所在的位置:首页 > 通信与网络 > 业界动态 > 华为大杀器!方舟编译器到底是什么?

华为大杀器!方舟编译器到底是什么?

2019-06-30
关键词: 华为 方舟编译器

  今天早上新闻,华为对Verizon提起诉讼,要求其对200多项专利付费,中美科技摩擦不断升级。在今年发布P30的时候,华为还发布了一个名为“方舟”的编译器,但是很多人对方舟到底是什么其实有误解,这里我们就来详细说说。可以肯定的是,方舟并不是单独操作系统!而是安卓上的工具。

  方舟编译器的优势可以总结为以下五点:

  1,安卓程序编译效果更好;

  2,安卓程序安装速度更快;

  3,安卓程序运行速度更快;

  4,系统垃圾随用随清,对手机硬件的依赖降低;

  5,省电、省电、省电,重要的事情说三遍

  ChMlWV0CDCOIclPmAAffKN67Yn4AAK2egMJzhUAB99A922.jpg

  华为P30 Pro(全网通)

  电商报价

  京东商城 ¥5488ZOL商城 ¥5488

  诺亚方舟

  安卓与Java

  从一开始到现在,安卓的程序大多数都是Java(也有C语言)编写的,关于Java无需多言,是世界上最强大的计算机语言之一。但是懂得计算机原理的都知道,计算机的CPU,只接受汇编命令。那么怎么才能让CPU去理解Java语言的程序呢?

  ChMlWV0CDKmIBBUHAAUyBb6uA7IAAK2ewMEy3IABTId638.jpg

  左边是JAVA程序代码,有边是汇编代码

  如果使用一个中间层,把Java解释成汇编语言,充当一个“翻译”的角色,那么就变成了Java程序说一句,它解释一句,这么做显然效率太低。那么能不能把Java直接变成机器能动的汇编代码?可以,有两种办法,一种是在程序执行之前就编译好的模式,这种称之为Ahead of time,简称AOT;另外一种办法则是程序运行起来之后再编译,称之为Just in time,JIT。

  华为P30 Pro(全网通) 未来光徕卡四摄,超感光摄像,6.47英寸曲面屏

  华为P30 Pro(全网通) 未来光徕卡四摄,超感光摄像,6.47英寸曲面屏

  京东商城 5488元

  进入购买

  早期安卓

  在安卓的早期时代,也就是安卓5.0以前,安卓手机有卡、慢、顿的毛病,为用户所诟病。为什么?归根结底是因为当时的安卓使用的是中间层+JIT的垃圾模式,这种机制下就快不了,而且当时垃圾回收也成问题,本来就慢,越用越慢,笔者当时用的Nexus4就是安卓4.2版本,由于是源生系统,还稍微好一点点。而且这种办法还废电。

  ChMlWV0CE2KITR4zAADMTpXYbdAAAK2iQBX9hwAAMxm749.jpg

  nexus由于是源生系统,所以比国内手机厂加壳的各种UI还稍微快一点

  ChMlWV0CE9iIDquWAADxXEnBZbcAAK2igAZPiEAAPF0004.jpg

  当年还要勾选项才能从Dalvik变成ART

  在安卓5.0-6.0的时期,谷歌为安卓配置了ART(Android Runtime),这个时候是完全的AOT模式,但是它也有自己的问题:因为是执行之前要编译好,所以安装的速度很慢并且非常占空间,要知道当时的手机64G都算容量大的,而且开机重启都要执行一次AOT,所以这个速度巨慢,用户体验也很差。这也是为何从前两年开始,安卓手机的内存和容量越来越大。

  现在的安卓

  安卓7.0之后,谷歌也意识到了程序占地方、开机慢的问题,怎么办?谷歌发现,人们使用一个程序,不可能用所有的功能。那么只编译一部分常用的是不是就效率高了呢?所以这时候其实是把JIT又拉回到安卓上来,并且安装的时候也不用全编译,直接装就是了,速度当然快了。这其实就是中间层、JIT、AOT一起来,并且根据用户的习惯,把它常用的程序的常用功能代码解释好了存起来,用户再用也飞快。

  ChMlWV0CFH-IdTYtAALo3SELrPIAAK2iwFzNMcAAuj1435.jpg

  安卓Q虽然好,但是国内多数手机厂系统更新没有这么快

  在安卓7.0以后,谷歌做的事情就是优化。8.0的系统是做了一个解释器,提升了“冷代码”的解释速度。而最新的10.0(Android Q)系统,甚至会在安装的时候,就预先知道这个程序什么是用户常用的代码,安装时间稍微长一点,但是热代码已经解释好了,进一步提升速度。

  华为方舟优化了什么?

  看上文我们知道了谷歌的方案其实是大杂烩。那么华为做的是什么呢?其实华为的牛X之处在于直接进入到安卓的灵魂深处,从程序开发开始到打包好的APK,直接就是手机CPU可以理解的汇编指令(二进制码),这提升效率。

  ChMlWV0CFQGIQo0qAADpU3uVaL4AAK2jAMytiQAAOlr657.jpg

  开发阶段打包的APK就直接是可执行,并且跨语言平台

  在方舟编译器里面,已经编译好的APK,会通过静态编译的方式先转换成机器码再安装,这其实是AOT,无需麻烦的虚拟机,提升运行速度和效率。并且作为开发者,还可以根据不同的程序特点,选择不同的编译优化方案,不像安卓官方的方式使用统一的虚拟机方案。

  ChMlWl0CFaKIHhfuAABjnFE-CEsAAK2jgKIic4AAGO0518.jpg

  方舟编译器边运行变清理,内存清爽

  现在安卓手机的一大特色就是内存越来越大,6GB都是老人机的配置了。这除了程序大以外还有安卓的程序运行产生垃圾多有关系。那么清理垃圾呢?则需要暂停程序,也就会顿一下,即所谓的“卡”。华为方舟编译器则是利用程序多线程运行的特点。打个比方,您现在正在用的“中关村在线”这个APP用了AB两个线程,在华为的P30手机中,那么线程A运行的时候,B在清理垃圾,然后A线程清理垃圾的时候B线程在运行,程序运行不中断,垃圾处理不停,做到了又连贯、又节约系统资源。

  ChMlWl0CFkSIXs_SAABWk0gfPx4AAK2kADCXP0AAFar563.jpg

  谷歌和华为堪称灵魂伴侣

  昨天的新闻,谷歌官方要求美国政府停止把华为加入到实体清单。为什么,因为华为这样有实力的企业才能更深入的合作。并且华为在安卓上使用方舟编译器也得到了谷歌的允许,国内销售的P30系列手机就是方舟编译器。或许某个版本之后,谷歌系统都是华为方舟编译器了!

  ChMlWlzU4NuIYh4wABjwIoh9DL4AAJ5aQFVoJYAGPA6620.jpg

  买个华为P30Pro体验一下方舟编译器如何?

  华为的另外一个伟大之处在于绝不藏私!今年8月,华为就将公开方舟编译器的源代码,到时候一定会有很多手机厂开始使用高效、节约资源的方舟编译器,给我买带来更好的手机使用体验!


本站内容除特别声明的原创文章之外,转载内容只为传递更多信息,并不代表本网站赞同其观点。转载的所有的文章、图片、音/视频文件等资料的版权归版权所有权人所有。本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如涉及作品内容、版权和其它问题,请及时通过电子邮件或电话通知我们,以便迅速采取适当措施,避免给双方造成不必要的经济损失。联系电话:010-82306118;邮箱:aet@chinaaet.com。