关注公众号

关注公众号

手机扫码查看

手机查看

喜欢作者

打赏方式

微信支付微信支付
支付宝支付支付宝支付
×

华为方舟编译器深度解析:提速安卓支撑鸿蒙?(二)

2020.10.05

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

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

image.png

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

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

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

image.png

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

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

image.png

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

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

image.png

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

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

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

03 新的内存垃圾回收机制

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

image.png

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

image.png

而方舟编译器在这方面有什么不同,它的内存回收机制是随用随回收,回收时不需要暂停应用,而是直接回收内存垃圾,这大大提高了系统运行速度和效率。

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

1.安卓程序编译效果更好

2.安卓应用安装速度更快

3.APP运行速度更快

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

5.省电

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

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

image.png

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

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

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

华为方舟编译器深度解析:提速安卓支撑鸿蒙?

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

05对外开源 构建生态

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

image.png

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

总结:

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

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


推荐
热点排行
一周推荐
关闭