您好,欢迎访问香山网!

提速安卓支撑鸿蒙?“大杀器”方舟编译器深度解析

分类:业界资讯 浏览数:22 2019-09-06 20:39 N软网 N软 编辑: 香香

8 月 9 日,yabo 手机版开发者大会鸿蒙OS正式发布,这是基于微内核的全场景分布式OS。能实现模块化解耦,对应不同设备(智慧屏、穿戴设备、车机、智能音箱、手机)可弹性部署。yabo 手机版消费者业务 CEO 余承东描述了yabo 手机版鸿蒙 OS 的方方面面。

余承东称,yabo 手机版方舟编译器,会通过多终端 IDE 开发环境来支撑当前的鸿蒙 OS。目前方舟编译器支撑鸿蒙内核,“方舟编译器能提升60%的编译性能”,将来鸿蒙微内核能按需扩展,并希望用一个鸿蒙微内核代替全部内核。

今天,我们就聚焦yabo 手机版的新贵——方舟编译器,这个一发布就引起巨大响动的底层核心技术。方舟编译器究竟是什么?它为什么能够做到“青出于蓝而胜于蓝”,下面就让我们带着疑问去解读。

01 编译器是什么?

首先讲讲编译器是什么东西吧?其实绝大多数用户都不清楚这是什么。程序员们在写好应用的代码之后,在变成我们手机上安装的应用之前,还差最后一步就是编译。

简单来说,编译器就是把编程人员开发的高级语言程序,翻译成机器可执行的机器指令,这就是编译器。它就像一位翻译官,是连接程序员与机器的桥梁。

由此来看,方舟编译器面向的是开发者的,但最终受益的还是消费者。

打个比方,说计算机是汽车,那么软件就像汽车的操控系统一样。编译器则是汽车发动机里最核心的汽油燃烧技术,将软件变成计算机的动力,其编译的效率,直接决定了用户的使用体验。所以了解方舟编译器之前,我们必须得首先了解 Android 操作系统中的编译器的运行机制。

安卓系统从2008年1.0到9.0,截至目前安卓系统大小版本超过15个。十年发展安卓手机的体验已经今非昔比。可生活中还有很多人诟病安卓手机没有iPhone流畅,那么安卓系统的程序是怎样运行的?下面我们来阐述一下

Java的虚拟机的故事

Android 1.0刚发布的时候,使用的是一个叫Dalvik的虚拟机(Virtual Machine,简称 VM)里面集成了一个解释器,每次用户在安卓手机上运行APP时,就会唤醒解释器,来给安卓的硬件解释APP接下来要干什么。

这个问题严重拖了安卓手机的后腿,所以Android2.2版本引入了JIT机制。JIT比较聪明,当用户在安卓手机运行APP时,会同时将用户经常使用的功能编译为机器能直接执行的机器码,不用一句一句去翻译。当出现不常用的功能时,再唤醒解释器翻译。

但是每次启动APP都要重新编译一次,加上Dalvik虚拟机性能比较落后,所以谷歌在Android 5.0版本将虚拟机从Dalvik替代成ART,同时把JIT的编译器替代成AOT 。AOT相比JIT的好处,就是不用每次打开APP都需要先编译一遍。但是,坏处是安装应用慢和占用内存空间。

在 Android 5.0 正式采用 ART 之前,Android 采用的是解释执行+JIT 的方式执行 Java 代码。在这个阶段的系统是“边解释边执行”模式,代码效率比较低下,当时Android给人的感觉就是卡。

目前的Android采用的是解释执行+JIT+AOT 的模式,但并没有摆脱一个前提,即应用在被打包成APK的时候,采用的还是Java代码。

JNI接口调度占用额外资源

现在大部分应用都是使用Java和C/C++等多种语言混合开发而成。Java和C/C++属于两种不同架构的语言,为了使APP正常运行,它俩之间需要互通的接口——JNI。

这就意味着手机硬件资源要分配一部分给JNI去做调度。不仅占用了硬件资源,而且这种机制本身就效率较低。

安卓内存回收机制容易造成卡顿

当手机内存资源不够用的时候,安卓虚拟机就会召唤GC(Garbage Collection),让所有手机运行的Java线程全部暂停,GC机制,无法精确控制内存回收,所以性能较差的手机间歇的出现“抽搐般”的卡顿现象。

以上这几个问题,一直影响着安卓手机的体验。其中最主要的是Java 高级语言转换机器能懂的语言,这一转换过程直接导致了Android的卡顿。反观iOS系统,直接使用Clang/LLVM来编译出机器码,就没有安卓还要一个中间层,也因为如此,我们感觉iOS系统一般更流畅。

02 方舟编译器牛在哪? "干掉"虚拟机

方舟编译器做的就是,将Java的所有语句统统翻译成机器码,最后打包成APK安装文件。方舟编译器最大的优势在于它绕过了虚拟机。简单来说,方舟编译器可以将高级语言(Java)直接变成机器码,无需再通过 Android 系统中内置的编译器。

yabo 手机版Mate 20 RS保时捷版(全网通)

京东商城

12999元

进入购买

总之,方舟编译器是完全替代了语言虚拟机的静态编译器,从此不再需要解释器。相比现有的编译机制有以下明显优势:

点击分享到:

版权与免责声明:

凡未注明"稿件来源"的内容均为转载稿,本网转载出于传递更多信息的目的;如转载稿涉及版权问题,请作者联系我们,同时对于用户评论等信息,本网并不意味着赞同其观点或证实其内容的真实性;


本文地址:http://www.txshc.com/news/2019/09/06/33910625.html

转载本站原创文章请注明来源:香山网