除了鸿蒙OS,你别忘了华为这项秘密武器

来源:互联网
责任编辑:王亮
字体:

前两天,万众期待的鸿蒙 OS,终于在华为开发者大会上与世人见面了。

毕竟等待了这么久,千呼万唤始出来,大家对它都抱有 12 分的关注。

可机哥发现……

就在同一场发布会,还有个重磅程度不亚于鸿蒙 OS 的狠角色,却被很多人忽略。

在机哥看来,它对华为系统生态的发展,具有极其重大的战略意义。

而且当下对用户的影响甚至超过鸿蒙。

不卖关子,它就是——

方舟编译器

自打今年四月华为第一次对外宣布方舟编译器以来,大家总是能在各种场合听到这东西。

但绝大多数人并不了解它到底是个啥。

机哥用尽可能大白话的方式给大家科普一下。

故事的开端要从安卓的老难题说起:

安卓的老难题

一直到现在,机哥还经常听到有人在选购手机的时候说:

“买安卓?不行不行,太卡了,我还是用苹果吧。”

以机哥多年的搞机经验来看,这句话绝对不是子虚乌有的污蔑,“卡顿”确实是困扰安卓好多年的难题。

特别是安卓 5.0 之前的版本,手机刚买来时还凑合,用的时间一久……

便出现滑动不流畅、掉帧。

应用启动加载慢就算了,有时候还假死。

每每看到程序未响应,都让我回忆起曾经被 Windows 支配的恐惧。

安卓为什么会这样呢?

原因有很多方面,机哥人认为最大的问题有三个。

作为六号线最会说人话的科技宅,机哥就不扯那些专业的术语,咱们打一个通俗易懂的比方来说明:

假设今天机哥想读一本书,嗯,一本世界名著。

只不过,它是全英文的。

这时候机哥遇到了第一个问题:

我是个英语文盲,要想看懂这本书,该怎么办?

很简单,请一名翻译。

只要翻译对着书,逐字逐句翻译成中文给我听,我就能懂了。

但是,速度很慢。

很快,机哥遇到了第二个问题:

这本名著里除了英文,偶尔还会出现其他语言,比如法语。

我的英语翻译不懂法语,读到这里就卡住了,怎么办呢?

办法是这样的,这名英语翻译有个懂法语的朋友,他打电话询问了那个朋友,帮忙翻译。

恩,虽然最后我听懂了,但效率真的很低。

最后,还有第三个问题:

我会疲劳。

一次性听了几个章节后,累了咋办。

那只能停下来休息一会儿呗。

这样,我们又耽搁了一点时间。

注意,下面重点来了,我们把上面这个故事的要素替换一下:

英语=安卓的基础语言 Java;

中文=机器能懂的语言;

机哥=机器;

翻译=把 Java 翻译成机器语言的“解释器”;

法语=其他编程语言;

疲劳=内存资源不够用。

这个故事也就解释了安卓手机卡顿的三大原因:

首先是手机 CPU 听不懂 Java 语言,需要虚拟机的“解释器”,把 Java 字节码翻译成机器语言来运行,速度很慢。

其次是 Java 原生接口需要和 C/C++ 等其他语言的代码进行交互,造成额外的 JNI 开销,拖垮了效率。

最后是当内存不够用时,安卓虚拟机会采取 GC 内存回收机制,导致机器卡顿。

这么一说,安卓这是一身毛病啊,谷歌就没想过改善一下吗?

事实上,他们做了不少努力。

谷歌为了解决卡顿曾经做过的事

机哥上面说了,安卓的虚拟机机制,需要把 Java 语言,翻译一道才能给机器运行。

效率低下不说,还特别吃硬件。

谷歌早就意识到这个问题,在 Android 2.2 中加入了一种叫做 JIT 的机制。

JIT 意思是即时编译(Just in Time)。

放到机哥举的例子中就是:翻译者不再逐字逐句翻译,每次阅读的时候,他会把这个章节中的常见单词教会机哥。

有了这样的基础,我的阅读效率提高了不少。

但提升很有限。

于是从 Android 5.0 版本开始,谷歌又引入了一种叫做 AOT 的新机制。

AOT 意思是提前编译(Ahead of Time)。

相当于在机哥开始阅读这本书之前,翻译把这本书里的所有单词都先教给机哥了。

