8 月 31 日,华为开源了方舟编译器的源代码,并提供了相关开发文档、演示等资料下载,同时其相应的官网也已经上线。
今年 4 月,华为在发布 P30 系列手机时推出了「方舟编译器」,它随着 EMUI 9.1 一同放出。华为表示它能够改善安卓应用编译效率,让 APP 从原先的边解释边执行转变为全程机器码高效运行程序。
根据官网信息,方舟编译器是为支持多种编程语言、多种芯片平台的联合编译、运行而设计的统一编程平台,包含编译器、工具链、运行时等关键部件。方舟编译器还在持续演进中,陆续将上述能力实现和开源。
官方网站:https://www.openarkcompiler.cn
代码托管网站:https://code.opensource.huaweicloud.com/HarmonyOS/OpenArkCompiler
华为官方表示,本次方舟编译器开源的是编译器框架部分源码,包括编译器中间表示(IR)和语言编译实现,同时搭配编译器其他二进制组件,实现 Java 程序到 aarch64 汇编指令的编译过程。开发者可基于开源代码 二进制,编译构建出编译器工具链,尝试对 Java 程序进行编译。
方舟编译器的优势
方舟编译器能更高效地运行程序,而且如果程序本身对华为的 EMUI 和麒麟处理器进行了特别优化,显然可以获得更好性能。华为宣称,方舟编译器可让系统操作流畅度提升 24%,系统响应速度提升 44%,第三方应用重新编译后流畅度可提升 60%。这些提升,很多都是多语言统一 IR 表示及多平台支持等特性提供的。
方舟编译器除了提升手机 APP 性能之外,或许也是华为正在为自己的操作系统、开发工具和开发语言进行技术和用户积累计划的一部分。目前方舟编译器的主要优势有以下几个方面:
方舟编译器的开源
华为开源文档表示,当前方舟编译器支持 Java/Kotlin 程序字节码的前端输入,其它编程语言的支持(如 C/C /JS 等)还在规划中。
方舟编译器的中间表示(IR)转换器将前端输入转换成方舟 IR,并输送给后端的优化器,最终生成二进制文件,二进制文件与编译器运行时库文件链接生成可执行文件,在方舟的运行环境中就可执行该文件。
目前方舟编译器的源代码已经都放出来了,但并没有在 GitHub 开源。如下所示为开源代码的界面,里面包含了众多代码和文档等文件。
都有哪些应用、机型支持方舟编译器
根据华为官方给出的信息来看,目前已有至少45款第三方应用支持华为方舟编译器,都是大家耳熟能详的超大用户量App,而且后续还有更多的App加入其中。
至于支持的机型,具体来说是(更多机型还在陆续适配中):
华为品牌:P30、P30 Pro,P20、P20 Pro,Mate 20、Mate 20 Pro、Mate 20 X、Mate 20 RS保时捷设计、Mate 10、Mate 10 Pro、Mate 10保时捷设计、Mate RS保时捷设计、nova 5 Pro、nova 4、nova 3;
荣耀品牌:荣耀20、荣耀20 Pro,荣耀9X、荣耀9X Pro、荣耀Magic2、荣耀10、荣耀V10、荣耀Play、荣耀V20;