余承東三年前「吹牛」華為體驗超蘋果,方舟編譯器將要實現了

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

文丨壹觀察 宿藝

2016年11月華為Mate 9系列發布會後,余承東在媒體專訪時首次表示:「華為手機目標在體驗方面也超越蘋果」。

此時幾乎沒人相信。

甚至有媒體當場發微信朋友圈說:「嘴哥又吹牛了」。

即使華為Mate 9系列搭載的EMUI5.0解決了安卓長期使用不卡頓難題,但鑒於安卓系統與蘋果iOS之間在運行機制、效率與系統流暢度上的明顯差異,「體驗超蘋果」似乎也只能是個夢想。

外界不知道的是,華為消費者業務此時已成立了「編譯器與程式語言實驗室」,目標是將安卓系統底層徹底解構,通過全新編譯器從根本上一勞永逸地解決問題。

編譯器被譽為軟體行業的「明珠」,可以說是連接人類世界與數字世界的橋樑,也是計算機與網際網路技術最核心的底層技術之一。

其中的難度、風險與挑戰,可想而知。

時隔兩年半,2019年4月11日在上海的華為P30系列發布會上,華為宣布EMUI 9.1首先搭載了「方舟編譯器」與「EROFS超級文件系統」。

業界猛然發現,華為不僅實現了對安卓底層運行機制的徹底重構,甚至目標通過開源,聯合Google、手機企業與開發者共同推動安卓生態的顛覆性「換血」—— 唯有如此,安卓系統從誕生起就存在的「頑疾」才能被根除。

余承東「體驗超蘋果」的目標,顯然並不是空口吹牛。

方舟編譯器:重構安卓底層

在此之前,幾乎所有安卓手機企業在作業系統方面最大的努力,無非就是爭奪安卓最新系統版本的適配速度,以及在其基礎上推出的UI/ROM優化方案。

這相當於對原有安卓系統針對中國市場的修修補補,不僅造成了全球安卓碎片化最嚴重的市場,並且還因摻雜各種廣告收益而被用戶吐槽為「ADUI」,相當於負向優化。

只有華為選擇了一條最難、具有極高風險的路:重構安卓底層

華為消費者BG軟體部總裁王成錄博士對《壹觀察》透露,相對傳統Android系統,方舟編譯器實現了對系統底層的四大「換血」:

第一,業界首個多語言聯合優化編譯器

Android應用市場中TOP級APP,95%以上都是由多種開發語言來實現的。

這些APP的邏輯部分是Java代碼,但是為了增強app應用的安全性、可靠性、兼容性,開發者會用效率更高的C語言寫庫,供Java來調用。

但跨語言調用,一定會導致額外的性能開銷,並且調用的應用越重、開發語言越多,對系統性能的影響就會越明顯。

方舟編譯器可將不同語言代碼在開發環境中自動編譯成一套可執行的文件,直接消除了跨語言調用的開銷,大大提升了APP應用在運行環境中的高效執行,這僅僅是第一步。

第二,幹掉了安卓最關鍵,也是長期被詬病的「虛擬機」。

Android從誕生起,就是一個開源系統,要面對極其複雜的開發環境與硬體適配寬容度。

因此選擇了Java這個成熟語言,並由此帶來了Java 虛擬機——相當於虛擬了一個Java運行環境,支持跨開發語言與跨平台操作。

但同時問題也很明顯:任何一個Android手機只要安裝應用就會自動配置虛擬機,不僅占用了額外的系統資源,更重要的是,每個應用都需要通過虛擬機來完成對機器碼(二進位碼)的編譯,然後再由虛擬機發出執行命令完成應用服務。

打個比較直觀的比喻,這就相當於虛擬機里有兩個翻譯在工作,一個需要把法語翻譯成俄文,再由另一名翻譯成中文,這個過程兩個翻譯的工作是無法並行的,所以觀眾聽到的內容一定斷斷續續。

也就是說,安卓系統這種卡頓感無法避免,只能優化,但無法徹底解決問題。

因此才有開發者說,虛擬機的性能決定了安卓運行瓶頸。

這也是Google雖然在後期不斷對編譯器進行升級,但依舊無法解決系統卡頓頑疾的根本原因。

同樣重要的是,虛擬機的統一回收內存機制也是「BUG」般的存在。

安卓初期並沒有對開發者有類似蘋果iOS嚴格的開發機制,導致很多開發者都希望自己的應用儘可能地使用最大內存,以獲得更好的用戶體驗。

甚至有開發者利用這一規則漏洞,讓其APP具備後台強行喚醒功能或者自家應用的「全家桶」喚醒機制。

而Java虛擬機模式提供的內存GC(垃圾回收)機制,在內容垃圾集中回收時需要短暫中斷應用運行。

