安卓流畅性直逼苹果iOS?华为开源方舟编译器!

Posted 来回科技

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了安卓流畅性直逼苹果iOS?华为开源方舟编译器!相关的知识,希望对你有一定的参考价值。


安卓流畅性直逼苹果iOS?华为开源方舟编译器!

大家好!我是小马哥!

精致有趣的科技数码体验与测评

尽在“来回科技”


安卓流畅性直逼苹果iOS?华为开源方舟编译器!
有锁机全面科普






在昨儿个的华为P30国行发布会上,华为正式公布了售价,具体看图安卓流畅性直逼苹果iOS?华为开源方舟编译器!


安卓流畅性直逼苹果iOS?华为开源方舟编译器!


配置方面,两款手机不再具体陈述,感兴趣请参考我们之前的推文


 


今天我们来聊聊会上宣布推出的“方舟编译器”

 

安卓流畅性直逼苹果iOS?华为开源方舟编译器!


方舟?根据《圣经》的传说,方舟意味着重生

 

那么这个方舟编译器是什么呢

 

根据官方描述,方舟编译器通过架构级优化,显著提升性能

 

尤其是全程执行机器码,高效运行应用,彻底解决安卓应用“边解释边执行”造成的低效率

 

安卓流畅性直逼苹果iOS?华为开源方舟编译器!


同时也给出了具体的数字

 

系统操作流畅度提升24%,系统响应速度提升44%,第三方应用重新编译后流畅度可提升60%

 

如此来看,方舟编译器倒是大有方舟的意味呢安卓流畅性直逼苹果iOS?华为开源方舟编译器!


更重要的是!这艘方舟全世界人民都可以乘!

 安卓流畅性直逼苹果iOS?华为开源方舟编译器!


华为宣布,方舟编译器面向业界开源,首先面对国内开放,而后会逐渐推行到海外

 

最后CEO余承东也呼吁APP开发商、开发者尽快使用,可以带来焕然一新的体验

 

华为这可真是心系天下呀

 

安卓流畅性直逼苹果iOS?华为开源方舟编译器!


我们今天便从系统编程角度浅析下,方舟编译器到底有没有那么神奇呢


首先,对于华为所述的安卓系统“边解释边执行”,这点其实有点夸大事实的嫌疑安卓流畅性直逼苹果iOS?华为开源方舟编译器!


什么叫做边解释边执行呢。众所周知,安卓系统基于Linux开发,使用的是Java语言

 

但是,基于Java代码写的安卓软件,CPU是不能直接理解里边的代码执行的安卓流畅性直逼苹果iOS?华为开源方舟编译器!

 安卓流畅性直逼苹果iOS?华为开源方舟编译器!


这时候便需要通过Java的虚拟机,将Java的语句解析成字节码,然后再整合成CPU所能理解的指令

 

解释器一边解释,CPU一边执行,这便是所谓的解释执行

 

你可能会好奇,何必这么麻烦安卓流畅性直逼苹果iOS?华为开源方舟编译器!


安卓流畅性直逼苹果iOS?华为开源方舟编译器!


当然,安卓想要跑程序还有另一种更简便的方法


就是将Java语言直接翻译成机器语言,专业点叫做本地机器码(native code)


而翻译又存在两种方式,一种叫做AOT编译,一种则是JIT编译

 

首先是AOT(Ahead of time),预先编译,顾名思义


将解析好的字节码重新编译,变成CPU能够理解的机器码安卓流畅性直逼苹果iOS?华为开源方舟编译器!


安卓流畅性直逼苹果iOS?华为开源方舟编译器!


形象地说,相当于在你看电影前制作好的中英文台词安卓流畅性直逼苹果iOS?华为开源方舟编译器!


另一种则是JIT(Just in time),即时编译器,在软件运行后,一边翻译,一边执行

 

这就等于你看电影时,下方滚动出现的中英文字幕安卓流畅性直逼苹果iOS?华为开源方舟编译器!


安卓流畅性直逼苹果iOS?华为开源方舟编译器!


在安卓5.0以前,或者说安卓4.4之前,安卓默认使用的是Dalvik虚拟机,这时候是不存在AOT的

 

而这个时候的安卓妥妥的就是华为说的“边解释边执行”,通过解释执行+JIT来运行Java代码

 

但在安卓5.0,系统虚拟机换成了ART(android run time),采用的是完全的AOT

 

应用在第一次安装的时候,字节码就会预先编译成机器码,因此提高了机器的运行效率安卓流畅性直逼苹果iOS?华为开源方舟编译器!


 

安卓流畅性直逼苹果iOS?华为开源方舟编译器!


所以,这个时候JIT被放弃了安卓流畅性直逼苹果iOS?华为开源方舟编译器!


