方舟编译器,构建我们属于自己的手机生态!

Posted 云流科技

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了方舟编译器,构建我们属于自己的手机生态!相关的知识,希望对你有一定的参考价值。

前一阵子,
华为P30系列发布,
最为明显的升级就是相机拍照部分,
外加上P20打下的基础,
突破了自己,就算是突破了整个行业,
然而从长远的眼光看,
华为P30带来的 拍照提升 只是例行升级,
真正懂行的人都,
注意到了 华为推出的“方舟编译器”
也看出来了华为真正的技术实力。
今天华为方舟编译器宣布开源 那么它到底是什么呢?





01


方舟编译器简单来说,就是可以将高级语言比如Java,直接编译成变成机器码的技术。


它最大的优势就在于绕过了安卓系统的VM(虚拟机),从使得应用可以像苹果引以为傲的ios系统一样,转化出的机器码可以直接由CPU运算,从而使得运行效率大大提升。


概括的话,什么事都变得很简单,为了证明方舟编译器的技术含量,我想还是有必要详细介绍一下它的运行原理。


方舟编译器,构建我们属于自己的手机生态!

经历过九年义务教育的我们都知道,计算机是只认识0101这样的二进制代码。对于人脑来说,直接用这样的二进制代码来编程,显然是不太现实的。

于是汇编语言就出现了,属于低级语言 ,只是一系列的字母指令集,后来为了实现更复杂的功能,高级语言诞生了,比如C语言,Java,python等等,能够用更短的代码实现更复杂的功能。


方舟编译器,构建我们属于自己的手机生态!

当然了高级语言计算机是无法直接读取的,这里就需要用到编译器了,而编译器就是将一种高级语言转译成一种低级语言的程序,起到关键的“承上启下”作用, 所以编译的复杂程度直接会影响程序的执行效率


比如C语言比Java语言的执行效率高,正是因为C语言编译出来的是CPU可以直接执行的机器码,而Java语言则先是Java虚拟机(JVM)编译Java语言,然后JVM再编译成机器码。


所以多出来的这一步就会被放大, 影响到应用的运行 ,这也是安卓系统的应用前期卡顿的主要原因,虽然之后谷歌针对JVM做出了一系列的改进和优化,但还是难以彻底解决。


方舟编译器,构建我们属于自己的手机生态!



02



观苹果的iOS系统,直接使用Clang/LLVM来编译出机器码,就没有安卓还要一个中间层那么麻烦,所以iOS如丝滑般流畅的原因也因为如此,还有一个不可忽视的因素是闭环。


而安卓系统的底层是Linux系统搭建的 ,同时又因为安卓系统开源,为了解决应对不同硬件环境的适配问题,谷歌就增加了基于JIT(动态编译)的虚拟机Dalvik,并在Dalvik虚拟机上搭建了一个JAVA应用框架,所有的安卓应用都是运行在这个虚拟机上。


方舟编译器,构建我们属于自己的手机生态!

当然了谷歌也知道这样效率不好,于是在android 5.0版本中,使用了ART模式来替换Davlik虚拟机。而ART是一个AOT (Ahead of Time)编译器,是指在应用运行前就把字节码静态编译成机器码, 就避免了每次打开应用都要虚拟机编译的麻烦。


然而只是代码的静态编译,Java本身的动态特性,在执行代码过程中会有动态类的加载(就是使用轮子),而静态编译时无法预测会加载哪些动态类。


所以弄了半天,还是需要虚拟机的动态编译能力。而安卓想要像iOS那样流畅,就必须跳过虚拟机, 而方舟编译器,解决的就是这个问题


方舟编译器,构建我们属于自己的手机生态!



03


根据官方信息,华为的方舟编译器也基于AOT编译器,不过方舟编译器创造性地静态编译了动态类,把所有的Java代码都编译成机器码,这样也就可以完全避开虚拟机,直接编译成机器码在手机CPU上运行,也就能够有iOS系统一样的高效。

除了直接编译之外, 方舟编译器也优化了编译算法 ,并且在内存回收方面也有一定的改进,不仅是应用,对系统运行的流畅度也有很大的提升。


方舟编译器,构建我们属于自己的手机生态!

当然了,如此重大的提升,难道谷歌就不会想到吗。想得到,但力不从心。因为想要使用方舟编译器,得从应用的打包编译上架重新开始,开发者必须 按照方舟编译器的标准重新编译应用安装包 ,所以这并不只是安卓系统,也需要应用的配合才能使用,目前好像只有微博极速版做了适配。


当然了,华为也宣布将方舟编译器全面开源,提供完整的编程框架和应用开发工具,将更多的开发者参与到方舟编译器的开发和使用, 共同提升整个安卓生态的体验 。方舟编译器编译是基于ARM指令集开发的,所以全面开源意味着其它厂商的安卓系统也可以使用。


方舟编译器,构建我们属于自己的手机生态!

这里我们就能看出来华为对研发的投入,以及对生态的规划,并不只是说说而已。开开发布会卖卖手机只是小打小闹的事情,华为的目标是全方位的生态建立。


不管你是对华为这个品牌报什么看法,但 得不承认目前在国内只有华为有这样的实力去做整个产业上的事 ,去构建属于自己的生态,方舟编译器就是这个过程中的催化剂。

方舟编译器,构建我们属于自己的手机生态!


方舟编译器,构建我们属于自己的手机生态!


(部分图文来源于网络,侵删)


往期精彩回顾




在看点一下


以上是关于方舟编译器,构建我们属于自己的手机生态!的主要内容,如果未能解决你的问题,请参考以下文章

一文看懂华为方舟编译器

余承东称方舟编译器可以让华为手机性能超过苹果,你怎么看?

方舟编译器遇敌手!国产加速引擎你更喜欢谁?

安卓流畅性直逼苹果iOS?华为开源方舟编译器!

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

华为“方舟编译器”到底是啥?一文看懂TA如何让手机性能再突破