兩種情況在中國市場遭遇,無疑進一步加劇了應用的隨機卡頓問題。

這也是很多開發者甚至是手機企業自己都不相信安卓手機可以「體驗超蘋果」的重要原因。

方舟編譯器最重要的革新,就是直接幹掉了虛擬機,在開發環境中就完成了全部代碼的編譯,無論應用編程是由Java寫的還是C語言寫的,都不需要再次由虛擬機互相編譯。

手機安裝應用程式後,無需再依賴虛擬機資源,即可全速運行程序調度命令完成服務,由此消除了虛擬機動態編譯的額外開銷,帶來系統運行效率與流暢體驗上的極大提升。

數據顯示,EMUI 9.1僅僅對系統組件System Server應用了華為方舟編譯器後,就帶來了系統操作流暢度提升24%,系統響應性能提升44%。

當然,虛擬機之前被認為是安卓系統的核心,也是谷歌最敏感的部分。

國內之前有其他網際網路企業因為想用自己的虛擬機機制進行取代而遭遇谷歌的長久封殺。

華為雖然沒有進行替換,但卻是從根本上改變了安卓系統的核心運行規則,因此谷歌的態度至關重要。

華為消費者BG軟體部總裁王成錄博士

王成錄對《壹觀察》表示,這實際上要解決兩個維度的問題:第一個是作為不同程式語言的「翻譯官」,方舟編譯器本身的能力怎麼樣。

方舟編譯器的最大技術突破,是把動態語言部分全部變為靜態編譯,其核心是一定要對Java語言動態特性非常深入理解。

「就像一個優秀的翻譯官一定對漢語言文學理解的非常到位,然後再對英語理解非常到位。

」從EMUI 9.1目前帶來的系統流暢度與應用響應速度來看,方舟編譯器的技術優勢非常突出。

第二個,確實需要谷歌的認可。

王成錄透露稱,谷歌是華為的戰略合作夥伴,對華為在系統優化上的能力一直非常認可,之前華為在F2FS的文件系統、安卓優化等方面都獲得了谷歌的認同,並且延用至後來版本的系統開發中,讓更多的安卓手機企業因此獲益。

在促進安卓體驗升級方向上,華為與谷歌的態度都是開放的。

方舟編譯器在推動之初,華為就與谷歌進行了深入的溝通,目前EMUI的方舟編譯器版本首先在中國市場使用,這個也是谷歌認可的。

當然,改變整個安卓運行機制甚至是生態,需要谷歌、所有的開發者與手機企業共同推進,這也是方舟編譯器選擇開源的重要原因。

只有生態鏈產業共同推動,才能真正實現安卓系統體驗真正全面超越iOS這一終極目標。

幹掉了虛擬機,意味著系統的內存回收機制也會帶來變革。

在方舟編譯器里,編譯時為程序配備了及時回收的內存處理機制,即在程序執行過程當中同步實時處理回收。

所以方舟編譯器的垃圾回收及時又徹底,並且不需要停止進程,解決了應用隨機卡頓這一另外的「頑疾」問題。

第三,可針對不同應用靈活編譯優化。

如之前所說,翻譯器本身做的好不好,同樣是決定系統運行效率的核心底層原因,最重要的衡量標準是能不能給程序帶來性能的明顯提升。

同樣以「翻譯官」舉例,單獨單詞直譯並不是難點,難得是要翻譯的又快又好,還要適合對方語音習慣。

比如中文「夫妻肺片」怎麼翻譯成英文?如果硬翻譯,那就是「丈夫和妻子的肺片」,老外們聽著會無比驚悚。

而美國《GQ》雜誌將其翻譯為Mr and Mrs Smith(電影《史密斯夫婦》)就很容易理解和記憶了,甚至一度被美國網友評選為「年度開胃菜」。

因為不同應用的優化訴求不一樣,而現有的安卓編譯,大部分代碼在虛擬機環境運行,虛擬機的創建來自於同一套「模板」,難以作深度的優化。

方舟編譯器不一樣,每個應用編譯優化方案可以自定義,分別形成不同應用優化後的機器碼,相當於說,我們給每一個有追求的應用開發者,都有了一個把自己的應用做得更好的機會,不再受限於Android虛擬機的限制。

方舟編譯器通過了大量的優化和調整,一方面對Java語言深入了解後再細緻重建,另一方面對機器指令順序結構理解要求非常清晰,這兩方面的匹配度越高,編譯器效率越高。

一個好的編譯器,開發者一行代碼都不需要修改,性能提升10%到20%。

第四、開發者學習和使用成本低。

做作業系統的微軟,在Windows Phone上為何會失敗?其中的原因很多,但開發者學習和應用遷移成本高,收益低是其中一個非常重要的原因。

包括三星、英特爾等企業,以及中國網際網路企業在內也都在移動網際網路時代初期推出了各種作業系統,但無一成功。

