华为的方舟编译器能提高流畅性40%以上,怎么这么厉害?

黑土217712201


感谢您的阅读!

国产安卓系统似乎在流畅性上都超过iOS系统了,iOS系统没落了吗?!

方舟编译器一出,余承东这样说:方舟编译器可以让华为手机的性能超过苹果iOS。特别是通过方舟编译器的编译,让EMUI系统的流畅性能更高!
有人也做过测试:在同时开启华为P30 pro和iPhone Xs max的App时,15款软件,华为有13款领先!那么,什么导致iOS系统比不过安卓系统呢,或者华为的EMUI呢?

我们看到在EMUI9.1的介绍中,这样说到:从底层改变安卓系统的编译方式,独创方舟编译器,以高效的静态编译代替高资源消耗的动态编译,使得系统流畅度提升24%。系统响应性能提升44%,操作流畅度提升高达60%。

这里提到的原理是,通过静态编译进行创新,能够带来更好的流畅速度,我们说到编译,安卓的编译里有这几个词汇,JIT编译,可以进行运行时编译器,还有安装时解释的,Dalvik是运行时解释 ,还有AOT,意思是运行前编译,然而安卓编译确实会存在:边解释边执行的现象。而通过华为方舟编译器之后,这种现象,变成了静态编译,带来更快的编译速度。

但是,ios系统的优势还是明显的,其实它的优势主要在于运行机制;而且在优势上,ios系统主要是交互和生态,这是它的优势。这方面,就是安卓系统比不上的,甚至华为经过方舟编译器,也不能改变这种情况,所以,即使华为流畅度更快,也难以改变这种情况!


LeoGo科技


小伊评科技,希望帮到你

这个问题解释起来较为的深奥,笔者就简单的根据自己目前搜集到的和整理的一些资料大体上来讲一下,希望可以帮到你。

首先,安卓究竟为什么没有IOS流畅?

从系统底层上面来讲,安卓之所以没有IOS流畅其实问题的根源出在根上,也就是编写这套系统的程序语言上就有差别,我们要知道安卓的底层是基于Linux开发的,而应用层则是套用了Java语言开发。苹果的IOS则是应用的Unix语言开发。其实从底层语言上来说Linux和Unix差别很小甚至可以互通。问题就出在安卓应用层所采用的Java语言,是安卓卡顿的罪魁祸首。那么Java究竟为什么会造成卡顿呢?Java所编写的应用和系统交互的过程中是需要通过虚拟机来解析指令,然后再传递给系统系统做出反馈。而IOS则是应用直接传递给系统马上做出反馈,所以安卓应用的执行效率天生就没有IOS高。

为了方便理解打个恰当的比方:

安卓就好比是一个不懂英文的人在和一个老外聊天,但是不懂英文,他说的话必须经过同声翻译员翻译给老外他才能听得懂。

IOS就像是一个精通英文的人,他和老外交流无需经过他人翻译,可以面对面的交流,效率自然要比安卓高。


那么华为方舟编译器究竟是什么用

在这里牵扯到的专业的编程理论有很多,比如机器语言和汇编语言的转化问题等等,这些问题过于深奥和艰深,笔者不多赘述。只是通过比较简单的干练的语言作为解答,可能会有一些专业人士觉得不专业,请大家多多包涵。

上文我们提到安卓是由于Java虚拟机编译的缘故造成系统的卡顿,而华为的方舟编译器就是为了解决这个问题而诞生的。简单来讲,通过这个编译器编译以后的应用,在安卓内部执行的时候是可以直接从应用直达系统层而不需要经过JAVA的虚拟机了,这就使得安卓的应用的启动效率以及使用效率有了一个较大的提升。但是这个编译器是需要APP的开发商来共同配合才行,因为只有APP的开发商使用这个编译器去进行代码的改写和修缮,才能达到效果。并不是说华为的EMui系统可以直接打到这样的效果。

经过编译后的软件打开效果还是挺明显的

自定义封面


想法虽好但是还需要时间,不过华为已经很了不起了

目前安卓系统卡顿的根源其实就在混乱的APP,由于什么样的APP都可以上架到安卓应用市场,这也导致了大量地垃圾APP的横行,关联启动,常驻后台等情况更是屡见不鲜,原因其实就是因为开发者的实力参差不齐。那么这么来看华为的方舟编译器想要推而广之,还需要很长一段的时间要走。不过话说回来,华为能够开发出来一款编译器已经是非常厉害的行为了,我们应该给予肯定。

也希望国内能尽快完善APP上架机制,这样才能更大程度的保证安卓手机的流畅性。
end 希望可以帮到你

小伊评科技


感谢邀请:我是科技数码随时答,很高兴能回答这个问题

华为的方舟编译器能提高流畅性40%以上,怎么这么厉害?

确实很厉害,但是我们要知道的一个问题关键核心在于实际使用和发布会上的数据是否能够完全吻合,但是不仅仅是指华为,就像发布会上面提到的跑分和拍照等等方面的整合,我们看到的和实际还不能说有很大的出入,只是达不到发布会上面讲的那样。再者题主说的一点是流畅度提升不是44%,而是24%,响应速度提升提升到了44%,这两者还是有区别,一个说的综合能力,一个说的是反应的速度,当然这一点我们不纠结。

方舟编译器的实现原理,是改变的了安卓的运行机制,所以这是从根源上面解决了问题

安卓的卡顿的原因,其实就是运行效率相对较低,我们可以总结为,边解释边执行的状态,意思很简单,安卓的编写程序为jAVA,但是是不能直接被识别的,需要解释一段、执行一段,然后再往下走,这就是我们所说的虚拟机,也就是我们开打运行程序的之后,数据先是需要从虚拟机去转变和解释,,然后到用户的UI,然后才能执行。

而华为的编译器正是改变了这样的方式,因为他将应用程序将不再像以往那样,解释一段、执行一段,然后再往下走,而是将整个程序全部一次编译成手机CPU能理解的机器指令,接着就顺畅地连续运行下去。

这个其实就像是ios系统一样,可以直接识别指令,然后系统可以做出更快的反应速度,而不是一边走一遍解释的状态,所以缩减了中间的一个过程,而ios系统正是因为点击之后,以用户点击为最高优先级,所以反应速度才会更快,因为可以直接识别。


总结

华为编译器的出现确实可以很大程度改变运行效率低的问题,但是我们什么时候才可以用上,这是一个问题,再者就是第三方APP的整合,因为ios系统只可以在苹果商店下载程序,而安卓手机不通的是,在哪里都可以下载APP,所以还没有一个厂商有一个完整的整合,所以需要是各个厂商的配合,而不是华为一家,因为编译器的实用性还是有待商榷的,而且即便是实际使用了之后,效率会怎么样我们未曾可知,虽然期待,但是需要时间。


回答完毕

欢迎留言发表不同的看法和想法:

科技数码随时答


刚升的华粉俱乐部方舟版,快的很。



清苦静定慧0


目前只有微博极速版支持!没有其他软件开发者参与!这个编译器只能自己跟自己玩!


等待你的温柔19


这个没几人能回答!就看专业写软件的大神的说法吧!


分享到:


相關文章: