• 为“看着就想笑”出头,手法小儿科也下作 2019-10-14
  • 勇敢挑战“不可能”(今日谈) 2019-10-14
  • 荷兰推出概念“夜光”游艇 土豪炫富更闪亮炫富土豪 2019-09-26
  • 越南的现状应该给中国敲响警钟,强坛更是如此。上城客们现在是在动嘴,造舆论煽风点火,不防到点,越南现在发生的事情也可能在中国出现。 2019-09-26
  • 【15-20万】最新汽车报价 2019-09-21
  • 广州市从化区人民法院公告专栏 2019-09-21
  • 什么是幸福 ——“幸福死了”与“健康长寿” 2019-09-19
  • 开放的青岛期待“上合之声” 2019-09-15
  • 广平县举办“鹅城相约·缘来是你”单身青年联谊会 2019-09-15
  • 足球,从工人阶级平民运动到资本主义商业游戏 2019-09-12
  • 人才济济是德尚"幸福的烦恼" 高卢雄鸡能否高奏凯歌 2019-09-07
  • 蔚蓝京畿——冀北电力在行动--河北频道--人民网 2019-09-05
  • 县名解析:朔州山阴县县名来历 2019-09-02
  • 2018“文化和自然遗产日”非遗影像展:电影《侗族大歌》观众流泪观影——晋中频道 2019-09-02
  • 贵州习酒贵阳北站形象体验店开业 2019-08-29
  • 创富特新刊>手机>评论>正文
    华为方舟编译器深度解读 颠覆安卓体验就靠它
    2019-08-07 17:09:10 【机锋网】 作者:机锋网 责编:机锋网
    0
    机锋网

    【机锋评论】“逆水行舟”这个词表示逆着水流行船,用来比喻不努力就要后退。其实说实话,从笔者个人对安卓系统认知和大环境来看,华为的方舟编译器,既是一套适合国人使用的编译器,又是未来安卓系的一大发展趋势。方舟编译器,从笔者对其了解来看,其实有几点是最为重要:


    timg.jpeg


    在系统方面


    1、干掉了复杂的Java虚拟机。

    2、干掉了混合语言互相调用带来的JNI开销。

    3、不用改变编程习惯,即可使用方舟编译器进行优化。

    4、引用计数法,对系统内存进行随时用随时回收,消除卡顿。


    对使用体验:


    1、通过华为方舟编译器,替换Android system-server服务,让手机运行得到本质提升,这包括手机APP打开速度和流畅度。

    2、兼容市面上主流安卓应用。


    想干掉复杂的Java虚拟机 华为拥有神秘“黑科技”


    在讲华为这项“黑科技”之前,有必要为大家讲解什么叫“虚拟机”。早在安卓系统诞生起,就用java语言进行编写,但是在运行过程中,需要借助虚拟机机制来编译源代码,在Android 1.0时代,这个虚拟机叫Dalvik,到Android 2.2,引入了JIT编译器,虽然可以让用户在启动APP时候,将经常使用的功能直接编译为机器语言,但是仍旧需要每次都重新编译,大大增加手机的处理负担。


    ChMlWl1C26uIanLVAAEfXYqN6csAAMSrwB188MAAR91514.jpg

    图片来自网络


    Android 5.0时代,Dalvik虚拟机升级到了ART,JIT编译器也“升级”到了AOT,即用户在下载APP到手机安装时候,就直接可以把编译的代码直接编译成机器语言,当然还有部分没有编译的代码,这个就在用户启动APP时候再使用解释器来编译。虽然比1.0运行效率要高,但是牺牲了安装时间。


    到Android 7.0时代,为了解决安装时间过长问题,采用了混合编译机制,即在安装APP时候不编译中间代码,而是等APP空闲下来时,先通过AOT静态编译出一部分机器代码。如果AOT环境下遇到问题,再激发JIT编译器+解释器进行“辅助”。


    ChMlWl1DpVeIbL1fAABL8_rRDbIAAMTmwBcb1cAAEwL184.jpg

    图片来自网络


    但是上述的代价,就是需要大量运行内存和不断的高存储写入,进而增加功耗和发热。而华为干掉虚拟机,其实就是将Java代码直接编译成010101的机器码。但是大家要明白,Java语言里有静态语义和动态语义,大多数的动态语义,java无法做到直接编译还得交给虚拟机。


    方舟编译器则解决了静态编译动态语义的两点最大难题,设计数据模型和运行时候的高效获取动态信息问题,前者大规模研究了java动态语句,进行数据建模,在面对后者问题时,华为单独设计了一套具有核心专利的动态语义匹配机制。


    这样在克服这两点困难后,就不再需要虚拟机了,笔者认为,其实安卓系统卡顿的一切缘由,都是虚拟机在作祟。此外,笔者也大胆猜测,方舟编译器或许就在为鸿蒙系统做准备。


    干掉混合语言互相调用带来的JNI开销


    这点其实同样和java语言有关系,目前大部分常用的软件都是Java和C/C++等语言混合编写而成,为了能够让APP可以正常运行,就需要互通有无,这样一个“通用”接口就出现了——JNI,手机在调动APP时候,需要分配一部分资源给到JNI做调度,这样会大幅度占据硬件资源,而方舟编译器其实统一了各种语言,实现统一中间IR,为此,华为对IR已经进行了超过五年的研究,并研发了一套专利,这样使用不同代码,可以在相应开发环境中,统一成一套可以直接执行的机器代码。


    ChMlWl1DqoKICvfvAAESbSPcHgAAAMTqgA31AYAARKF125.jpg

    图片来自网络


    当然还有一点,笔者就直接放在这个小专题中讲,即代码优化,开发者可以自行代码优化,也可以通过方舟编译器预置的算法进行代码优化。这样在编程进行代码优化时候,就在方舟编译器这个环境中即可,从源代码到后端的机器码,均可以非常方便的编译。


    而笔者发现,华为另一大计划,是想通过代码云端化,让所有开发者参与进来,共同对代码进行优化,进而让最后的编译效率得到提升。


    结束安卓虚拟机GC内存回收问题


    我们知道,安卓手机早期运行内存并不高,当手机内存资源不能满足不断增加的新请求时候,安卓系统内,就会调用虚拟机的GC(Garbage Collection)机制,换句话讲,如果激发出GC,就会让手机运行的Java线程全部暂停,并等待回收内存空间。此外,这个机制一旦被激发,外界几乎不能做任何更改和设置,用户无法把它删掉,这样最终会引起手机卡顿。


    屏幕快照 2019-08-07 下午5.06.11.jpg

    图片来自网络


    其实针对这个问题,解决方法非常简单,只要增加运行内存即可,这也就解释了,为什么目前手机运行内存不断飙升,从一开始的256M RAM,到今天的12GB RAM。其实也可以从手机使用角度来分析:手机APP应用体积不断变大、内容越来越丰富、画面特效也达到了和PC端一样,势必会增加手机内部资源,加上安卓的GC机制,最后其实“顺理成章”的会造成卡顿。


    华为解决安卓虚拟机GC回收机制问题,采用的是一项名为引用计数法的技术,这项技术可以对内存进行实时回收,此外,还配合消除环算法,来避免回收带来的卡顿。另外,为了抑制手机运行内存被环引用占据,方舟编译器还引入了annotation的“告警”标示,对基础类的环进行标注,笔者大胆推测,如果开发者增加标注,那最终将会减少系统卡顿。


    写在最后:


    从目前工信部数据来看,目前已经有20款5G手机等待上市,5G设备终端已经非常成熟,这将直接带动5G市场活力,另外随着运营商资费下降,新一轮的换机风潮,将会很快来临。而带动的视频类内容,也将会掀起一股潮流。这些比图文更加直观的内容,势必会增加手机硬件资源的占用,而系统体验,是最容易让消费者直接感受到的,如果想要从“根基”做出改变,就需要从系统入手。


    而华为方舟编译器的出现,确实是华为生态系统中非常重要一环,就像“树根”一样,而移动终端和IOT等设备,就如同收获的果实。未来,就像余承东说的那样:“它详细解读了我们如何用十年努力,让方舟编译器和世界对话,让手机的使用体验更加流畅。接下来方舟编译器会全面开源,期待更多合作伙伴加入方舟阵营,一起为消费者带来全新的移动应用生态和体验!”


    评论

    机锋网登录页

    请输入账号

    请输入密码

    验证码错误

    忘记密码? 没有账号,立即注册

    机锋网注册页

    请输入账号

    验证码错误

    验证码错误

    两次密码输入错误

    您还未接受机锋网用户协议

    已有账号,

    机锋网找回密码

    手机找回邮箱找回

    请输入账号

    验证码错误

    验证码错误

    请输入密码

    两次密码输入错误

  • 为“看着就想笑”出头,手法小儿科也下作 2019-10-14
  • 勇敢挑战“不可能”(今日谈) 2019-10-14
  • 荷兰推出概念“夜光”游艇 土豪炫富更闪亮炫富土豪 2019-09-26
  • 越南的现状应该给中国敲响警钟,强坛更是如此。上城客们现在是在动嘴,造舆论煽风点火,不防到点,越南现在发生的事情也可能在中国出现。 2019-09-26
  • 【15-20万】最新汽车报价 2019-09-21
  • 广州市从化区人民法院公告专栏 2019-09-21
  • 什么是幸福 ——“幸福死了”与“健康长寿” 2019-09-19
  • 开放的青岛期待“上合之声” 2019-09-15
  • 广平县举办“鹅城相约·缘来是你”单身青年联谊会 2019-09-15
  • 足球,从工人阶级平民运动到资本主义商业游戏 2019-09-12
  • 人才济济是德尚"幸福的烦恼" 高卢雄鸡能否高奏凯歌 2019-09-07
  • 蔚蓝京畿——冀北电力在行动--河北频道--人民网 2019-09-05
  • 县名解析:朔州山阴县县名来历 2019-09-02
  • 2018“文化和自然遗产日”非遗影像展:电影《侗族大歌》观众流泪观影——晋中频道 2019-09-02
  • 贵州习酒贵阳北站形象体验店开业 2019-08-29
  • 时时彩万能六码组合 微信红包扫雷 幸运飞艇双面盘四期技巧 澳门一张牌比大小攻略 重庆时时彩怎么作弊的 11选5任选一中1规律揭秘 时时彩宝典苹果官方版 幸运飞艇单双官方计划 ds足球官网 排列五万能四码
    10.9.94.115