方舟编译器  v0.2 官方版

方舟编译器

版本:v0.2 官方版

大小:8.80M

类别:应用工具

时间:2020-10-02

软件介绍

  • 方舟编译器

    方舟编译器是一款可以支持多种语言的编译工具,这款方舟编译器是由华为打造并且推出的,在这款编译器中采用了静态编译的模式,这样就能够实现全程执行机器码,这样的好处就是可以提高我们程序的运行效率,让我们的用户可以使用到更加流畅的软件,并且这款编译器是可以实现多个芯片平台的联合编译,这样就可以提高用户的开发效率了,能够以较低的优化成本来进行操作,需要这款工具的用户欢迎大家来下载这款编译器。

    方舟编译器优势:

    多语言联合:将同一应用中的不同语言代码联合编译、联合优化,消除语言间的性能“鸿沟”,降低开发者的优化成本

    轻量运行时:通过编译器的语言实现能力和优化能力增强,应用运行时的开销更小

    软硬件协同:编译器与芯片实现软硬件协同优化,充分发挥硬件能效,应用体验更佳

    多平台支持:支持面向多样化的终端设备平台进行编译和运行,根据设备特征提供便捷的开发与部署策略,提高开发效率

    方舟编译器说明:

    一、开发阶段打包的APK就直接是可执行,并且跨语言平台

    在这款编译器里面,已经编译好的APK,会通过静态编译的方式先转换成机器码再安装,这其实是AOT,无需麻烦的虚拟机,提升运行速度和效率。并且作为开发者,还可以根据不同的程序特点,选择不同的编译优化方案,不像安卓的方式使用统一的虚拟机方案。

    二、这款编译器边运行变清理,内存清爽

    现在安卓手机的一大特色就是内存越来越大,6GB都是老人机的配置了。这除了程序大以外还有安卓的程序运行产生垃圾多有关系。那么清理垃圾呢?则需要暂停程序,也就会顿一下,即所谓的“卡”。华为的这款编译器则是利用程序多线程运行的特点。打个比方,您现在正在用的“中关村在线”这个APP用了AB两个线程,在华为的P30手机中,那么线程A运行的时候,B在清理垃圾,然后A线程清理垃圾的时候B线程在运行,程序运行不中断,垃圾处理不停,做到了又连贯、又节约系统资源。

    三、方舟编译器,应用级编译优化

    代码优化是编译器最为核心的功能,也是评判一个编译器优劣最重要的标准。

    当前由于安卓应用使用了虚拟机机制,难以面向不同应用对虚拟机进行针对性的灵活优化。

    安卓ART的AoT和JIT动态编译因为是运行在手机上,受资源所限,因而只能使用简单的优化算法。

    而这款编译器由于是在应用开发阶段进行编译,所以可以允许不同应用灵活采用不同的编译优化方案,而且因为在开发环境编译不会受到手机性能的限制,可以使用更多先进的优化算法,从而使得每个应用的性能达到最佳。

    方舟编译器操作:

    开发环境推荐

    您需要安装一个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 lib 2-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_COMPILER三个变量配置为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_COMPILER = "${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:这款编译器是一次性全部代码吗?

    答:

    首次开源范围是编译器 IR( Intermediate Representation)、RC(Reference Counting)和多语言设计思想等,用于与业界、学术界沟通交流。接下来将陆续开源编译器前端、后端,支持其它语言(如 )的编译等,当前部分Java语言特性和JVM虚拟机特性的支持未包括在本次开源代码中,包括:annotation、lambda表达式、泛型等。目前仍有很多地方不完善,会在社区陆续迭代,遇到问题请在社区提交 issue,欢迎在社区继续讨论设计和代码共建。。

    Q2:通过哪些渠道可以获取这款编译器的框架源码?

    答:

    孵化期间,开发者可以通过如下代码托管网址获得相关代码和文档,供参考学习、了解这款编译器的架构和代码。

    华为云托管地址:https://code.opensource.huaweicloud.com/HarmonyOS/OpenArkCompiler。

    开源中国码云托管地址:https://gitee.com/harmonyos/OpenArkCompiler

    Q3:这款编译器开源路标是怎样的?

    答:

    这款编译器从 2019 年 8 月开始开源,欢迎广大的应用开发者、手机厂商、软件从业人员一起共建开源社区和生态。 开源计划大体上这样安排:2019 年 8 月重点开源框架部分,接下来将陆续开源编译器前端、后端;支持 Java 程序编译、 语言应用的编译等。

    Q4:这款编译器开源使用的是什么License?

    答:

    这款编译器采用木兰 License。 木兰 License 由业界众多专家和公司集体共建,并非华为主导。木兰 License 具体的好处,详见专业点评:

    开源中国:https://www.oschina.net/news/108840/mulanpsl-the-1st-opensource-license-of-china

    开源社:https://mp.weixin.qq.com/s/1xqxxiNKhcgw4RRspAaW2A

    InfoQ:https://www.infoq.cn/article/KrZAbAcJrxCU27vKj*JE

    Q5: 如何确认下载包来源可靠?md5校验码是多少?

    答:

    OpenArkCompiler-0.2-ubuntu-16.04-x86_64.tar.gz 包的 MD5码是: e7dc8b8c242f2d26429e2ad71dae3112

    OpenArkCompiler-0.2.tar.gz 包的MD5码是:1bf859a67c8b9a2d4080bdaf25ef6181

    手游排行榜

    • 最新排行
    • 最热排行
    • 评分最高