这解决了机哥阅读速度慢的问题,但又带来了新的问题。

阅读之前,教单词费时间啊。

对应到手机中,就是每次安装一个应用、升级一个应用速度奇慢无比。

大家应该都记得当初安卓 5.0、6.0 那会儿,系统升个级,一堆应用排队优化,速度有多慢吧。

所以到了 Android 7.0,谷歌把上面这些方法全都结合在了一起。

JIT + AOT + 解释器。

运行的时候进行 JIT,并把编译好的机器码保存下来。

机器空闲的时候进行 AOT,如果两者都来不及,那再使用解释器。

所以,如今新版本的安卓,再也不会像以前那样卡顿。

到这里,安卓的运行模式达到了一个很好的平衡…………吗?

然而并没有,无论谷歌怎么改进,虚拟机、解释器对硬件的占用依然存在。

这之中还有可以提升的余地。

于是,华为出手了。

华为是怎么做的

华为思考问题的方式,果然是简单直接而有效。

我们把问题拉回到最开始。

当机哥拿起那本英文世界名著,一筹莫展的时候。

怎么就没想到……买一本中文翻译版呢?

如果这本书早就被翻译成了全中文,我为什么还要找翻译、学英语、问法语呢?

这可以节省多少资源和时间啊。

华为的解决方案正是如此,方舟编译器所做的,相当于把英文名著,翻译成中文译本的工作。

也就是说,在应用打包 APK 的时候,就把 Java 代码编译成了机器码。

说着简单,真正要实现起来其实困难重重。

要将 Java 语言直接编译成机器码,不仅仅要编译静态语义,还要能编译千变万化的动态语义。

这之中的难度非常巨大,毕竟安卓花了十几年都没能彻底解决。

你要说被华为轻轻松松就搞定了?那实在有点傲慢。

实际上华为为了攻克这个难关,做了很多艰苦卓绝的工作。

从 2009 年就开始布局,期间投入了大量人力物力。

方舟编译器团队遍历了 Java 的动态语义,做了大量的数据建模,设计了具有核心专利的动态语义匹配机制。

还实现了混合语言的统一 IR(中间语言),有效避免多余的 JNI 开销。

顺便引入计数法(Reference Counting)来进行内存回收,解决了安卓 GC 回收机制的弊端。

最后的结果就是,操作系统的流畅度提升 24%,系统响应性能提升 44%。

经方舟编译的第三方 App,操作流畅度甚至能提升 60%。

光说不练假把式,华为说提升 60% 就 60% 了?

机哥拿第一批使用上方舟编译器的 App 微博极速版,实测试试。

咱们直接把难度拉到最高,点开华为官方微博的相册,测试短时间加载大量图片的速度。

PK 的对象,挑一台人们心目中流畅度的标杆——iPhone XS Max,来看看到底是谁更胜一筹。

左:iPhone XS Max │ 右:P30 Pro

额……没想到左边的 iPhone 根本追不上右边的 P30 Pro 啊……

根据华为公布的消息,除了微博极速版,下面这 40 多个 Top 应用,都会迅速跟进,推出方舟编译版本的 App。

细想下来,方舟编译器可谓是华为在自己的系统生态蓝图上,下的一颗重要棋子。

还记得华为开发者大会上,余承东这样说道:

考虑到生态原因,我们支持谷歌的安卓生态,优先使用谷歌安卓操作系统,如果安卓操作系统无法使用了,我们随时可以启用鸿蒙。

而方舟编译器、EROFS 文件系统的出现。

也证明了华为早已脱离了简单的,基于安卓定制 UI 的水平。

实力早已进化到能对系统底层推倒重来。

所以,如果安卓可以继续用,那么方舟编译器或许会让华为,在安卓阵营一枝独秀。

如果安卓不让用了?

有鸿蒙 OS + 方舟编译器,咱也没在怕的。


请注意:本文转载自QQ快报,并不代表本网赞同其观点,版权归原作者所有,本网不承担任何责任,特此声明。

为您推荐更多精彩内容:

一看就懂:华为的鸿蒙系统到底是干什么用的?

为什么安卓系统越用越卡?iOS却不会,这3点原因了解一下

译文 | 关于 Android Q 背后的新变化,我们和谷歌开发团队聊了聊

华为太有牌面,央视再次为其打CALL,亲自解释鸿蒙强在哪?

