设为首页 - 加入收藏 石家庄站长网 (http://www.0311zz.com)- 国内知名站长资讯网站,提供最新最全的站长资讯,创业经验,网站建设等!
热搜: 平台 视频 测试 应用
当前位置: 首页 > 营销 > 电子商务 > 要闻 > 正文

提速安卓支撑鸿蒙?“大杀器”方舟编译器深度解析

发布时间:2019-08-12 13:15 所属栏目:[要闻] 来源:耿鑫
导读:8 月 9 日,356bet官网 888_356bet滚球_356bet怎么分析开发者大会鸿蒙OS正式发布,这是基于微内核的全场景分布式OS。能实现模块化解耦,对应不同设备(智慧屏、穿戴设备、车机、智能音箱、手机)可弹性部署。356bet官网 888_356bet滚球_356bet怎么分析消费者业务 CEO 余承东描述了356bet官网 888_356bet滚球_356bet怎么分析鸿蒙 OS 的方方面面。 余承东称,356bet官网 888_356bet滚球_356bet怎么分析方舟编译器

8 月 9 日,356bet官网 888_356bet滚球_356bet怎么分析开发者大会鸿蒙OS正式发布,这是基于微内核的全场景分布式OS。能实现模块化解耦,对应不同设备(智慧屏、穿戴设备、车机、智能音箱、手机)可弹性部署。356bet官网 888_356bet滚球_356bet怎么分析消费者业务 CEO 余承东描述了356bet官网 888_356bet滚球_356bet怎么分析鸿蒙 OS 的方方面面。?

余承东称,356bet官网 888_356bet滚球_356bet怎么分析方舟编译器,会通过多终端 IDE 开发环境来支撑当前的鸿蒙 OS。目前方舟编译器支撑鸿蒙内核,“方舟编译器能提升60%的编译性能”,将来鸿蒙微内核能按需扩展,并希望用一个鸿蒙微内核代替全部内核。

鸿蒙OS离不开它?”大杀器“方舟编译器深度解析

今天,我们就聚焦356bet官网 888_356bet滚球_356bet怎么分析的新贵——方舟编译器,这个一发布就引起巨大响动的底层核心技术。方舟编译器究竟是什么?它为什么能够做到“青出于蓝而胜于蓝”,下面就让我们带着疑问去解读。

01?编译器是什么?

首先讲讲编译器是什么东西吧?其实绝大多数用户都不清楚这是什么。程序员们在写好应用的代码之后,在变成我们手机上安装的应用之前,还差最后一步就是编译。

简单来说,编译器就是把编程人员开发的高级语言程序,翻译成机器可执行的机器指令,这就是编译器。它就像一位翻译官,是连接程序员与机器的桥梁。

由此来看,方舟编译器面向的是开发者的,但最终受益的还是消费者。

鸿蒙OS离不开它?”大杀器“方舟编译器深度解析

打个比方,说计算机是汽车,那么软件就像汽车的操控系统一样。编译器则是汽车发动机里最核心的汽油燃烧技术,将软件变成计算机的动力,其编译的效率,直接决定了用户的使用体验。所以了解方舟编译器之前,我们必须得首先了解 Android 操作系统中的编译器的运行机制。

鸿蒙OS离不开它?”大杀器“方舟编译器深度解析

安卓系统从2008年1.0到9.0,截至目前安卓系统大小版本超过15个。十年发展安卓手机的体验已经今非昔比。可生活中还有很多人诟病安卓手机没有iPhone流畅,那么安卓系统的程序是怎样运行的?下面我们来阐述一下

?Java的虚拟机的故事

Android 1.0刚发布的时候,使用的是一个叫Dalvik的虚拟机(Virtual Machine,简称 VM)里面集成了一个解释器,每次用户在安卓手机上运行APP时,就会唤醒解释器,来给安卓的硬件解释APP接下来要干什么。

鸿蒙OS离不开它?”大杀器“方舟编译器深度解析

这个问题严重拖了安卓手机的后腿,所以Android2.2版本引入了JIT机制。JIT比较聪明,当用户在安卓手机运行APP时,会同时将用户经常使用的功能编译为机器能直接执行的机器码,不用一句一句去翻译。当出现不常用的功能时,再唤醒解释器翻译。

鸿蒙OS离不开它?”大杀器“方舟编译器深度解析

但是每次启动APP都要重新编译一次,加上Dalvik虚拟机性能比较落后,所以谷歌在Android 5.0版本将虚拟机从Dalvik替代成ART,同时把JIT的编译器替代成AOT 。AOT相比JIT的好处,就是不用每次打开APP都需要先编译一遍。但是,坏处是安装应用慢和占用内存空间。

鸿蒙OS离不开它?”大杀器“方舟编译器深度解析

在 Android 5.0 正式采用 ART 之前,Android 采用的是解释执行+JIT 的方式执行 Java 代码。在这个阶段的系统是“边解释边执行”模式,代码效率比较低下,当时Android给人的感觉就是卡。

鸿蒙OS离不开它?”大杀器“方舟编译器深度解析

目前的Android采用的是解释执行+JIT+AOT 的模式,但并没有摆脱一个前提,即应用在被打包成APK的时候,采用的还是Java代码。

JNI接口调度占用额外资源

现在大部分应用都是使用Java和C/C++等多种语言混合开发而成。Java和C/C++属于两种不同架构的语言,为了使APP正常运行,它俩之间需要互通的接口——JNI。

鸿蒙OS离不开它?”大杀器“方舟编译器深度解析

这就意味着手机硬件资源要分配一部分给JNI去做调度。不仅占用了硬件资源,而且这种机制本身就效率较低。

安卓内存回收机制容易造成卡顿

当手机内存资源不够用的时候,安卓虚拟机就会召唤GC(Garbage Collection),让所有手机运行的Java线程全部暂停,GC机制,无法精确控制内存回收,所以性能较差的手机间歇的出现“抽搐般”的卡顿现象。

鸿蒙OS离不开它?”大杀器“方舟编译器深度解析

【免责声明】本站内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。

网友评论
推荐文章