方舟編譯器火了,華為在底層重造安卓系統,目標超越蘋果iOS

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

在華為P30系列手機的發布會上,有三頁PPT,是講方舟編譯器的。

這三頁內容,在P30系列手機的光環下並不出眾,但卻堪稱是一場安卓的性能革命,將顛覆安卓系統的體驗。

最近,我與華為消費者BG軟體部總裁王成錄博士進行了深度交流,試圖了解方舟編譯器、EROFS超級文件系統以及華為消費者業務軟體業務的最新動向。



方舟編譯器:在底層重造安卓系統體驗

據王成錄透露,在方舟編譯器發布當天,電話被打爆了,業界的開發者都高度關注。

為什麼會這樣?因為方舟編譯器是對安卓底層機制的重構,給用戶體驗帶來的提升是顛覆性的。

它解決的是安卓手機上最大的痛點:「卡頓」。

編譯器,就像是人類和機器溝通的橋樑,承擔著將高級語言「翻譯」成機器能懂的機器碼,並按照指令運行。

但是,在安卓系統中,編譯器卻有一個繞不過的坎兒:虛擬機。

安卓系統雖然在不斷演進,但始終需要虛擬機來實現解釋和執行。


用翻譯的方式來比喻,更容易理解。

安卓程序的虛擬機中有解釋器和編譯器,相當於是有兩個翻譯在運行。

解釋器好像現場翻譯,演講者講一句,就需要停下來翻譯一句給編譯器,編譯器則結合上下文一次翻譯一大段。

兩個翻譯同時在搞,於是你聽到的內容就是斷斷續續的,你的系統就會變得非常卡頓。

而且,虛擬機的統一回收內存也是卡頓的罪魁禍首之一,Java的虛擬機模式提供了內存GC(垃圾回收)機制,內存垃圾是集中回收,但全局回收時需要短暫中斷應用,成為隨機卡頓的根因之一。

那麼,方舟編譯器帶來的顛覆在哪裡呢?首先,方舟的內存回收機制是隨用隨回收,回收時無需暫停應用,因內存回收的隨機卡頓就消除了。

其次,方舟編譯器是在應用打包的時候直接編譯出了機器指令,無需繁瑣的虛擬機運行,徹底消除了虛擬機的動態編譯的額外開銷,從邊翻譯邊執行到提前編譯機器碼直接執行(運行時無需再編譯),大幅提升了效率,讓性能得到大幅提升。

用量化的方式可以很好地看到這種性能提升的效果:有了方舟編譯器的手機,能實現系統操作流暢度提升24%,系統響應性能提升44%。



能實現這樣的效果,方舟編譯器的內存回收機制也功不可沒。

原來虛擬機的內存回收是統一進行的,全局回收時需要暫停應用(導致卡頓);而方舟編譯器則是內存隨用隨回收,回收時無需暫停應用,顯然能夠避免卡頓。

方舟編譯器看起來深奧,但是對應用開發者和用戶來說卻很簡單。

王成錄說,對於應用開發者無需修改代碼,只需要用方舟編譯器重新編譯,就能帶來性能的提升。

對於用戶來說,只要在應用市場下載編譯過的應用,就直接能享受到性能提升的好處。



重新編譯,會帶來應用安裝包和安裝後占用空間的增大,以微博極速版為例,安卓9.0的apk是9.7Mb,安裝後是37.5Mb,而使用方舟編譯器後的安裝文件apk是23Mb,安裝完後大約不到50Mb。

但是,使用方舟編譯器後的性能提升卻是顛覆性的,微博極速版的操作流暢度提升了60%!

一句話,方舟編譯器給安卓程序的性能提升結果非常顯著。

這個性能提升可以用應用執行時間來衡量,而應用執行時間=應用執行指令總條數X平均每條指令所用CPU cycle數/ CPU頻率,CPU頻率由手機硬體決定,方舟編譯器可以實現平均每條指令所用CPU cycle數更少、應用執行指令總條數更少,從而帶來更快的應用執行時間。

同樣用翻譯來比喻這種編譯帶來的性能提升。

「「What happens in Vegas, stays in Vegas」如果比作最初的應用,如果不編譯,翻譯可能是「在拉斯維加斯發生的一切,就留在拉斯維加斯」,而方舟編譯器編譯帶來的則是「勿念過往 活在當下」,顯然要好得多。

板凳要坐十年冷,優化安卓系統是持久戰

方舟編譯器火了,但是寶劍鋒從磨礪出,梅花香自苦寒來,這一切,來自於「板凳要坐十年冷」的堅持和努力。

王成錄透露,早在2009年,華為就創建了編譯組,因為海思做了晶片以後,需要有自己的編譯器才能真正發揮晶片的能力。

從2013年開始,華為推出了自己的編譯器HCC,用在基站領域,這可以說是方舟編譯器的前身。

到了2014年,以Fred Chow等為代表的眾多技術人才加入,在2016年華為成立編譯器與程式語言實驗室,一直到現在推出方舟編譯器。



編譯器作為系統軟體,真的是一個「板凳要坐十年冷」的工程,穩得住才能做下來,非常的複雜。