開發者的支持與應用生態豐富度,是繞不過去的門檻。

《壹觀察》特意向王成錄問及了這一問題。

王成錄回答稱:方舟編譯器從多年前決定做的那一刻起,就立下了「上層業務代碼不需要改動,開發者只通過華為方舟編譯器做可以重新編譯」的目標。

現在開發者不論用Java語言去開發新的APP,還是自己寫的C語言庫,這兩種方式都不需要變,在開發構建階段就為開發者提供快速的集成編譯環境,降低了開發者學習和使用成本。

王成錄還對《壹觀察》透露稱,在方舟編譯器發布當天,華為軟體的開放實驗室 電話被開發者打爆了,業界在安卓頑疾問題上的關注度之高,遠超之前想像。

華為「軟能力」的「十年磨一劍」

華為過去給的外界印象,一直是「科技硬核」企業。

EMUI領域的巨大進步,讓大眾用戶越來越多的感受到華為科技的「軟能力」。

華為在EMUI方面的投入,最早是2012年開始的,也就是決定華為手機業務未來的那場「三亞會議」之後。

華為創始人任正非在會議上提出:「我認為在終端上,我們創新不夠、能力不夠,自己要抓住自己的優勢... 」,「要好好想想,我們的戰略是什麼,怎麼才能勝利」。

之後被業界廣為所知的是,華為通過P1、D1、Mate 7、P9、Mate 9、P30等一系列硬體機型的「不拋棄、不放棄」地持續奮鬥。

華為軟體能力,同樣是其中最重要的支撐部分,「板凳要坐十年冷」的堅持與努力同樣值得肯定。

外界對華為手機「軟能力」的密切關注,首先是從EMUI 5.0開始的。

在完成了硬體的初步重大創新之後,華為就清晰地意識到安卓系統的頑疾問題,將是自己與蘋果進行用戶體驗較量中未來至關重要的短板。

華為為此確定了兩步走戰略:第一步,是要「剖解」安卓,真正掌握底層核心技術,這就有些像是中國殲11戰機對蘇27戰機的「逆向工程」。

從2015年開始,華為開始「花大力氣」構建自己的作業系統底層研發能力,最核心的是把系統軟體架構做了更好的重建,將系統底層、中間層,以及應用層之間的分割更為清晰。

將一些華為需要的模塊進行底層優化和增強,實現Android系統「每一個模塊代碼華為都清晰掌握」,並在此基礎上開始具備自己真的是系統底層「換心手術」式優化。

從用戶端帶來可感知的體驗就是「天生快一生快」,以及「 EMUI 5.0的18個月不卡頓」。

要知道,Android系統本身並不只是為智慧型手機定製,系統代碼超過1億行,非常臃腫。

華為為此投入了超過數百名系統工程師進行「定向攻堅」,僅此一項投入就超過了很多國產手機企業的全部軟體研發人員。

配套的研發硬體環境投入也是驚人的,僅老化測試裝置成本就超過5000萬美元。

在EMUI 8.0發布之後,連Google都認為這是一項「非常有挑戰」工作,並在之後的Android系統版本升級中借鑑了華為EMUI的經驗。

第二步,則是從編譯器的底層技術完成對安卓的重構,包括幹掉之前被谷歌視為安卓核心的虛擬機。

王成錄在接受《壹觀察》專訪時透露,華為在翻譯器上的投入,最早始於十年前。

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

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

到了2014年,在王成錄的「三顧茅廬」之後,以Fred Chow等眾多「大神級」的編譯器領域的資深專家加入華為,同時大批清華、中科院的博士加入,搭建了華為編譯器的主架構。

2016年,有了成功的實踐經驗以後,華為2012實驗室成立了編譯器與程式語言實驗室;2019年4月,終於推出了華為方舟編譯器。

也就是說,即使華為這種在技術上投入最多的科技企業,在方舟編譯器這一「軟體行業明珠」的重投入也已超過了十年。

背後是華為一代軟體研發人員的青春與大技術理想主義,這是一個真正的「板凳要坐十年冷」的巨大研發工程。

甚至可以說,這是繼海思處理器之後,華為終端終於在系統軟體方面也具備了真正的行業領跑與創新能力,而不僅僅是「甩別人一兩條街的技術突破」。

邁向全場景智慧化生態:華為目標遠不止超越蘋果iOS

華為EMUI 9.1首先搭載的EROFS超級文件系統,同樣是華為「軟能力」的一個重要體現

但方舟編譯器的光芒,讓外界有些忽視了它的重要作用。

EROFS超級文件系統是伴隨著存儲介質的發展一步一步走過來,存儲介質不斷的演進,讓這個文件系統不斷的跟著演進,數據在這個存儲介質上存儲讀取更好更快更安全。

