华为方舟编译器可以编译C/C++,Java,JavaScript以及Kotlin,方舟编译器可以说是实现了几乎所有操作系统平台的通用开发语言的编译环境。不过要强调的是方舟编译器并没有实现Java像C/C++一样的静态编译,方舟编译器本质上还是基于GCC的交叉编译套件,本身还是采用的预编译的方式,至于效率到底怎么样,目前也只是华为官方给出了一些数据,而且我找遍了华为开发者官网也没有找到这个工具。
古老的有Pascal语言的P-code,现代的有Java语言的字节码和JVM。Google选择了Java,但是为了规避SUN公司的许可证限制,改造了JVM,换成了另外一种虚拟机Davik,标准的JVM所有操作都是针对堆栈顶的操作,而Davik是一种面向寄存器堆的体系结构,更类似常用的RISC机器。尽管有这些不同,但解释运行硬件无关中间代码的本质还是一样的。
方舟的这个编译器,将转换过程提前到生产过程,这个应该能够带来巨大的性能提升。毕竟电脑的CPU和手机cpu性能不是一个档次,而且编译过程对速度不敏感,安装过程则对速度极度敏感,编译过程可以进行更深度的优化。另一个是完全抛弃了虚拟机,理论上也会带来性能的巨大提升。核心创新点是混合语言的统一中间表示和完全静态编译,但更重要的是华为在解决 Android 操作系统 App 运行问题的崭新思路。
领取专属 10元无门槛券
私享最新 技术干货