华为方舟编译器是华为在今年4月发不会上公布的一个全新的应用编译器,这款编译器可以大幅度提升安卓设备的速度,据说可以将第三方应用流畅度提升60%,足以媲美ios系统了。应用开发者们可以通过这款华为方舟编译器对自己的应用进行编译,如果这个编译器在安卓市场普及开的话,安卓流畅度超越ios系统不再是梦。
方舟编译器优势:
多语言联合
将同一应用中的不同语言代码联合编译、联合优化,消除语言间的性能“鸿沟”,降低开发者的优化成本
轻量运行时
通过编译器的语言实现能力和优化能力增强,应用运行时的开销更小
软硬件协同
编译器与芯片实现软硬件协同优化,充分发挥硬件能效,应用体验更佳
多平台支持
支持面向多样化的终端设备平台进行编译和运行,根据设备特征提供便捷的开发与部署策略,提高开发效率
环境配置说明:
硬件推荐配置
2 GHz 双核处理器或者更高等级CPU
2 GB 系统内存及以上
200GB 可用磁盘空间
开发环境推荐
您需要安装一个64位版本的Ubuntu(推荐Ubuntu 16.04)
sudo apt-get -y install openjdk-8-jdk git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev libc6-dev-i386 lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z-dev ccache libgl1-mesa-dev libxml2-utils xsltproc unzip lib32z1-dev qemu g++-multilib gcc-multilib python3-paramiko python-paramiko python-jenkins python-requests python-xlwt libglib2.0-dev libpixman-1-dev linux-libc-dev:i386 sudo apt-get -y install gcc-5-aarch64-linux-gnu g++-5-aarch64-linux-gnu
安装Clang编译器并完成配置(用于编译方舟编译器代码)
下载clang+llvm-8.0.0-x86_64-linux-gnu-ubuntu-16.04
LLVM下载地址: http://releases.llvm.org/download.html#8.0.0
放置到openarkcompiler/tools目录,打开openarkcompiler/build/config/BUILDCONFIG.gn文件,将GN_C_COMPILER、GN_CXX_COMPILER和GN_AR三个变量配置为Clang编译器所在路径,例如:
GN_C_COMPILER = "${MAPLE_ROOT}/tools/clang_llvm-8.0.0-x86_64-linux-gnu-ubuntu-16.04/bin/clang" GN_CXX_COMPILER = "${MAPLE_ROOT}/tools/clang_llvm-8.0.0-x86_64-linux-gnu-ubuntu-16.04/bin/clang++" GN_AR = "${MAPLE_ROOT}/tools/clang_llvm-8.0.0-x86_64-linux-gnu-ubuntu-16.04/bin/llvm-ar"
其中${MAPLE_ROOT}为openarkcompiler源码根目录。
安装Ninja、GN并完成配置
下载Ninja(v1.9.0)及GN(Linux Version) Ninja下载地址: https://github.com/ninja-build/ninja/releases
GN下载地址:https://archive.softwareheritage.org/browse/content/sha1_git:2dc0d5b26caef44f467de8120b26f8aad8b878be/raw/?filename=gn
将GN和Ninja可执行程序放置到openarkcompiler/tools目录,打开openarkcompiler/Makefile文件,将GN和NINJA两个变量配置为GN和Ninja可执行程序所在路径。例如:
GN := ${MAPLE_ROOT}/tools/gn/gn NINJA := ${MAPLE_ROOT}/tools/ninja_1.9.0/ninja
常见问题:
Q1:方舟编译器开源有官方网站吗?
A1:孵化期间,官方网站为:https://www.openarkcompiler.cn;正式毕业后的官网待定。
Q2:方舟编译器是一次性全部代码吗?
A2:
首次开源范围是编译器 IR( Intermediate Representation)、RC(Reference Counting)和多语言设计思想等,用于与业界、学术界沟通交流。后续将陆续开源编译器前端、后端,支持其它语言(如 JavaScript)的编译等,当前部分Java语言特性和JVM虚拟机特性的支持未包括在本次开源代码中,包括:annotation、lambda表达式、泛型等。目前仍有很多地方不完善,会在社区陆续迭代,遇到问题请在社区提交 issue,欢迎在社区继续讨论设计和代码共建。。
Q3:通过哪些渠道可以获取方舟编译器的框架源码?
A3:孵化期间,开发者可以通过如下代码托管网址获得相关代码和文档,供参考学习、了解方舟编译器的架构和代码。
华为云托管地址:https://code.opensource.huaweicloud.com/HarmonyOS/OpenArkCompiler。
开源中国码云托管地址:https://gitee.com/harmonyos/OpenArkCompiler
Q4:方舟编译器开源路标是怎样的?
A4:方舟编译器从 2019 年 8 月开始开源,欢迎广大的应用开发者、手机厂商、软件从业人员一起共建开源社区和生态。 开源计划大体上这样安排:2019 年 8 月重点开源框架部分;后续将陆续开源编译器前端、后端;支持 Java 程序编译、JavaScript 语言应用的编译等。
Q5:还有哪些方式可以获取方舟编译器的相关信息?
A5:方舟编译器有官方微信公众号:开源方舟编译器
大家可以关注,及时获得相关信息。
Q6:方舟编译开源面向全球开发者吗?英文网站何时上线?
A6:方舟编译器是向全球开发者进行开源,因此,官方网站和代码托管平台均面向全球开发者开放。目前英文版网站正在紧张的开发及内测,计划将于 2019 年 Q4 上线。
Q7:方舟编译器源码托管计划是怎么的?
A7:孵化委员会期间,方舟编译器代码是托管在华为云上面。在未来走向开放治理以后,将由所挂靠机构选择的平台进行托管。如果挂靠的机构采取了 X 平台,我们就采用这个机构的代码托管模式进行托管。
当前代码托管的地址:https://code.opensource.huaweicloud.com/HarmonyOS/OpenArkCompiler
所有相关信息请以方舟编译器开源官方网站发布为准。