2016年搭載EMUI 5.0的華為Mate 9,首次在業界規模商用F2FS文件系統,替代了傳統的EXT4文件系統,令用戶分區的文件讀寫流暢度提升20%。

EROFS超級文件系統通過高效的壓縮算法加持,帶來隨機讀性能提升,EROFS的做法是保證每次壓縮一塊,正好是一個固定大小的存儲塊(即壓縮後的文件和存儲的最小單元邊界一致),這樣幾乎沒有浪費,不僅性能提升隨機讀性能的20%,ROM空間還節約了2GB。

以華為P30 Pro 128G為例,系統初始空間相比Ext4節省2GB,相當於用戶可以多存1000張照片或500首歌曲。

谷歌之前在安卓上使用的Ext4是一個讀寫雙向的文件系統,為了防止讀寫系統區,要加兩把鎖才能鎖住。

這兩把鎖加上,這個機制就變得更複雜了。

EROFS超級文件系統天然只讀設計,系統分區不可被三方改寫,因為一旦系統區被寫就意味著系統被攻破了,所有運行管理保證它的正確性,所以不能被改寫意味著更安全。

也就是說,從EMUI 9.1開始,華為手機上的安卓系統不僅更流暢,對開發者和用戶體驗更友好,而且更安全。

這三個方面,都是傳統安卓相當於蘋果iOS的弱項。

隨著外界對華為「軟能力」的深入了解,一個困惑的問題是:華為實際上已經完全有能力自建一套作業系統,華為內部是不是存在另一個「Plan B」的系統備案?近期包括任正非、余承東在內,也都在接受外媒採訪時肯定了這一消息。

當《壹觀察》問及這一問題時,王成錄笑稱:「作業系統從技術上對於華為來說不是問題,難點在於豐富的生態」。

這一回答,實際上也可以從另一個維度推斷出,華為正在用自己的系統級核心技術能力,來對安卓進行剖解、組建、重構,從而推動解決安卓從誕生以來就存在的「病根」

這就很好理解在華為方舟編譯器發布同時,余承東宣布將此項技術面向全業界進行開源

因為華為明白,EMUI如果要完成對iOS的全面超越,不僅僅要依靠自身對系統底層的核心技術突破,同樣需要開發者與合作夥伴的共同推動。

更令《壹觀察》關注是,華為在軟能力上已經深入到編譯器這一連接人類世界與數字世界的橋樑的核心底層技術,其目標應該遠不止是智慧型手機作業系統體驗超過蘋果iOS這麼簡單

因為面向5G、AI、IoT等重大技術融合變革,一個可以清晰預判的未來就是:以iOS+本地APP主導的蘋果移動網際網路生態,正在被萬物互聯時代「無處不在的場景化智能服務」所取代。

那麼華為EMUI又會走向什麼樣的未來?

這個問題實際上已經有了答案。

余承東最近在一次媒體專訪中直言:「未來五到十年,華為消費者業務的核心戰略就是全場景智慧化生活體驗升級,不是之一而是唯一」。

在此之前,華為已將 HiAI智慧終端計算平台,通過芯、端、雲三個層面向外界開放。

Huawei HiAI開放能力不斷增強,支持算子數量增加至147算子,API上線數量增加33個API,接入原子化服務超3200項。

已經有很多合作夥伴利用HiAI開放平台給消費者提供了很多創新體驗,比如Storysign利用HiAI的API能力幫助殘障人士進行無障礙的閱讀。

通過開放的全球生態系統,以及1400+生態合作夥伴和560000+的開發者,用戶將會獲得更多更豐富的智慧場景體驗。

HUAWEI HiLink平台目標連接全球最廣的IoT硬體設備覆蓋,HUAWEI Ability Gallery快服務智慧平台目標在多場景和多入口精準分發第三方的直達服務。

而跨系統、跨硬體終端的方舟編譯器,可以幫助所有智能硬體企業、開發者與系統廠商,更高效的連接起硬體、數據、與服務,共同構建一個全場景智慧化的萬物互聯時代。

這也是蘋果想邁出,但受制於封閉的iOS體系目前無法邁出的一步。

這應該才是余承東「體驗方面超越蘋果」的精彩未來



請為這篇文章評分?


相關文章 

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

P30系列中國發布會上,華為推出方舟編譯器,可以做到在安卓底層優化架構,引起業內關注。中興事件後,安卓系統禁用的風險屢屢被探討。此前,華為曾表態,自己有手機系統備份,但不到萬不得已不會啟用。

魔改安卓,華為離推出自己的系統又近一步

上周華為發布了P30國行版。由於已經全球發布過一次,相關參數大家已經熟悉,P30本身並沒有引起多大討論。倒是發布會上兩個一帶而過的細節,攪動了行業輿論——華為推出EROFS超級文件系統和方舟編譯...