谢邀。
方舟编译器虽然是在 4.11 日 HUAWEI P30 系列国内发布会上公布的应用编译技术,但其实华为早在 5 年前就开始布局,并投入数百专家团队,历经多次尝试,才在 EMUI 9.1 上实现了机器代码的翻译。
几千年来,人们从裹腹耐寒到智慧创新,从未停止探索世界的步伐。同时,他们将这些智慧赋予更多的物体,比如机器。
想让机器读懂人类情感,他们之间就需要有个“翻译”,来充当人机交互的桥梁,也就是专业人士口中的编译技术。
它能够将 C、Java 等高级语言转换为机器能读懂的低级语言,将精妙的代码转化为 0 和 1 的二进制指令,消除了沟通障碍,从而驯服了机器。
可以说编译器是软件与芯片之间的桥梁,其性能,效率直接影响到机器的运行效率。
而既有的安卓系统框架与应用之间,仍然使用的是不被机器直接读懂的 Java 语义,最初的解决方案是通过增加一个虚拟机制(JVM),相当于一个“中间层”将 Java 语言“翻译”为机器可以读懂的汇编指令。
“中间层”翻译一句 Java 语义机器就执行一段,也就是“边解释边运行”(动态编译),不但效率低,耗费系统资源,对操作流畅度也有影响。
尽管安卓系统 6.0 以后采用了 ART (Android Runtime)模式,对调用次数多的 Java 代码编译为机器码(静态编译);在设备空闲的时候进行一些预编译,解决了部分 Java 代码执行效率问题,但对于动态语义部分还是无法实现静态编译,仍需要虚拟机充当“翻译”边解释边运行,效率和体验提升有限。
而方舟编译器,采用了全新的系统及应用的编译和运行机制,对所有的 Java 语义全部做到静态编译,直接将 Java 语言“翻译”成机器语言(静态编译),消除了虚拟机动态编译的额外开销,实现了开发和运行效率的兼容并举。
如果把编译器看做一个翻译,就好比我们去到一个语言不通的国家,原本只能通过同声翻译(虚拟机)来进行交流沟通,难免效率低下。而华为方舟编译器更像是让您直接获得了语言能力,从而可以摆脱同声翻译(虚拟机),可以更畅快地与当地人沟通。
根据华为实验室的测试数据,EMUI 9.1 在仅仅对系统组件 System Server 应用了华为方舟编译器后,系统操作流畅度提升 24%,系统响应性能提升 44%。同时,新浪微博极速版在应用方舟编译器之后,操作流畅度最高提升了60%。[1]
方舟编译器编译的应用在开发阶段就已完成。也就是说,只要是经过编译器编译的应用,在应用市场上上架了以后,用户下载的就是编译过的了。
说了这么多,看个视频,一分钟了解一下华为方舟编译器吧!
一分钟了解一下华为方舟编译器 https://www.zhihu.com/video/1104707924714348544综上所述,方舟编译器作为全新的系统及应用的编译和运行机制,从 DNA 层面对安卓进行了改造,打破了性能和功耗的的跷跷板,解决了安卓应用变解释边运行的低效问题,让手机能直接听懂“高级语言”,可以说是近几年来安卓阵营最大的根本性革新。它解决了安卓系统久用必卡顿的魔咒,打破了人机之间的藩篱,让用户能直观感受到的就是:
1、 提升了应用的流畅度;
2、 降低手机 CPU 的开销;
3、 进一步降低功耗提升了手机续航能力;
4、 为用户带来更加持久流畅的体验。
发布会上余总也表示方舟编译器将会在 EMUI 后续的版本开发中运用到更多模块中,并且面向业界全面开源,更多开发者可参与到方舟编译器的开发、使用中。那么方舟编译器的效果究竟如何,我们拭目以待吧!
除了方舟编译器以外,EMUI 9.1还带来了全新的EROFS文件系统,继续深度了解戳:
全新的华为EMUI 9.1系统,又有哪些新特性?
最后,关注 @华为终端 知乎机构号,获取更多新品资讯与深度解读!也欢迎在手机中使用“玩机技巧”APP,解锁更多新机玩法,快速入门新手机~