一提起华为,大部分人心中第一时间想起的应该是领先全球的5G技术和当今拍照最强的华为P30系列手机。意料之外的是华为的软件也爆了,和P30系列手机一同问世的“方舟编译器”震撼了软件行业,引起行业的广泛讨论。
不同于5G技术以及P30系列手机的看得见摸得着,方舟编译器是作为“软支持”被发布的,在发布会上华为消费者业务CEO余承东也曾介绍了这个技术,不论是从架构原理还是对消费者使用所产生的影响,方舟编译器绝对是一个重要的支撑,甚至可以讲在它非常有可能影响未来安卓系统的走向,成为真正的未来之舟。
众所周知,当前智能手机系统只有安卓和苹果IOS两大阵营。近几年来,安卓越来越占据压倒性的优势,不论是应用商城的数量超越苹果,还是安卓机的销量也是iPhone的4~5倍。2019 年 Google I/O 大会上,安卓也是越来越有人情味,更加全面的安全隐私保护,更体贴的专注模式,黑暗模式,更强的AI,甚至可为语言障碍患者服务……
“美中不足”的是安卓原生的卡顿问题依然如影随形,迟迟难以解决,消费者对此多有抱怨。此次,华为推出方舟编译器正是为了去除安卓系统原生卡顿的这一顽疾,通过不断优化升级使得系统在流畅性、易用性以及开放性等方面比iOS系统有更好的体验,对于整个安卓生态历史意义不可谓不大。
目前的 Android 采用的是解释执行 + 还算可以的 JIT + AOT 的综合模式;但并没有摆脱这样一个前提,即应用在被打包成 APK 的时候,采用的还是 Java 代码。换句话说,在 APK 变成用户可应用的过程中,还经历了一个在 Android 系统内部的编译过程,这是一个绕不过的坎。所以,安卓系统在我们打开应用进行操作时必须要进行一次相对复杂的“二次加工”,这是因为安卓系统本身是使用Java语言编程的,而机器可以识别的语言却是汇编语言,这就要求两者间必须有个“翻译”,即中间层编译器。转换复述过程不仅浪费时间而且还有出错的可能,这就是目前安卓系统卡顿的根源所在。
相比于繁琐的“二次加工”,华为推出的方舟编译器是从底层直接定义了一套标准,采用了全新的系统及应用编译运行机制,简单的说就是在安卓应用打包APK的时候直接把Java代码编译为了机器码,将所有的Java语义全部做到静态编译,相当于在软件运行前就打好了一切基础,直接摒弃了翻译过程,运行效率可想而知。
专业术语大家可能都不太懂,举个例子就像一个不懂英文的中国人要和英国人交流,中间就需要一个翻译人员,而方舟编译器的作用就是让英国人直接说中文,这样效率自然一下提高很多,这样通俗解释,大家应该就明白了。
当然,凡是要拿证据说话。华为今年推出的P30系列就是搭载了方舟编译器,经过对比测试,在EMUI 9.1 环境下华为P30系列手机的系统操作流畅度提升24%,系统响应性能提升 44%,另外,第三方应用新浪微博极速版利用华为方舟编译器之后,其操作流畅度提升了60%,并且内存占有率更小,CPU使用率更低。面对这样的数据,相信很多人应该都服气了。
需要说明的是,方舟编译器对华为而言远不止提升手机运行效率这么简单,有了华为方舟编译器,第三方APP只要重新编译即能为华为手机所用,无需重新开发,也无需像IOS那样重写,并且流畅度也将大幅度提升,这势必会减少安卓APP的优化成本、消除APP供应商的优化顾虑,日后华为一旦推出自己的系统将会得到更多的支持,这也许才是华为推出这款方舟编译器的深远意义,目前这个技术华为已经开源,期待更多厂商能够用方舟编译器带给消费者更为畅爽的智能机使用体验。