这就相当于你已经把电影看了好几遍,你都已经知道他下一句要说啥了,还需要啥字幕

 

但是到了安卓7.0,谷歌又把同步字幕引入了

 

为了解决ART带来的软件安装速度慢的问题,谷歌又决定不再将整个软件编译

 

安卓流畅性直逼苹果iOS?华为开源方舟编译器!


而是接着做解析执行,将Java代码解析成字节码,交给虚拟器运行

 

但编译还是得编译啊,不然效率多低,于是同步字幕又回归到了我们的视野

 

同时,系统还要做另一件事,那就是在空闲的时候,将字节码进行分析安卓流畅性直逼苹果iOS?华为开源方舟编译器!


筛选出那些经常使用的字节码,或者叫“热代码”,然后对其进行编译,变成机器码储存在机器上安卓流畅性直逼苹果iOS?华为开源方舟编译器!

 

安卓流畅性直逼苹果iOS?华为开源方舟编译器!


这个过程依然叫做AOT,不过应该叫做All Of the Time,全时间段编译

 

这样一来,经过你对软件的多次打开,系统分析出热代码,以后你开启应用的时间自然得到了缩短

 

非要做个比喻的话,大概就是对电影进行精华片段混剪,并配上相应的字幕

 

因此,如今的安卓根本不能称之为“边解释边执行”,而是解释运行+AOT+JIT的综合

 

安卓流畅性直逼苹果iOS?华为开源方舟编译器!


华为这种过度夸大安卓弊端的做法确实值得商榷

 

而华为的方舟编译器到底又是什么呢

 

首先我们排除类似安卓5.0和6.0时代的ART策略,在这种方式下,进行全局软件的odex化

 

既增加开机时间,又增加了应用的安装时间和体积,这种已被谷歌抛弃的策略,华为自然不会新瓶装旧酒安卓流畅性直逼苹果iOS?华为开源方舟编译器!


安卓流畅性直逼苹果iOS?华为开源方舟编译器!


那么这个所谓革命性的突破到底是怎么实现的呢

 

根据小马哥的分析,在发布会上,余承东呼吁APP开发者加入,将应用程序重新编译一下,不需要重新开发安卓流畅性直逼苹果iOS?华为开源方舟编译器!


这句话根据我的理解,大概意思就是


只要你们用我们的编译器,将APP重新打包成apk安装文件,便能实现性能提升和改善安卓流畅性直逼苹果iOS?华为开源方舟编译器!


安卓流畅性直逼苹果iOS?华为开源方舟编译器!


所以,根据我的猜测,方舟编辑器大概率是一个类似开发工具的东东

 

能够实现,将apk文件中的Java语言直接转换成机器码,而这些,在软件安装之前便已完成

 

这也就是说,只要用户安装经过方舟编译器“改造”过的软件,便能实现其宣称的各类流畅度提升安卓流畅性直逼苹果iOS?华为开源方舟编译器!


而目前的安卓,编译都是在机器内实现的


这就相当于给你装了个同声翻译机,这下连字幕都不需要安卓流畅性直逼苹果iOS?华为开源方舟编译器!


安卓流畅性直逼苹果iOS?华为开源方舟编译器!


而华为是如何实现统一编译的呢,这点不得而知

 

至于编译后代码的兼容性,目前也没有具体测试安卓流畅性直逼苹果iOS?华为开源方舟编译器!


但细思极恐,小马哥想起了曾经的一条新闻


安卓流畅性直逼苹果iOS?华为开源方舟编译器!


余承东承认,华为有自研系统,如果无法使用安卓系统,华为将启用备用系统


而从方舟编译器来看,或许,那一切都是真的


安卓流畅性直逼苹果iOS?华为开源方舟编译器!

华为,make it possible安卓流畅性直逼苹果iOS?华为开源方舟编译器!

安卓流畅性直逼苹果iOS?华为开源方舟编译器! 来回二手手机商城 二手华为专区-不定时补货上新


安卓流畅性直逼苹果iOS?华为开源方舟编译器!

往期精彩








对更多二手手机,笔记本,数码产品感兴趣的小伙伴

⇣ 更多历史文章请点击【阅读原文】⇣

你在看吗


以上是关于安卓流畅性直逼苹果iOS?华为开源方舟编译器!的主要内容,如果未能解决你的问题,请参考以下文章

方舟编译器破空而来,安卓无限接近iOS,华为这次的技术大招牛在哪?

华为宣布方舟编译器8月31日开源,鸿蒙还会远吗?

华为正式开源方舟编译器:架构级优化,程序性能显著提升

赵明揭秘方舟编译器:让安卓流畅度媲美甚至超越 iOS

说到做到,华为方舟编译器开源了!对OV小米影响几何?

华为发布方舟编译器:全面开源 架构级优化 应用性能提升显著