華為方舟編譯器是怎麼改變安卓底層架構的?

文章推薦指數: 80 %
投票人數:10人

P30系列中國發布會上,華為推出方舟編譯器,可以做到在安卓底層優化架構,引起業內關注。

中興事件後,安卓系統禁用的風險屢屢被探討。

此前,華為曾表態,自己有手機系統備份,但不到萬不得已不會啟用。

當然,方舟編譯器並沒有取代安卓系統,而是跟安卓系統進行深度合作,以這種方式來提升華為手機的體驗,並提升華為對抗風險的能力。

編譯器是一種語言(通常為高級語言)翻譯為另一種語言(通常為低級語言)的程序,可以將原始碼翻譯成可以被計算機或計算機或虛擬機執行的代碼。

華為方舟編譯器可供開發者,在開發環境一次性將高級語言編譯為機器碼,可以讓手機安裝的APP運行效率明顯提升。

據華為實驗室測試數據,EMUI 9.1在僅僅對系統組件System Server應用了華為方舟編譯器後,系統操作流暢度提升24%,系統響應性能提升44%。

新浪微博極速版是第一款採用方舟編譯器的第三方應用,操作流暢度提升60%。

華為為什麼要做方舟編譯器?

4月25日,CBG軟體部總裁、王成錄博士在採訪中解釋:

由於安卓的開放性,對上層應用沒有強制規則。

比如安卓的第三方應用市場非常多,數量無法統計;安卓的安裝方式也非常多,通過郵件都可以安裝,由此帶來的問題比較多。

所以安卓用戶要真正能夠獲得好的體驗,如果手機廠家只把手機(硬體)做好是不夠的,(還需要對軟體進行提升)。

王成錄打了一個個比方:假設手機是一個人,過去這個人身體體質弱容易得病,但是今天把這個人身體鍛鍊好了非常強壯了,但是吃的東西沒有保障。

從應用市場下載的東西有問題,這個人免疫力再好,也難免受食物所累。

手機內部的資源是有限的,要想取得好的用戶體驗,就要對系統硬體資源機型合理調配。

華為先後發布了多種新技術,包括AI晶片、GPU Turbo、Link Turbo來提升手機性能。

在此之後,編譯器成為安卓機性能提升最大的難題,為了攻克這一難關,華為推出了方舟編譯器。



做編譯器是一個非常複雜的工程。

據王成錄介紹,華為2009年就開始為編譯器做準備,2013年有了自己的編譯器HCC,2014年引入了Fred Chow等技術大牛,來做華為編譯器的主架構。

此後,2012年實驗室成立了編譯器與程式語言實驗室,今年4月推出了方舟編譯器。

相比於安卓原生系統,方舟編譯器可以明顯提升系統運行效率:

首先,它是多語言聯合優化編譯器,消除跨語言調用開銷,這是影響Android性能消耗較大的核心原因之一。

其次,把虛擬機去掉了,內存回收機制。

「我們在內存回收上,華為現在這方面做的比Android領先的非常高,內存回收的機制和效率非常高。

」王成錄表示。

虛擬機是安卓系統的關鍵部分之一。

虛擬機可以幫助安卓系統適配各種處理器,實現跨平台操作, 不管是X86機器,還是ARM機器,或是其他CPU的機器都沒有問題。

但這樣一來,只要裝上安卓系統,虛擬機也會占用額外的系統資源。

「我們編譯器的目標是上層業務代碼不需要改,大家只需要通過方舟編譯器重新編譯就足夠了。

現在還需要開發者作一些對接,但很快隨著一些APP進來,這個目標很快就能實現。

據王成錄介紹,方舟編譯器目前是基於ARM指令集開發的,適用於所有ARM平台,不限於安卓,未來可基於具體晶片指令集進行開發。

華為方舟編譯器會在2019年全面開源,現在百分之八九十的第三方應用,可以在一天內編譯完。

其實,要在安卓系統底層進行優化,除了技術難題外,關鍵在於如何跟谷歌達成合作。

2012年,谷歌反對宏碁生產搭載「阿里雲」作業系統的智慧型手機,並宣稱要取消其相應GMS授權,因為基於安卓框架的阿里雲OS曾去掉了谷歌的虛擬機,採用自行研發的虛擬機。

由於谷歌的反對,此事就此擱淺。

華為則跟谷歌達成了合作,在華為手機系統國內版本上,可以採用方舟編譯器。

王成錄也表示,華為在安卓底層的優化工作,是產業的共同資產,華為願意將方舟編譯器貢獻給整個安卓生態,這個過程需要谷歌、手機廠家、應用開發者一起努力,讓編譯器更加完善。

此外,如果有可能的話,這個編譯器基礎上,華為希望能夠對現有的高級語言做一些擴充和修改,甚至於定製,這樣這種語言在固定平台運行效果最好。


請為這篇文章評分?


相關文章