要在安卓系統(tǒng)底層進行優(yōu)化,除了技術難題外,,關鍵在于如何跟谷歌達成合作,。
P30系列中國發(fā)布會上,,華為推出方舟編譯器,可以做到在安卓底層優(yōu)化架構(gòu),,引起業(yè)內(nèi)關注,。
中興事件后,安卓系統(tǒng)禁用的風險屢屢被探討,。此前,,華為曾表態(tài),自己有手機系統(tǒng)備份,,但不到萬不得已不會啟用,。
當然,方舟編譯器并沒有取代安卓系統(tǒng),,而是跟安卓系統(tǒng)進行深度合作,,以這種方式來提升華為手機的體驗,并提升華為對抗風險的能力,。
編譯器是一種語言(通常為高級語言)翻譯為另一種語言(通常為低級語言)的程序,,可以將源代碼翻譯成可以被計算機或虛擬機執(zhí)行的代碼。
華為方舟編譯器可供開發(fā)者,,在開發(fā)環(huán)境一次性將高級語言編譯為機器碼,,可以讓手機安裝的APP運行效率明顯提升,。
據(jù)華為實驗室測試數(shù)據(jù),EMUI 9.1在僅僅對系統(tǒng)組件System Server應用了華為方舟編譯器后,,系統(tǒng)操作流暢度提升24%,,系統(tǒng)響應性能提升44%。新浪微博極速版是第一款采用方舟編譯器的第三方應用,,操作流暢度提升60%,。
華為為什么要做方舟編譯器?
4月25日,,CBG軟件部總裁王成錄博士在采訪中解釋:
由于安卓的開放性,,對上層應用沒有強制規(guī)則。比如安卓的第三方應用市場非常多,,數(shù)量無法統(tǒng)計,;安卓的安裝方式也非常多,通過郵件都可以安裝,,由此帶來的問題比較多,。所以安卓用戶要真正能夠獲得好的體驗,手機廠家只把手機(硬件)做好是不夠的,,(還需要對軟件進行提升),。
王成錄打了一個比方:假設手機是一個人,過去這個人身體體質(zhì)弱容易得病,,但是今天把這個人身體鍛煉好了非常強壯了,,但是吃的東西沒有保障。從應用市場下載的東西有問題,,這個人免疫力再好,也難免受食物所累,。
手機內(nèi)部的資源是有限的,,要想取得好的用戶體驗,就要對系統(tǒng)硬件資源機型合理調(diào)配,。華為先后發(fā)布了多種新技術,,包括AI芯片、GPU Turbo,、Link Turbo來提升手機性能,。在此之后,編譯器成為安卓機性能提升最大的難題,,為了攻克這一難關,,華為推出了方舟編譯器。
做編譯器是一個非常復雜的工程,。據(jù)王成錄介紹,,華為2009年就開始為編譯器做準備,,2013年有了自己的編譯器HCC,2014年引入了Fred Chow等技術大牛,,來做華為編譯器的主架構(gòu),。此后,2012年實驗室成立了編譯器與編程語言實驗室,,今年4月推出了方舟編譯器,。
相比于安卓原生系統(tǒng),方舟編譯器可以明顯提升系統(tǒng)運行效率:
首先,,它是多語言聯(lián)合優(yōu)化編譯器,,消除跨語言調(diào)用開銷,這是影響Android性能消耗較大的核心原因之一,。
其次,,把虛擬機去掉了,內(nèi)存回收機制,?!拔覀冊趦?nèi)存回收上,華為現(xiàn)在這方面做的比Android領先的非常高,,內(nèi)存回收的機制和效率非常高,。”王成錄表示,。
虛擬機是安卓系統(tǒng)的關鍵部分之一,。虛擬機可以幫助安卓系統(tǒng)適配各種處理器,實現(xiàn)跨平臺操作,,不管是X86機器,,還是ARM機器,或是其他CPU的機器都沒有問題,。但這樣一來,,只要裝上安卓系統(tǒng),虛擬機也會占用額外的系統(tǒng)資源,。
“我們編譯器的目標是上層業(yè)務代碼不需要改,,大家只需要通過方舟編譯器重新編譯就足夠了。現(xiàn)在還需要開發(fā)者作一些對接,,但很快隨著一些APP進來,,這個目標很快就能實現(xiàn)?!?/p>
據(jù)王成錄介紹,,方舟編譯器目前是基于ARM指令集開發(fā)的,2019年全面開源,適用于所有ARM平臺,,不限于安卓,,未來可基于具體芯片指令集進行開發(fā)。
其實,,要在安卓系統(tǒng)底層進行優(yōu)化,,除了技術難題外,關鍵在于如何跟谷歌達成合作,。
2012年,,因為基于安卓框架的阿里云OS去掉了谷歌的虛擬機,代之以自行研發(fā)的虛擬機,,谷歌反對宏碁生產(chǎn)搭載阿里云OS的智能手機,,并宣稱要取消其GMS授權。由于谷歌的反對,,此事就此擱淺,。華為則跟谷歌達成了合作,在華為手機系統(tǒng)國內(nèi)版本上,,可以采用方舟編譯器,。
王成錄也表示,華為在安卓底層的優(yōu)化工作,,是產(chǎn)業(yè)的共同資產(chǎn),,華為愿意將方舟編譯器貢獻給整個安卓生態(tài),這個過程需要谷歌,、手機廠家,、應用開發(fā)者一起努力,讓編譯器更加完善,。