自華為P30系列發(fā)布以來,火了的除了手機新品本身以外,還有近日越來越“紅”的黑科技——華為方舟編譯器。
改造Android、媲美iOS、安卓手機從此不卡頓……一時間,輿論對華為方舟編譯器的渲染近乎神話。據(jù)說自發(fā)布會結(jié)束后,華為軟件內(nèi)部團隊的電話幾乎被打爆,很多開發(fā)者都想了解方舟編譯器的更多信息。
那么,華為方舟編譯器究竟是干嘛的?被余承東稱為“安卓性能革命”的方舟編譯器對于華為手機的戰(zhàn)略發(fā)展有何意義?對于Android陣營以及整個產(chǎn)業(yè)又將帶來哪些影響呢?
傳統(tǒng)編譯器繞不過去的“坎兒”
首先,來看看啥是編譯器?
按照定義:編譯器是將“一種語言(通常為高級語言)”翻譯成能直接被計算機或虛擬機執(zhí)行的目標代碼,編譯器的效率將直接影響程序運營性能和效率。
簡單來說,編譯器就是人類和機器溝通的橋梁。比如一部手機,里面的程序是由程序員使用高級語言開發(fā)的,當我們要啟動某個程序(比如打開一個APP)的過程中,編譯器扮演著“翻譯者”的角色,把高級語言轉(zhuǎn)換成機器能讀懂的機器碼,并按照指令運行。
編譯器如此神通廣大,但在安卓的世界里,它卻有一道繞不過去的“坎兒”那就是VM。VM是運行在安卓程序中的一個虛擬計算機,它還帶了2個翻譯——解釋器和編譯器。當用戶打開APP過程中,虛擬機開始運行,為了把高級語言轉(zhuǎn)換成機器能聽懂的語言,虛擬機中有解釋器和編譯器兩個翻譯在運行;解釋器好像現(xiàn)場翻譯似的,演講者講一句它就停下來翻譯一句給編譯器聽,然后編譯器結(jié)合上下文一次翻譯一大段內(nèi)容讓機器聽懂。兩個翻譯同時發(fā)聲,手機聽到的內(nèi)容只能是斷斷續(xù)續(xù),一邊翻譯一邊執(zhí)行,這也是安卓卡頓的一個重要來源。
對此,華為消費者BG軟件部總裁王成錄指出,目前安卓系統(tǒng)主要在手機上進行編譯,雖然谷歌一直在不斷提升原生安卓編譯器效率,比如安卓5.0版本之前安卓采用解釋執(zhí)行+JIT方式,安卓6.0開始嘗試ART虛擬機,再之后采用解釋執(zhí)行+JIT+AoT綜合模式。不過為了解決安卓程序開發(fā)的兼容性問題,ART虛擬機長期存在,安卓編譯器可以通過JIT和AoT編譯大部分Java語言,但對于Java的動態(tài)特性無能為力,仍然需要邊解釋邊執(zhí)行,這也導(dǎo)致了安卓系統(tǒng)流暢性下降。
四大亮點
從“邊翻譯邊執(zhí)行”到提前編譯機器碼
針對安卓系統(tǒng)面臨的流暢性問題尤其是編譯器問題,華為方舟編譯器的特性恰恰能夠繞過VM,消除虛擬機動態(tài)編譯的額外開銷,實現(xiàn)了開發(fā)和運行效率的兼容并舉,從“邊翻譯邊執(zhí)行”到提前編譯機器碼,直接執(zhí)行。
據(jù)王成錄介紹,華為方舟編譯器主要有以下四大亮點:
亮點1.首個多語言聯(lián)合優(yōu)化的編譯器,消除了跨語言調(diào)用開銷。當前大部分安卓應(yīng)用都涉及不同開發(fā)語言,不同語言形成的代碼需要在運行態(tài)中進行協(xié)同從而產(chǎn)生額外消耗,而方舟編譯器是業(yè)界首個多語言聯(lián)合優(yōu)化的編譯器,開發(fā)者在開發(fā)環(huán)境中可以一次性將多語言統(tǒng)一編譯為一套機器碼,運行時無需產(chǎn)生跨語言帶來的額外消耗,并可以進行跨語言的聯(lián)合優(yōu)化,提升運行效率。
亮點2.程序運行時無需依賴虛擬機,減少了資源占用,同時實現(xiàn)了高效的內(nèi)存回收機制。
亮點3.第三,方舟編譯器可以針對不同應(yīng)用靈活編譯優(yōu)化。
亮點4.對于開發(fā)者學(xué)習(xí)和使用成本非常低。以上這些技術(shù)亮點,均能給應(yīng)用開發(fā)者帶來更多優(yōu)化自己應(yīng)用的機會。
超越蘋果三星的重要加碼
用華為的話說,方舟編譯器編譯的應(yīng)用在開發(fā)階段就已完成。也就是說,只要是經(jīng)過編譯器編譯的應(yīng)用,在應(yīng)用市場上上架了以后,用戶下載的就是編譯過的了。
華為測試結(jié)果顯示,使用方舟編譯器最終將提升24%的系統(tǒng)操作流暢度,提升44%的系統(tǒng)響應(yīng)能力,以及提升60%的三方應(yīng)用操作流暢度,“Android系統(tǒng)將比iOS系統(tǒng)還要流暢”。這一技術(shù)將正式開源給開發(fā)者,讓所有人都可以使用方舟編譯器對應(yīng)用預(yù)編譯。
在華為看來,方舟編譯器作為全新的系統(tǒng)及應(yīng)用的編譯和運行機制,從DNA層面對安卓進行了改造,解決了安卓應(yīng)用邊解釋邊運行的低效問題,讓手機能直接聽懂“高級語言”,可以說是近幾年來安卓陣營最大的根本性革新。能夠大幅降低安卓系統(tǒng)隨機卡頓的問題,打破了人機之間的藩籬,讓用戶能直觀感受到的就是使用體驗更加持久流暢。
筆者認為,也許采用方舟編譯器之后安卓系統(tǒng)以及應(yīng)用將比iOS系統(tǒng)還要流暢這個說法可能言過其實,因為iPhone和其搭載的iOS系統(tǒng)獨樹一幟、在系統(tǒng)流暢性方面仍然領(lǐng)先安卓。但有了方舟編譯器,安卓系統(tǒng)流暢性差、應(yīng)用開啟和運行速度勢必將得到大幅提升,縮小與iOS的差距,華為也成為首家在系統(tǒng)層面主動尋求顛覆式創(chuàng)新的手機廠商。
對于志在超越蘋果的華為來說,縮小安卓與iOS系統(tǒng)流暢性的差距,也將助力華為手機在超越蘋果尤其是高端市場更進一步增加實力;而對于超越三星成為成全球第一手機廠商的目標來說,雖然方舟編譯器將正式開源給開發(fā)者,使用方舟編譯器對應(yīng)用進行預(yù)編譯的APP也可能將在其他品牌手機上適配使用,但估計華為出品的方舟編譯器應(yīng)該還是在華為自家的EMUI系統(tǒng)上更加匹配、性能才能夠得到充分發(fā)揮,因此對于旨在超越三星奪冠的華為來說,方舟編譯器也將成為其爭冠之路上的重要砝碼。
-
華為
+關(guān)注
關(guān)注
216文章
34545瀏覽量
253136 -
蘋果
+關(guān)注
關(guān)注
61文章
24486瀏覽量
200187 -
編譯器
+關(guān)注
關(guān)注
1文章
1642瀏覽量
49317 -
方舟編譯器
+關(guān)注
關(guān)注
0文章
60瀏覽量
255
原文標題:媲美iOS?華為方舟編譯器真有那么玄乎嗎?
文章出處:【微信號:C114-weixin,微信公眾號:C114通信網(wǎng)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論