王成錄感慨地說,中國有眾多軟體研發人員,但國內一直缺乏領先的系統軟體,因為大家基本上都集中在應用軟體領域,我希望中國的軟體人員能共同努力,能把中國的系統軟體做好,中國軟體未來的希望,是一定要有自己的系統軟體,這樣中國的軟體行業才能真正做強做大。

事實上,回顧華為EMUI系統的發展史,就是一部安卓系統的優化史,也折射出華為「板凳要坐十年冷」的精神。

從EMUI5.0系統的「天生快,一生快」,到EMUI8.2的GPU Turbo,到EMUI9.0的Link Turbo,再到現在的方舟編譯器以及EROFS超級文件系統,都是如此。



說到這裡,要多說幾句EROFS超級文件系統,這也是和方舟編譯器類似的底層顛覆性技術。

EROFS超級文件系統使用專利壓縮算法,幾乎不存在無效讀取。

它讓隨機讀性能提升了20%,系統可用空間多2GB。

而且,只讀設計,讓系統分區更加安全。



王成錄說,我們每走一步,大家看到的是發布黑科技,但華為不是無意為之,我們一直在圍繞性能這條線找最主要的矛盾,去解決。

例如,EMUI5.0解決的是最核心的卡頓問題,GPU Turbo解決的是遊戲流暢度問題,Link Turbo解決的是網絡連接問題等等。

那麼,現在最新的EMUI系統和iOS相比處於什麼狀態呢?王成錄說,EMUI9.1的DNA和iOS已經幾乎一樣,目前EROFS文件系統、通信、連接模塊已經領先iOS,未來,EMUI會有更多模塊追趕iOS,甚至超過iOS。

後記:未來更是一場生態戰

誠然,安卓系統要想真正超越iOS的體驗,需要有兩個戰場,一個是深度技術的創新戰場,另一個是開放生態的生態戰場。

一方面,通過方舟編譯器、EROFS超級文件系統、Link Turbo、GPU Turbo等一系列的深度技術創新,華為的EMUI系統正在接近,甚至在某些方面超越iOS的體驗。

另一方面,華為也在開放生態上進行布局。

以方舟編譯器和EROFS為例,華為都選擇了向業界開源。

據了解,方舟編譯器將在今年8月舉行的華為終端開發者大會上對框架代碼開源,開發者可以研究參考;將在今年11月的綠盟開發者大會上將完整的方舟編譯器代碼開源,開發者可以編譯使用。



王成錄說,方舟編譯器是個通用技術,目前是基於ARM指令集開發的,適用於所有ARM晶片平台,不限於安卓;可以適用ICT行業。

未來可基於具體晶片指令集進行開發。

甚至所有的安卓手機廠商都將從中受益。

方舟編譯器編譯過的應用,可以適用於其他安卓手機,這讓其他安卓手機用戶也將獲益匪淺。

這點聽上去有點「無私」,但仔細思量,卻是付出即收穫。

安卓手機的整體體驗比蘋果要好,有利於包括華為在內的所有廠家。

「實際上做這件事情,只靠華為一家不可能實現,我們非常希望Android陣營所有合作夥伴一起努力,這是華為將方舟編譯器向業界開源最核心的原因,希望大家將這個編譯器從各自場景、各自平台,不斷去打磨它,才能實現最終給用戶帶來最好體驗的理想目標。

」王成錄如此說。

安卓系統因為華為的參與,正在變得越來越好,這中間不僅有努力,更有決心。

王成錄透露,文件系統F2FS在EMUI 5.0更換時,自己在內部簽了軍令狀,因為這個工作實在是風險極大,但是華為內部做了大量的測試,才讓這個更換工作有驚無險。

「簡單來說,三年前,我們70%的東西是跟隨Google,他們做了很多貢獻,我們受益很大,但是今天我們也有很多創新點反哺給原生安卓系統,包括我們的F2FS、無線投屏等創新技術點都有反哺原生安卓系統,使安卓變得更好。

未來的華為EMUI系統將是什麼樣?除了深度的技術創新,也在走向開放的生態。

其一,是讓業務更豐富,AI就是其中的典型,華為從做AI的第一天起,就把AI所有能力開放給第三方,使能現在的應用更豐富更強大;其二,是讓體驗變得更流暢,方舟編譯器、Link Turbo等也在走向開放;其三,是走向全場景體驗,從手機到手機與PC的連接、手機與車的連接、手機與跑步機的連接等等。

例如,在最近上海車展上,華為車聯網戰略中的HiCar就是如此。



所以,方舟編譯器、EROFS超級文件系統等顛覆性的技術創新,只是華為在軟體領域不斷突破和努力的縮影。

華為正在憑藉自己的技術實力和不斷努力,重造安卓系統的體驗。

除了硬體的技術突破,軟體也在用戶體驗中扮演越來越重要的角色。

這就是軟體的力量,通過持續的技術進步,持續的生態開放,讓消費者感受到,華為的產品體驗在進步,安卓系統的體驗在進步。


請為這篇文章評分?


相關文章 

P30黑科技揭曉 EMUI 9.1革新安卓編譯機制

4月11日,華為上半年度旗艦P30系列在上海正式發布,國內版EMUI 9.1系統的新特性也悉數亮相,其中最亮眼的要數「華為方舟編譯器」的「首秀」。華為表示使用這一工具能夠從程序編譯與運行機制上提...