- 軟件介紹
- 軟件截圖
- 相關(guān)軟件
- 相關(guān)閱讀
- 下載地址
電腦軟件推薦: Xmind Zen 2020免激活版 (已驗(yàn)證可用) vmPing v1.3.21 綠色中文版 同花順遠(yuǎn)航版 v7.9.3.1 官方版本 Windows Firewall Control v6.0.2.0
華為方舟編譯器是華為首次完全自主開發(fā)的編譯器,涵蓋編譯器、工具鏈和運(yùn)行時(shí)等關(guān)鍵組件,支持多種編程語言的編譯。它能夠?qū)ava程序編譯為aarch64匯編指令,開發(fā)者可以基于開源代碼和二進(jìn)制文件構(gòu)建出編譯器工具鏈,有效解決安卓程序“邊解釋邊執(zhí)行”導(dǎo)致的低效問題。如果您需要使用華為方舟編譯器,可以通過以下鏈接獲取。
華為方舟編譯器使用指南
推薦的開發(fā)環(huán)境
請(qǐng)安裝64位版本的Ubuntu(推薦使用Ubuntu 16.04)。
執(zhí)行以下命令安裝必要的工具和庫:
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編譯器并進(jìn)行配置(用于編譯方舟編譯器代碼)。
下載clang+llvm-8.0.0-x86_64-linux-gnu-ubuntu-16.04,并將其放置到openarkcompiler/tools目錄。打開openarkcompiler/build/config/BUILDCONFIG.gn文件,將GN_C_COMPILER、GN_CXX_COMPILER和GN_AR_COMPILER三個(gè)變量指向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并進(jìn)行配置。
下載Ninja(v1.9.0)和GN(Linux版本),將GN和Ninja可執(zhí)行文件放入openarkcompiler/tools目錄。打開openarkcompiler/Makefile文件,設(shè)置GN和NINJA變量為可執(zhí)行文件的路徑,例如:
GN := ${MAPLE_ROOT}/tools/gn/gn
NINJA := ${MAPLE_ROOT}/tools/ninja_1.9.0/ninja
華為方舟編譯器的特色
多語言整合
支持將同一應(yīng)用中的多種語言代碼進(jìn)行聯(lián)合編譯和優(yōu)化,從而消除不同語言間的性能差異,降低開發(fā)者的優(yōu)化成本。
輕量級(jí)運(yùn)行時(shí)
通過增強(qiáng)編譯器的語言實(shí)現(xiàn)和優(yōu)化能力,應(yīng)用運(yùn)行時(shí)的開銷得到顯著降低。
軟硬件協(xié)同
編譯器與硬件之間的協(xié)同優(yōu)化充分發(fā)揮了硬件的性能,提升了應(yīng)用的用戶體驗(yàn)。
多平臺(tái)支持
支持在多種終端設(shè)備平臺(tái)上進(jìn)行編譯和運(yùn)行,依據(jù)設(shè)備特性提供便捷的開發(fā)和部署策略,提高開發(fā)效率。
華為方舟編譯器的功能
一、在設(shè)計(jì)階段,APK可即時(shí)可執(zhí)行,并支持跨語言的表達(dá)平臺(tái)
在方舟編譯器中,已經(jīng)編譯的APK通過靜態(tài)編譯轉(zhuǎn)換為序列號(hào)后進(jìn)行安裝,這其實(shí)是AOT,無需繁瑣的虛擬機(jī),提高了運(yùn)行速度和效率。作為開發(fā)者,您還可以根據(jù)不同程序的特性選擇相應(yīng)的編譯優(yōu)化方案,而不是依賴安卓官方的統(tǒng)一虛擬機(jī)方案。
二、方舟編譯器的運(yùn)行時(shí)清理機(jī)制
現(xiàn)代安卓手機(jī)的運(yùn)行內(nèi)存通常較大,6GB已經(jīng)是常見配置。除了程序體積龐大外,安卓程序運(yùn)行過程中產(chǎn)生的垃圾也很難處理。傳統(tǒng)方法需停止程序來清理,這往往導(dǎo)致“卡頓”。華為方舟編譯器則利用多線程的特性,例如,在“中關(guān)村線上”APP中,如果線程A在運(yùn)行,線程B可以在此時(shí)進(jìn)行垃圾清理,確保程序流暢運(yùn)行,避免中斷,提高資源利用率。
三、應(yīng)用級(jí)編譯優(yōu)化
編譯是方舟編譯器的核心功能,也是評(píng)估編譯器質(zhì)量的重要標(biāo)準(zhǔn)。
由于安卓應(yīng)用依賴于虛擬機(jī),無法針對(duì)不同應(yīng)用進(jìn)行靈活的虛擬機(jī)優(yōu)化。安卓的ART AoT和JIT動(dòng)態(tài)編譯受限于手機(jī)資源,因此只能使用簡(jiǎn)單的優(yōu)化算法。而方舟編譯器在應(yīng)用設(shè)計(jì)階段進(jìn)行編譯,允許靈活選擇不同的優(yōu)化策略,同時(shí)在編譯時(shí)不受手機(jī)性能限制,能夠使用更復(fù)雜的優(yōu)化算法,從而使每個(gè)應(yīng)用的性能達(dá)到最佳。
方舟編譯器還能夠理解程序特性,使用適當(dāng)?shù)闹噶顏韴?zhí)行程序,從而最大程度發(fā)揮芯片的性能。
目前,方舟編譯器專注于Java代碼性能,未來將支持多種編程語言(包括C/C++、JS等)和不同的芯片架構(gòu)(如CPU、GPU、IPU等),覆蓋更廣泛的應(yīng)用場(chǎng)景。
方舟編譯器改變了系統(tǒng)和應(yīng)用的編譯與運(yùn)行機(jī)制,能夠直接將高級(jí)語言編譯為機(jī)器碼,使手機(jī)能直接理解“高級(jí)語言”,消除了虛擬機(jī)動(dòng)態(tài)編譯帶來的額外開銷,提升了手機(jī)的運(yùn)行效率。
-
華為方舟編譯器 v0.4下載地址
