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

  • 时间:
  • 浏览:0

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

余承东称,华为方舟编译器,会通这样 来太久终端 IDE 开发环境来支撑当前的鸿蒙 OS。目前方舟编译器支撑鸿蒙内核,“方舟编译器能提升400%的编译性能”,将来鸿蒙微内核能按需扩展,并希望用另有有一个 鸿蒙微内核代替全部内核。

今天,朋友就聚焦华为的新贵——方舟编译器,你或多或少一发布就引起巨大响动的底层核心技术。方舟编译器究竟是哪此?它为哪此不能做到“青出于蓝而胜于蓝”,下面要我朋友带着什么的问题去解读。

01 编译器是哪此?

首先讲讲编译器是哪此东西吧?觉得绝大多数用户就有清楚这是哪此。多多进程 员们在写好应用的代码完后 ,在变成朋友手机上安装的应用完后 ,还差最后一步很久编译。

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

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

打个比方,说计算机是汽车,这样 软件就像汽车的操控系统一样。编译器则是汽车发动机里最核心的汽油燃烧技术,将软件变成计算机的动力,其编译的传输传输速率,直接决定了用户的使用体验。很久了解方舟编译器完后 ,朋友须要得首先了解 Android 操作系统中的编译器的运行机制。

安卓系统从 4008 年1. 0 到9.0,截至目前安卓系统大小版本超过 15 个。十年发展安卓手机的体验可能今非昔比。可生活中还有很久人诟病安卓手机这样 苹果机74 流畅,这样 安卓系统的多多进程 是如保运行的?下面朋友来阐述一下

 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 系统中内置的编译器。

华为Mate 20 RS保时捷版(全网通)

 京东商城

  12999 元

进入购买

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

1、方舟编译器是并否是 静态的编译方式,而现有的安卓系统,运行另有有一个 应用多多进程 首先启动虚拟机,或者 读入应用代码逐条解释执行,无法做到400%做到摆脱虚拟机,这也是当前安卓阵营面临的什么的问题。

简单句子,只很久经过编译器编译的应用,在应用市场上架完后 ,用户下载的APK 很久编译好的了,方舟编译的应用在开发阶段就已完成了。

2、华为方舟编译器的静态编译方式可将语言里的动态社会形态直接翻译成机器码,手机安装应用多多进程 后可全速运行多多进程 ,彻底干掉了虚拟机,极大提升了系统运行传输传输速率。

方舟编译器对于系统在这方面的提升,官方曾很久描述:

一、EMUI 9. 1 对系统主要服务System Server进行静态编译化,带来了系统流畅度提升24%,系统响应性能提升44%以上的收益。

二、微博极速版实现了静态化编译后,流畅度提升高达400%。通过上面演示视频来看,经过方舟编译优化的APP,在流畅度度方面的提升很明显。

03 新的内存垃圾回收机制

此外,方舟编译器还带来了新的系统垃圾回收机制。以往安卓的垃圾回收机制是集中回收,可能Java虚拟机的特点,系统会不停的地自动回收内存垃圾,保证内存不让溢出。

更要命的是,当内存低于某个标准值后,它就会自动杀掉优先级低的多多进程 。系统会集中关闭被标记的多余多多进程 ,这就造成了随机性的卡顿。相信朋友遇到过你或多或少情況,启动游戏时,点按应用瞬间进入不会感觉莫名的卡顿,界面像是迟钝了一下。

而方舟编译器在这方面有哪此不同,它的内存回收机制是随用随回收,回收时不须要暂停应用,很久直接回收内存垃圾,这大大提高了系统运行传输传输速率和传输传输速率。

小结:方舟编译器的优势,还可以简单总结为以下有一个方面:

1.安卓多多进程 编译效果更好  

2.安卓应用安装传输传输速率变慢  

3.APP运行传输传输速率变慢  

4.系统内存垃圾随用随清,对手机硬件的要求降低  

5.更费油

04 十年造方舟,为安卓提速为真,支撑鸿蒙也为实

十年磨一剑,没错,华为方舟编译器准备了十年之久。 4009 年,华为启动5G基础技术研究的一并,完后 始于英文英文创建编译组,第一批海内外研究人员加入。 

2013 年,华为推出面向基站领域的自研编译器HCC,并正式提出编译器框架构想。

2014 年,众多海内外专家加入华为,方舟项目正式启动。一并,编译器领域的顶级大佬,周志德(Fred Chow)的加入大大增强了研发实力

2016 年,成立编译器与编程语言实验室。 2019 年,华为方舟编译器正式面世!

方舟编译器既能统一适配安卓机器语言,自然不能适配成自家系统的机器语言——鸿蒙OS,方舟编译器为“安卓提速”为真,但能“支撑鸿蒙”也为实,它全部可称为让开发者从安卓到鸿蒙过渡的"诺亚方舟"。

05对外开源 构建生态

据悉,方舟编译器也将开放给第三方公司合作 者伙伴。其后续会在 2019 年 11 月的绿盟开发者大会实现全部方舟编译器代码开源,让广大的应用开发者、手机厂商参与,一并构建开发者生态,使安卓体系变得更加全部强大。

未来方舟编译器否是能成功,须要看多续全部生态的搭建。希望开发者积极参与进来,最终给消费者带来更为极致的体验。

总结:

从方舟编译器朋友就能看出华为对研发的投入,以及对未来生态搭建的规划,或许,要我做另有有一个 操作系统不让难,比如阿里云OS,但难的是未来全部生态的构建。

无论为什看待华为,目前,在国内也只能它有实力去干这件事情,不让却句子说而已,华为的终极目标很明显,很久在未来搭建全方位的生态。朋友期待这项技术不能普及开来,能够Android体系更加强大,也希望华为能在未来带给朋友更多惊喜。