01 JAN

编译器:方舟编译器8月正式开源

系统:什么是编译器?其实就是将我们所理解的语言转化为机器认识的0和1的程序,当然要是更准确的说法应该是将高级语言转化为低级语言。其实在安卓中是有着编译器存在的,毕竟如果没有编译器的话不论任何一款软件或是系统都寸步难行。

4月份的P30系列国行发布会上,华为宣布了革命性的“方舟编译器”,通过架构级优化,显著提升性能,尤其是全程执行机器码,高效运行应用,彻底解决安卓应用“边解释边执行”造成的低效率。

华为宣称,方舟编译器可让系统操作流畅度提升24%,系统响应速度提升44%,第三方应用重新编译后流畅度可提升60%!

不仅如此,余承东当时就宣布,华为方舟编译器会面向业界开放开源,并呼吁APP开发商、开发者尽快使用。

安卓的开发核心是什么?不少人以为是linux,其实安卓的开发核心是Java(这也就是为什么近几年的java工程师比原来还吃香),因为Java自身有着强大的跨平台性,所以安卓为了开发资源更加丰富也就转投了Java阵营,虽然说Java很不错,这句话是真真正正的褒义,笔者个人也对Java欣赏有加,但Java的跨平台性也必须要提一下,因为这就是方舟编译器存在的核心。

不同指令集的硬件有着不同的机器语言,这代表了什么?X86和ARM架构的编译器是不通用的,那么Java到底是如何做到不同平台都能使用的呢?这里就要说Java的小聪明,Java并没有直接将高级语言编译成机器语言,而是编译成了一种中间语言,这种语言没有Java的虚拟机是无法翻译的。当这个中间语言(学名叫字节码)被放在X86或者ARM时,虚拟机就会根据机器的架构把字节码翻译成对应的机器语言。

那么到这里大家就明白了,Java的跨平台特性全都是靠字节码实现的,而这也会导致一个问题:在你读取应用、使用应用的时候必须费二遍事,先将高级语言转换成字节码,再将字节码转换成机器需要的语言,而且还得需要虚拟机。不过在前几年,谷歌也发现了这个问题,并且在安卓4.4版本推出了ART也就是Android Runtime,这个东西能够在程序安装的时候直接将整个程序的字节码翻译成对应的机器语言,这样这个程序就彻底变成原生应用了。不过这个翻译和编译器没啥关系,编译器该干活还是要干活的。长治系统。


这无疑是华为在终端应用生态中的一大开放举措,而且方舟编译器的开放与鸿蒙操作系统的研发有着紧密的直接联系,也更让人期待华为自主的鸿蒙系统。

据了解,华为方舟编译器来自华为方舟实验室,由全球顶级编辑器权威专家周志德领衔开发,耗费近10年时间打造。

而且,方舟编译器服务的不仅仅是安卓系统。作为一项比手机操作系统更加底层的技术,方舟编译器转化过的APP,未来可以百分之百无缝运行鸿蒙系统上,甚至有传闻称,支持方舟编译器的机型,未来可以升级到鸿蒙系统。长治系统。

目前,方舟编译器正在华为、荣耀机型中普及,除了首发的P30系列,荣耀20、荣耀20 PRO、nova 5、nova 5 Pro都已经迎来方舟编译器,未来还会进入更多机型。