华为方舟编译器现身,它到底有多厉害?来看官网揭开它的神秘面纱
Posted 汉唐文轩
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了华为方舟编译器现身,它到底有多厉害?来看官网揭开它的神秘面纱相关的知识,希望对你有一定的参考价值。
之前网上流传各种方舟编译器如何厉害的说法,而现在,2019年8月31日早上9点,华为方舟编译器官网悄悄地上线了。
方舟编译器的官网的内容不多,就是对方舟编译器的简单介绍、开发帮助文档以及简单的代码演示。之前官方就说要在8月开源编译框架代码,11月开源完整版。冰冰还是很期待方舟编译器之后的发展的。
根据官方的说法,使用方舟编译器可以提升android系统第三方应用60%流畅度。对Android开发者来说还是很有诱惑力的。那它为什么能提升那么高运行效率呢?这需要我们先了解Android系统的知识。
我们知道Android应用是用Java代码写的,之前谷歌是使用了Dalvik虚拟机边解释边执行运行代码方式运行,但是效率低,所以换成了JIT模式。JIT是即时编译的,稍提高效率,但还不够,然后在Android5.0就废弃了Dalvik虚拟机而推出了ART虚拟机。android5.0系统使用的是AOT模式,做法是在安装应用的时候就已经对代码编译成机器码,打开应用的时候就不需要编译即可直接运行。这个方法缺点就是安装的时候时间太长,然后在Android7.0又引进了JIT模式。但是不管怎么做,基于Java的特点,就很难找到一个平衡点。那方舟编译器是怎么做的呢?
当前方舟编译器支持Java/Kotlin程序字节码的前端输入,其它编程语言的支持(如 C/C++/JS 等)还在规划中,方舟编译器的中间表示(IR)转换器将前端输入转换成方舟IR,并输送给后端的优化器,最终生成二进制文件,二进制文件与编译器运行时库文件链接生成可执行文件,在方舟的运行环境中就可执行该文件
我们在官方代码演示那里可以看到,编译代码之后生成的是一个so文件。
也许你会问什么是so文件。Android中的so文件是动态链接库,是二进制文件,即ELF文件,多用于NDK开发中。换句话说,方舟编译器可以将Java代码生成so库,这种文件是可以被Android系统直接运行的,从而提升执行效率。虽然我们可以用一句话解释原因,但是整个实现过程却是很难的,需要克服很多技术难题。
这就是华为方舟编译器的优势科技实力——能提高Android应用60%流畅度的原因所在。
阅读好文,开阔视野。
如果您觉得文章不错,
就是对小编最好的鼓励!
==汉唐文轩官方微信平台==
以上是关于华为方舟编译器现身,它到底有多厉害?来看官网揭开它的神秘面纱的主要内容,如果未能解决你的问题,请参考以下文章