“天生缺陷”逃不过?鸿蒙开源架构离不开安卓的影子

码农进阶精英程序员,应该如何学好C语言?其实你只需要这样做!

华为“鸿蒙”OS一出,但仍作为安卓备用,对此怎么看?

国产操作系统这么多,为何华为还要在研发一套?

燃炸了!余承东公布了鸿蒙的3大“杀手锏”,谷歌直接一脸懵了

假设:安卓当年不开源,谷歌、苹果能平分天下么?

根据您访问的内容,您可能还对以下内容感兴趣,希望对您有帮助:

华为鸿蒙系统是什么

答:兼容安卓,一切问题应该不大,方舟编译器中可以看出端倪,华为原本布局可能是过几年推出鸿蒙,现在没办法,只能如此了,再说一句,华为挺过这一次,离按着苹果打的日子不远了,别忘了,思科已经被按死在地上了,华为一旦超越,就不会让你有冒头...

华为注册了华为鸿蒙,是要干什么?

答:因为美国谷歌将不再给华为提供安卓系统升级,也就是说华为新发布的手机可能无法正常使用安桌系统,华为早在2012年就开始研发独立的操作系统,这也是说明了“没有美国,我们华为也是第一!

华为鸿蒙系统什么时候上市

答:前一段时间刚看到,有的用户的华为手机已经提示升级鸿蒙系统了,是不是稳定版不清楚,但是应该有用户已经在试用了。还有就是今年年底,说是会推出电脑和手机公用的鸿蒙系统,以后电子产品的使用会更加方便。当然,鸿蒙在除了华为以外的产品上普...

华为有没有自己的手机操作系统?

答:华为有自己的手机操作系统。叫做“鸿蒙系统”。 华为鸿蒙OS系统将打通手机、电脑、平板、电视、汽车、智能穿戴,(将这些设备)统一成一个操作系统。且该系统是面向下一代技术而设计的,能兼容全部安卓应用的所有Web应用。若安卓应用重新编译,在华...

华为系统鸿蒙如果上市

答:看华为的鸿蒙系统完成度吧,如果完成度很高,系统生态可以的话我会支持,如果鸿蒙系统bug很多,我不会。

华为鸿蒙os的app包后缀是什么,用什么语言编写,和...

答:华为鸿蒙os都还没有上市,相关的很多知识都属于商业秘密,一般的人不可能知道的,就算有人知道,他也不能告诉你的。目前很多关于鸿蒙的说法,大部分都是猜测而已。

华为的鸿蒙操作系统是纯自己研发的吗?

答:你好, 鸿蒙系统是华为自己开发的,华为的忧患意识太强了,这套系统很早就开发了,作为备胎,只是还没上市使用而已。 谢谢 望采纳

华为的最新操作系统,鸿蒙。Os已经。出炉了,如何...

答:当然选择华为的鸿蒙,虽然苹果好但是始终不是自己国家的,对比苹果系统也得等鸿蒙系统手机上市才能对比苹果的系统。

华为手机怎么下载鸿蒙系统

答: 华为鸿蒙os APP详情1、根据消息来看,系统最早在今年的秋季就会正式上市,延期也不会超过明年春季。2、这是专属于华为手机的独特操作系统,因此在兼容性、稳定性方面都是顶尖的。3、系统可以适用超多设备,不仅仅是手机,像电脑、智能手表等设...

华为鸿蒙系统PC版什么时候上市?发烧友很期待

答:根据环球时报报道,华为的新款操作系统将在8月份或者9月份在市场上推出,这与余承东所言“秋季推出”不谋而合。在海外市场,华为的自研OS将命名为“Oak OS”,目前尚不确定。

声明:以上内容由用户提供,并不代表本网赞同其观点。如有任何不妥,请与不良与违法信息举报中心联系:513175919@qq.com

www.book1234.com true http://www.book1234.com/q/20190813/20190813A083F100.html report 45615
娱乐时尚
科技资讯
历史文化
真视界
旅游美食
精彩图文
我爱我车
母婴健康
关于本站 | 广告服务 | 手机版 | 商务合作 | 免责申明 | 招聘信息 | 联系我们
Copyright © 2004-2018 book1234.com All Rights Reserved. 布客网 版权所有
京ICP备10044368号-1 京公网安备11010802011102号