0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

华为方舟编译器的五大优势

454398 来源:工程师吴畏 2019-06-14 09:50 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

在今年发布P30的时候,华为还发布了一个名为“方舟”的编译器,但是很多人对方舟到底是什么其实有误解,这里我们就来详细说说。可以肯定的是,方舟并不是单独操作系统!而是安卓上的工具。

方舟编译器的优势可以总结为以下五点:

1、安卓程序编译效果更好;

2、安卓程序安装速度更快;

3、安卓程序运行速度更快;

4、系统垃圾随用随清,对手机硬件的依赖降低;

5、省电、省电、省电,重要的事情说三遍

安卓与Java

从一开始到现在,安卓的程序大多数都是Java(也有C语言)编写的,关于Java无需多言,是世界上最强大的计算机语言之一。

但是懂得计算机原理的都知道,计算机的CPU,只接受汇编命令。那么怎么才能让CPU去理解Java语言的程序呢?

华为方舟编译器的五大优势

左边是JAVA程序代码,有边是汇编代码

如果使用一个中间层,把Java解释成汇编语言,充当一个“翻译”的角色,那么就变成了Java程序说一句,它解释一句,这么做显然效率太低。

那么能不能把Java直接变成机器能动的汇编代码?

可以,有两种办法,一种是在程序执行之前就编译好的模式,这种称之为Ahead of time,简称AOT;另外一种办法则是程序运行起来之后再编译,称之为Just in time,JIT。

早期安卓

在安卓的早期时代,也就是安卓5.0以前,安卓手机有卡、慢、顿的毛病,为用户所诟病。

为什么?归根结底是因为当时的安卓使用的是中间层+JIT的垃圾模式,这种机制下就快不了,而且当时垃圾回收也成问题,本来就慢,越用越慢,笔者当时用的Nexus4就是安卓4.2版本,由于是源生系统,还稍微好一点点。而且这种办法还废电。

nexus由于是源生系统,所以比国内手机厂加壳的各种UI还稍微快一点

在安卓5.0-6.0的时期,谷歌为安卓配置了ART(Android Runtime),这个时候是完全的AOT模式,但是它也有自己的问题。

因为是执行之前要编译好,所以安装的速度很慢并且非常占空间,要知道当时的手机64G都算容量大的,而且开机重启都要执行一次AOT,所以这个速度巨慢,用户体验也很差。这也是为何从前两年开始,安卓手机的内存和容量越来越大。

现在的安卓

安卓7.0之后,谷歌也意识到了程序占地方、开机慢的问题,怎么办?

谷歌发现,人们使用一个程序,不可能用所有的功能。那么只编译一部分常用的是不是就效率高了呢?

所以这时候其实是把JIT又拉回到安卓上来,并且安装的时候也不用全编译,直接装就是了,速度当然快了。

这其实就是中间层、JIT、AOT一起来,并且根据用户的习惯,把它常用的程序的常用功能代码解释好了存起来,用户再用也飞快。

在安卓7.0以后,谷歌做的事情就是优化。8.0的系统是做了一个解释器,提升了“冷代码”的解释速度。

而最新的10.0(Android Q)系统,甚至会在安装的时候,就预先知道这个程序什么是用户常用的代码,安装时间稍微长一点,但是热代码已经解释好了,进一步提升速度。

华为方舟优化了什么?

看上文我们知道了谷歌的方案其实是大杂烩。那么华为做的是什么呢?

其实华为的牛X之处在于直接进入到安卓的灵魂深处,从程序开发开始到打包好的APK,直接就是手机CPU可以理解的汇编指令(二进制码),这提升效率。

在方舟编译器里面,已经编译好的APK,会通过静态编译的方式先转换成机器码再安装,这其实是AOT,无需麻烦的虚拟机,提升运行速度和效率。

并且作为开发者,还可以根据不同的程序特点,选择不同的编译优化方案,不像安卓官方的方式使用统一的虚拟机方案。

现在安卓手机的一大特色就是内存越来越大,6GB都是老人机的配置了。

这除了程序大以外还有安卓的程序运行产生垃圾多有关系。那么清理垃圾呢?则需要暂停程序,也就会顿一下,即所谓的“卡”。

华为方舟编译器则是利用程序多线程运行的特点。打个比方,您现在正在用的“中关村在线”这个APP用了AB两个线程,在华为的P30手机中,那么线程A运行的时候,B在清理垃圾,然后A线程清理垃圾的时候B线程在运行,程序运行不中断,垃圾处理不停,做到了又连贯、又节约系统资源。

