方舟編譯器

華為推出的編譯器平台

方舟編譯器是華為推出的首個完全自主研發的編譯器平台,於2019年8月31日正式上線。方舟編譯器已成為碼雲最快達成5000 Star的開源項目。

華為方舟編譯器是華為公司專門為軟體廠商研發的統一編程平台,包含編譯器、工具鏈、運行時等關鍵部件。該編譯器支持多種編程語言、多種晶元平台的聯合編譯與運行,能夠有效解決安卓程序“邊解釋邊執行”的低效率問題。

2019年8月31日,華為方舟編譯器開源官網正式上線。

2019年11月,華為方舟編譯器獲“2019東北亞優秀開源項目”獎。

研發背景


對比
對比
編譯器是連接人類世界與機器世界之間的一座橋樑,任何在手機上的程序都需要經歷軟體開發的過程,軟體開發使用的語言是易於程序員理解的高級語言,程序在手機上運行需要轉換成可以高效執行的機器碼,這樣的轉換過程就是由編譯器完成的。可以說編譯器是用來生成軟體的軟體,是連接軟體與晶元的橋樑,其性能,效率直接影響到最基礎的消費者體驗。

發展歷程


2019年4月,在華為P30系列國內發布會上,華為首次宣布
了華為方舟編譯器技術。
2019年8月31日,華為方舟編譯器開源官網正式上線。
方舟編譯器架構示意圖
方舟編譯器架構示意圖

技術特點


安卓系統使用Java作為編程語言,易於開發,但是不會將代碼直接編譯成機器語言,程序運行時有相當一部分代碼還需要通過手機上的虛擬機臨時同步編譯,影響程序執行的效率。華為方舟編譯器採取了靜態編譯的方式,是首個取代了安卓虛擬機模式的靜態編譯器。

性能效果


方舟編譯器採用全程執行機器碼高效運行程序,架構進一步得到優化,可供開發者在開發環境一次性的將高級語言編譯為機器碼,手機安裝應用程序后可全速運行程序,帶來效率上的極大提升。根據華為實驗室的測試數據,EMUI 9.1在僅僅對系統組件System Server應用了華為方舟編譯器后,就帶來了系統操作流暢度提升24%,系統響應性能提升44%。

開源計劃


在方舟編譯器面世之時,華為就宣布未來將這一技術開源,希望更多的APP廠商,高校,安卓手機廠商,開源社區的開發者能一同加入進來。
華為計劃在2020年將方舟編譯器完整開源,幫助開發者構建完整的工具鏈。屆時華為還將提供代碼調優工具,開發者可以選擇根據工具的優化建議來調整自己的代碼,和方舟編譯器配合獲得更優的執行效果。
截至2019年,已經有40多個頂級應用通過方舟的編譯上架到華為應用商城,未來將有更多的第三方使用方舟編譯器。同時,方舟編譯器所有代碼也將開源給業界。

獲得榮譽


2019年11月,在韓國首爾召開的第十八屆中日韓三國IT局長OSS會議暨東北亞開源軟體推進論壇上,華為OpenArkCompiler(方舟編譯器)項目獲得“2019東北亞優秀開源項目”獎項。