华为鸿蒙系统深度讲解,华为方舟编译器深度解析:提速安卓支撑鸿蒙?

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

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

0e5693aa90b8e3d2a456eb717837b6a9.png

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

01 编译器是什么?

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

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

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

f8ed14d56a0feae190b0a6214c10fb55.png

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

e24229a979ce9694a29d1cec99dfaa35.png

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

Java的虚拟机的故事

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

667c63d761225650ec72f0b9a648c7cc.png

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

95c8b79cadbc17337c1ccb558a87acf6.png

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

df4281230fcc157e5e57f71c111a504c.png

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

f772d21ede796441434cf48549871b76.png

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

JNI接口调度占用额外资源

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

34ae916021bf2ff24897fd7eb7843001.png

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值