华为的方舟编译器是一款针对C/C++代码的高性能、开源、跨平台的工具,能够快速高效的进行程序构建和优化。它可以减少程序运行时间,提高系统的稳定性和安全性,提升应用性能,支持多种操作系统和编程语言。它还提供了丰富的插件系统,可以方便用户自定义编译选项和构建策略。华为的方舟编译器是企业级开发环境中不可或缺的一款工具。
华为的方舟编译器到底有什么用呢?
官方解释:方舟编译器可供开发者在开发环境一次性的将高级语言编译为机器码,手机安装应用程序后可全速运行程序,带来效率上的极大提升。根据华为实验室的测试数据,EMUI 9.1在仅仅对系统组件System Server应用了华为方舟编译器后,就带来了系统操作流畅度提升24%,系统响应性能提升44%。
按照我们开发人员的角度来说,就是一个虚拟机。
方舟编译器简单来说,就是可以将高级语言比如Java,直接编译成变成机器码的技术。它更大的优势就在于绕过了安卓系统的VM(虚拟机),从使得应用可以像苹果引以为傲的iOS系统一样,转化出的机器码可以直接由CPU运算,从而使得运行效率大大提升。
从发布会上所介绍的信息,方舟是静态编译,不是基于传统的java虚拟机进行对代码的运行时编译。
所以个人猜想这个可能是理想数据,但是其在此时推出自家的编译器,不免令人联想到其在为自家即将发布的操作系统鸿蒙做准备。
总所周知,现在如果要推出一个系统,需要有足够多的厂商去设备或者说去对其定向开发,同理如果没有足够多的应用,即使系统再流畅,也没有足够多的用户去选择它,所以这是一个基于生态的环境,掌握生态,就是掌握命脉。
之一个疑问肯定是PPT上说的解决边解释边执行和ART有什么区别?上面我说了,ART是在机器层面安装时才编译,事实上,安卓8.0引入了热点编译的策略,也就是说不把全部字节码都编译为机器码。而如果在编译器层面上动刀,且变成了直接把中间码编译为ARM机器码打包在apk里。这是两个完全不同东西。当然,效果如何我说了,这就有待考究了。
第二个疑问,编译工具的接受度。实话实说,现实中我还真没见过安卓开发有用arm自己的编译器的。我没有任何贬低方舟的意思,但为了一个很可能破坏兼容性的解决方案(模拟器玩家和安卓x86的末日)去放弃官方的方案,并不是一个非常理想的方案,而且退一万步讲,安卓8.0为什么非要将纯ART环境改回jit+aot双环境不是没理由的。再退一万步讲,现在支持HIAI的软件又有多少呢?
想上方舟,对不起,你得先了解这些问题:
PS:来自于花粉俱乐部
Q1:能不能通俗易懂(大白话)介绍下编译器是什么?
编译器是人类和机器建立沟通的桥梁。将人类语言(高级语言)翻译成机器看的懂的语言。而编译器的执行效率直接影响手机各种APP的相应速度。
就拿现在你能看懂这篇帖子中的文字,觉得很轻松,不就是个汉字嘛。可是对于计算机来说,它实际上根本就不认识汉字,它只知道1和0这两个数值,我们用高电压表示1,低电压表示0。也就是说计算机世界里面的语言是二进制的,不是1就是0
如果想要计算机做到能够正确表达你现在写的文字,那么这时候,编译器就出现了。编译器的作用就是将人类语言(高级语言)转换为计算机可以理解的机器语言
Q2:方舟编译器和普通编译器有什么不同?
首先你要知道安卓程序是java写的,java程序是将源码代码最终编译成机器码的过程。普通编译器的这个过程是动态的,这也是为什么Android程序没Iphone程序跑得快的根本原因。传统的安卓系统编译,很多程序往往需要一边编译,一边执行。方舟编译器的不同之处是将动态编译改进静态编译,可以做到全程执行机器码高效运行程序,大大缩短了程序响应时间。举个不太恰当的例子,就像是把50集电视剧改编成了1部电影,观影的时间短了,但是该有的剧情一个都不会少。
Q3:方舟编译器真的很牛么?
首先要肯定的是这个东西真的很牛X,牛X到什么程度呢?使用之后,安卓的体验几乎是可以达到IOS的水准,媲美 IOS指日可待。微博 @万能的大熊 描述的就很形象:大概就是假如现在汽车分柴油发动机和汽油发动机,那么方舟编辑器的意义就是通过了它,发动机可以加汽油也可以加柴油。或者说,它让发动机不挑油了。
Q4:方舟编译器是如何做到提高程序响应速度的?
当前TOP应用95%都涉及了多种语言的开发,比如C、C++、JAVA等,不同的语言代码保持独立,在运行环境进行协同,会产生系统性能的部分损耗。方舟编译器可以做到将不同语言的代码放到一套编译好的执行文件,并高效运行。这种编译好的文件可以做成安装包,当你在手机上下载安装后,就不需要系统在出力气去编译了。
Q5:方舟编译器发布了,为啥我的手机没感觉比以前快呀?
有了方舟编译器还远远不够,还需要各大APP厂商去做适配,由于方舟编译器还未开源,APP的适配工作还未正式开始,所以敬请期待吧!
Q6:现在有哪些应用支持方舟编译器
遗憾的告诉你,目前暂时只有微博极速版支持。
Q7:使用方舟编译器性能到底会提高多少?
根据华为实验室测出的数据,EMUI 9.1中仅仅对系统组件System Server使用方舟编译器进行优化,就可以带来24%的系统流畅度提升,系统响应性能提高44%,目前第三方有微博极速版进行了适配,根据华为给出的统计数据,操作流畅度可以提升60% 。在小贱看来,对于我们消费者而言,不用花一分钱,手机性能基本提升了一倍,简直是又换了一个新手机的节奏!
Q8:方舟编译器这么牛,难道就没缺点?
有,根据编译的原理,方舟编译器在用户安装apk安装包的时候,就已经将编译工作做完了,这势必会导致应用安装包的体积增大,具体增大多少暂无法确定。不过正常情况下,APP安装完成后,安装包可以选择删除掉,所以最终占用手机空间也不会比原来大多少。而且现在手机内存越来越大,还怕这点安装包不成?
Q9:方舟编译器的适配计划公布了吗?
华为宣布将在2019年8月会在华为终端开发者大会上开源,在2019年11月会在绿盟开发者大会将完整的方舟编译器代码开源。
Q10:我的机型是否会支持这个黑科技?
不要担心,如果仅仅想体验编译器带来的APP急速打开的体验的话,那就和机型、系统没关系了。方舟编译器可以针对系统方面(见Q7对系统组件System Server使用方舟编译器进行优化,就可以带来24%的系统流畅度提升),也可以针对APP应用层面做优化,手机上安装了经过方舟编译器适配后的APP也是可以收获极致体验的。
Q11:对于方舟编译器,你有什么看法?
这个问题??对于方舟的看法那必须是好,很好,非常好啊,小贱要用一腔热血投身于菊厂,为繁荣而贡献自己的绵薄之力(紧张~~)
咳咳,方舟再牛X后期也离不开各位第三方APP大哥大姐们的辛勤开发适配,在这里先说一声谢谢!期待着体验~
Q12:最后,对方舟编译器第三方APP适配有什么建议吗?
后续经过编译器编译过的第三方应用,就可以上架华为应用市场了,这时候大家就可以进行体验。建议将使用方舟编译器的APP带有一些特殊标识,一来可以提高品牌宣传,二来最重要的是便于用户分辨选择。
最后献上一段科普视频:
视频加载中...