安卓无限接近iOS,华为方舟编译器牛在哪?
Posted 来回科技
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了安卓无限接近iOS,华为方舟编译器牛在哪?相关的知识,希望对你有一定的参考价值。
大家好!我是小马哥!
精致有趣的科技数码体验与测评
尽在“来回科技”
在华为P30的发布会上,余承东曾用几页简短的演示文稿,简单介绍了华为方舟编译器和REOFS文件系统
在我们之前的文章中,也对方舟编译器进行了分析猜测
而就在前几天,华为官方召开了一个小型的会议,展示了方舟的更多内容
今天我们再来讨论方舟编译器,看看它是否能真的解决安卓卡顿问题
首先我们来看下余承东的微博
在这段视频中,华为对方舟编译器进行了解释
正如我们之前猜想的那样,它是在打包成apk时,直接将Java代码翻译成机器码
让CPU能够直接跑程序,而不需要虚拟机的解释执行,提高了机器的效率。由此来看,方舟编译器面向的是开发者
安卓软件想要在手机上运行,一共有三种模式,解释执行+JIT+AOT
解释执行:用Java源码编译器编译为.class格式的字节码,然后在用JVM(虚拟机)执行命令
这个过程做的是逐句翻译,也就是边解释边执行,而虚拟机相当于助理兼职翻译,他帮机器完成工作
JIT:实时编译,将Java的字节码翻译成为机器码(Native Code),也就是机器能理解的代码
而JIT做的是逐段翻译,边翻译边执行,相当于一个实时翻译机
机器能直接理解翻译后的代码并执行,这个模式是不需要虚拟机的
AOT:预先编译,提前将程序中的字节码翻译成机器码并储存
安卓7.0采用了新的ART模式,只将常用的Java代码翻译成机器码并储存
而这个过程是多次的,APP需要运行多次系统才能分析出哪些代码是经常用到的,也就是常说的“热代码”
并且,这个分析调用过程发生在系统空闲时
总归来看,解释执行适用于Java代码中的动态语句部分,而静态语句则适合使用JIT或者AOT编译器进行编译
而无论是解释执行还是JIT和AOT,都显得效率不足,有没有办法让机器直接跑程序呢
答案是有的,如果程序的apk文件在安装的时候就已经使用机器码,那解释执行,JIT和AOT不是统统都可以一边去
方舟编译器做的就是这件事,将Java的所有语句统统翻译成机器码,最后打包成APK安装文件
这就相当于,APP的代码语言能直接被机器所理解,并被执行,而不用复杂的解释执行,预先编译和实时编译过程
此外,方舟还带来了新的垃圾回收机制
以往安卓的垃圾回收机制(Garbage Collecter)是集中回收,由于Java虚拟机的特点,系统会不断地对内存也就是对象进行标记
永不停歇地自动回收内存垃圾,保证内存不会溢出是Java的一大特点
而这个机制触发的条件有两个:系统空闲,回收空闲进程的内存
可用内存低于某个阈值,自动关闭优先级低的进程
而一旦触发机制,系统就会暂停应用,集中关闭被标记的多余进程,这就造成了随机的卡顿
小马哥就经常遇到在启动游戏时,手机会莫名的抽搐,GC确实是一大困扰
更要命的是,java语言并没有提供释放已分配内存的显示操作,导致系统不能准确地控制垃圾回收的时间
因此是不存在ios上普通应用10分钟驻留时间等硬性规定的
而方舟做了什么改变呢,方舟的内存回收机制是随用随回收,回收时无需暂停应用集中处理内存垃圾
根据华为实验室的测试数据,经过这些优化后,系统操作流畅度提升24%,系统响应性能提升44%
华为新推出的EROFS文件系统同样也是一个重大改进
早在华为Mate 9上,华为应用了F2FS文件系统,相比安卓传统的EXT4,大幅提高了闪存的读取速度
而EROFS则是在此基础上,使用专利压缩算法,几乎不存在无效读取,让随机读性能提升了20%,系统可用空间多2GB
十年磨一剑,华为能取得突破并非一日之寒
根据华为的说法,编译器的开发在国内尚属无人区,早在2009年,华为就创立了编译组
2014年,编译器领域的顶级大佬,周志德(Fred Chow)的加入大大增强了研发实力
最后,加上大批工程师的通力合作,才让方舟编译器成功问世
值得一提的是,方舟编译器不仅适用于安卓系统,理论上基于ARM指令集的操作平台都能够适用
据了解,方舟编译器将在今年8月举行的华为终端开发者大会上对框架代码开源,开发者可以研究参考
在今年11月的绿盟开发者大会上将完整的方舟编译器代码开源,开发者可以编译使用
诚然,华为通过对系统底层的优化,让安卓系统的流畅度有了大幅提升
但系统基础并不能决定用户体验,在APP的规范上,安卓的应用开发者仍需要更好的姿态
在这点上,iOS依然保持领先
希望未来的安卓软件生态能够进一步优化,早日与iOS齐头并进
点我点我点我
来回五一大促活动仍在继续,加场免单活动等你来!
iPhone XS Max只要4999
还有更多超低价机型,等你来抢!
快戳下面小程序了解活动详情!
往期精彩
对更多二手手机,笔记本,数码产品感兴趣的小伙伴
⇣ 更多历史文章请点击【阅读原文】⇣
你在看吗
以上是关于安卓无限接近iOS,华为方舟编译器牛在哪?的主要内容,如果未能解决你的问题,请参考以下文章