华为的另外一个伟大之处在于绝不藏私!今年8月,华为就将公开方舟编译器的源代码,到时候一定会有很多手机厂开始使用高效、节约资源的方舟编译器,给我买带来更好的手机使用体验!

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 华为
    +关注

    关注

    218

    文章

    36212

    浏览量

    262717
  • 编译器
    +关注

    关注

    1

    文章

    1673

    浏览量

    51945
  • 方舟编译器
    +关注

    关注

    0

    文章

    63

    浏览量

    823
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    华为发布五大全新解决方案,迈向交通运输行业全面智能化

    MWC 2026 巴塞罗那期间,在"数智未来,加速交通运输行业智能化转型"的主题论坛上,华为携手客户、伙伴、专家,共同探讨交通运输智能化新路径,分享最新技术成果。论坛期间,华为发布五大创新解决方案,推动交通运输行业迈向智能世界。
    的头像 发表于 03-11 17:21 744次阅读
    <b class='flag-5'>华为</b>发布<b class='flag-5'>五大</b>全新解决方案,迈向交通运输行业全面智能化

    为什么选择原装陶氏A系列大速比减速机?璟丰讲述五大核心优势

    动力之源,正是原装进口的陶氏(DODGE)A系列大速比减速单元。为何璟丰坚持采用原装陶氏A系列?其背后究竟蕴含着怎样的产品哲学与核心价值?今天,我们将通过璟丰的视角,为您揭示其五大核心优势优势一:原装进口,确保性能
    的头像 发表于 01-28 14:06 340次阅读
    为什么选择原装陶氏A系列大速比减速机?璟丰讲述<b class='flag-5'>五大</b>核心<b class='flag-5'>优势</b>

    技术分享 | RK3506如何交叉编译frp wireguard

    之前,我们需要搭建交叉编译环境,需要将我司提供的交叉编译器拷贝至ubuntu中并解压,完成后如下图所示:交叉编译器是从buildroot上直接导出,工具的具体路径
    的头像 发表于 12-25 17:29 808次阅读
    技术分享 | RK3506如何交叉<b class='flag-5'>编译</b>frp wireguard

    性能突破 | SpacemiT-X60 在 LLVM 编译器上实现 16% 显著提升

    2025年10月,在北美RISC-V峰会上,Igalia编译器工程师Mikhail发表专题演讲《Unlocking15%MorePerformance
    的头像 发表于 11-21 18:04 9136次阅读
    性能突破 | SpacemiT-X60 在 LLVM <b class='flag-5'>编译器</b>上实现 16% 显著提升

    开源鸿蒙技术大会2025丨编译器与编程语言分论坛:语言驱动系统创新,编译赋能生态繁荣

    在万物智联的时代背景下,操作系统底层能力的构建离不开编程语言与编译器的关键支撑。作为开源鸿蒙生态的核心技术,语言设计与编译器、虚拟机实现的进步直接关系到开发效率、运行性能与系统安全。本次分论坛聚焦
    的头像 发表于 11-20 17:24 1185次阅读
    开源鸿蒙技术大会2025丨<b class='flag-5'>编译器</b>与编程语言分论坛:语言驱动系统创新,<b class='flag-5'>编译</b>赋能生态繁荣

    GCC编译器,怎么才能实现c文件中未被调用的函数,不会被编译呢?

    GCC编译器,怎么才能实现c文件中未被调用的函数,不会被编译?有什么编译选项可以设置吗? 移植代码,有些函数没被调用的函数想留在代码里,但不想被编译
    发表于 09-28 12:25

    五大电磁频谱管理系统:原理、架构与应用全景解析

    五大电磁频谱管理系统:原理、架构与应用全景解析
    的头像 发表于 09-26 10:21 686次阅读
    <b class='flag-5'>五大</b>电磁频谱管理系统:原理、架构与应用全景解析

    如何在Keil中将NuMicro BSP从Arm编译器5迁移到编译器6?

    在Keil中将NuMicro BSP从Arm编译器5迁移到编译器6!
    发表于 08-20 06:29

    边缘设备AI部署:编译器如何实现轻量化与高性能?

    电子发烧友网综合报道 AI编译器是专门为人工智能(AI)和机器学习(ML)模型设计的编译器,其核心目标是将高级的AI模型描述(如计算图、神经网络结构)转换为特定硬件平台(如CPU、GPU、FPGA
    的头像 发表于 07-06 05:49 6969次阅读

    编译器功能安全验证的关键要素

    在汽车、工业、医疗等安全关键型应用中,确保功能安全合规性需要严格的工具链验证。开发安全关键型软件的企业必须遵守ISO 26262、IEC 61508、ISO 62304等国际标准对编译器工具链进行全面的验证。
    的头像 发表于 07-05 13:37 1712次阅读

    华为汪涛提出解锁5G-A潜能的五大关键方向

    在2025 MWC上海期间举办的全球移动宽带菁英论坛上,华为常务董事汪涛发表了“共赢移动AI时代:解锁5G-A潜能,释放商业价值”主题演讲。他表示,移动AI时代发展速度超乎想象,为移动产业带来三大变化,倡议产业界共迎变化,加速激活5G-A五大潜能,携手共赢移动AI时代。
    的头像 发表于 06-23 11:23 1084次阅读

    兆松科技ZCC编译器全面支持芯来科技NA系列处理

    近日,兆松科技(武汉)有限公司(以下简称“兆松科技”)宣布正式发布高性能RISC-V编译器ZCC 4.0.0版本。
    的头像 发表于 06-11 09:56 2024次阅读

    RISC-V架构下的编译器自动向量化

    进迭时空专注于研发基于RISC-V的高性能新AICPU,对于充分发挥CPU核的性能而言,编译器是不可或缺的一环,而在AI时代,毫无疑问向量算力将发挥越来越重要的作用。进迭时空非常重视RISC-V
    的头像 发表于 06-06 16:59 1454次阅读
    RISC-V架构下的<b class='flag-5'>编译器</b>自动向量化

    RVCT编译器是否比GNU的编译器的代码执行速度更快?

    使用FX3S遇到了RVCT编译器的问题。 1、在SDK的release note中有支持RVCT的描述, 但是在EZ USB Suite的设置中没有找到RVCT的选项, 请问支持的具体版本
    发表于 05-08 07:49

    CINCON电源模块:高效替代VICOR的五大优势解析

    在高端电源模块领域,VICOR虽以高功率密度和低噪音特性闻名,但其长达26周的交货周期和价格波动问题,促使市场寻求更优替代方案。台湾上市公司CINCON凭借以下五大核心优势,成为工业、通信及医疗等
    发表于 05-06 09:27