當前位置:
首頁 > 科技 > 深度解讀華為EMUI9.1帶來的技術創新產物:華為方舟編譯器和EROFS超級文件系統

深度解讀華為EMUI9.1帶來的技術創新產物:華為方舟編譯器和EROFS超級文件系統

4月25日,華為EMUI媒體沙龍在北京召開,華為消費者BG軟體部總裁王成錄博士向參會媒體詳細介紹了華為EMUI 9.1系統。EMUI 9.1通過華為方舟編譯器和EROFS超級文件系統兩大技術創新,結合開放生態共同助力用戶體驗的提升。

EMUI的前世今生

從2012年EMUI1.0的合一桌面,到2016年EMUI5.0的「天生快,一生快」,到2018年EMUI8.2的GPU Turbo,再到EMUI9.0的Link Turbo,以及目前最新的EMUI9.1超級文件系統和華為方舟編譯器,EMUI在不斷的創新發展中做到了反哺整個安卓產業,不斷輸出優秀成果。EMUI一路走來,一直致力於提升用戶體驗,用戶體驗永遠是華為思考一切問題的出發點。目前EMUI服務著全球216個國家和地區,日活躍用戶到達4.7億。

華為方舟編譯器是什麼?

編譯器是連接人類世界與機器世界的一座橋樑,起著翻譯官的重要作用。簡言之編譯器就是把編程人員開發的高級語言程序,翻譯成機器可執行的機器指令,這就是編譯器。而要想把編譯器做好,既要懂原來的高級語言,又要懂所看到的硬體平台。必須對整個機器的CPU、GPU所有的指令要熟悉,又對目標語言要非常熟悉。就像一個翻譯官,把中文翻譯成英文,至少要對中文英文都非常理解。

十年磨一劍的技術積累

華為從2009年就開始創建編譯組,源於在研發海思晶元以後,需要有自己的編譯器才能真正發揮晶元的能力;2013年,華為推出了自研編譯器HCC; 2014年,Fred Chow等諸多編譯器領域的資深專家加入華為,搭建了華為編譯器的主架構;2016年,有了成功的實踐經驗以後,華為2012年實驗室成立了編譯器與編程語言實驗室;2019年,經過十年的積累沉澱,終於推出了華為方舟編譯器這個「板凳要坐十年冷」的複雜工程。

華為方舟編譯器的四大技術亮點

第一,多語言聯合編譯和跨語言調用開銷是影響Android性能開銷的最核心原因之一,目前Android應用市場裡面Top級別的APP 95%以上都是由多種開發語言來實現的。舉例說明,這些APP的邏輯部分是Java代碼,但是為了增強app應用的安全性、可靠性、兼容性,開發者會用效率更高的C語言寫庫,供Java來調用。直接導致的結果是應用真正運行起來的時候,一定會有Java和C語言之間調用問題,就會形成額外的性能開銷。而方舟編譯器在不同語言代碼的開發環境中,就編譯成一套可執行文件,在運行環境中高效執行。

第二,Android從誕生那天起,就選擇了Java這個成熟的語言,Java語言有跨平台、分散式,安全性高等諸多優勢。但是隨之應運而生的還有Java語言開發包中的重要組成--虛擬機,無論是什麼樣的硬體,Java語言都不需要管,統統抽象成Java的運行環境,因此可以跨平台操作。這個又帶來另外一個問題,任何機器只要把應用裝上就會分配好虛擬機,佔用額外的系統資源。今天的Android應用市場中的APP,實際上都是DEX碼的文件,消費者從應用市場下載APP以後,真正解釋成機器指令和執行文件是在手機上的虛擬機里做的,因此對系統資源要求高。安卓自身的編譯技術在不斷的發展,但始終需要在運行中依賴虛擬機來進行動態編譯和解釋執行,對系統資源消耗較大。

而方舟編譯器在開發環境中就可以完成全部代碼的編譯,無論業務邏輯是Java寫的還是C語言寫的,不需要再次編譯,手機安裝應用程序後無需依賴虛擬機資源,即可全速運行程序,帶來效率上的極大提升,消除了影響性能的虛擬機機制。EMUI 9.1僅僅對系統組件System Server應用了華為方舟編譯器後,就帶來了系統操作流暢度提升24%,系統響應性能提升44%的收益。華為方舟編譯器提供了全新的系統及應用的編譯和運行機制,從動態編譯變為靜態編譯,就是直接將高級語言直接編譯成機器碼,消除了虛擬機動態編譯的額外開銷,實現了開發和運行效率的兼容並舉。

內存回收機制是另一個方舟編譯器的重大技術突破。Android系統在全局回收內存資源時,需要暫停應用等待回收完成,這是產生隨機卡頓的重要原因。而在方舟編譯器里,在編譯時為程序配備了及時回收的內存處理機制,即在程序執行過程當中同步實時處理回收。所以方舟編譯器的垃圾回收及時又徹底,並且不需要停止進程。

第三,編譯器和翻譯語言的原理是一樣的,單獨直譯出詞句並不是難點,難得是要翻譯的又快又好。比如把英文「What happens in Vegas, stays in Vegas」翻譯成中文,最簡單的直譯是「在拉斯維加斯發生的一切,就留在拉斯維加斯」;好一些的譯文是「事情過去了就過去了,追悔無益」;而優秀的譯文則是「勿念過往,活在當下」。方舟編譯器通過了大量的優化和調整,一方面對Java語言深入了解後再細緻重建,另一方面對機器指令順序結構理解要求非常清晰,這兩方面的匹配度越高,編譯器效率越高。一個好的編譯器,開發者一行代碼都不需要修改,性能能提升10%到20%。

方舟編譯器跟現有的Android非常不一樣,能做到更加靈活更加深入的優化,給應用開發者帶來了更大的優化應用的機會。現有的Android編譯大部分代碼在虛擬機環境運行,虛擬機的創建來自於同一套「模板」,但不同應用的優化訴求不一樣,因而難以作深度的優化,方舟編譯器則是每個應用編譯優化方案自己來定,分別形成不同應用優化後的機器碼,每一個應用開發者都有了把自己的應用做的更好的機會,不再受限於Android虛擬機的限制。

第四,方舟編譯器從多年前決定做的那一刻起,就立下了上層業務代碼不需要改動,開發者只通過華為方舟編譯器做可以重新編譯的目標。現在開發者不論用Java語言去開發新的APP,還是自己寫的C語言庫,這兩種方式都不需要變,從而大大降低了開發者學習和使用成本。

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只讀系統天生沒有這個問題更加安全,在這種情況下想把系統區攻破則是難上加難。

打造開放生態,共享智慧體驗

通過Huawei HiAI構建移動AI開放平台,華為把AI所有能力開放給第三方,使能現在的應用更豐富更強大。Huawei HiAI開放能力不斷增強,支持運算元數量增加至147運算元,API上線數量增加33個API,接入原子化服務超3200項。已經有很多合作夥伴利用HiAI開放平台給消費者提供了很多創新體驗,比如storysign利用HiAI的API能力幫助殘障人士進行無障礙的閱讀。通過開放的全球生態系統,以及1400 生態合作夥伴和560000 的開發者,用戶將會獲得更多更豐富的智慧場景體驗。

推進方舟編譯器的開源,讓更多用戶享受應用流暢體驗。繼華為P30系列發布會方舟編譯器開源後,將在2019年8月的華為終端開發者大會宣布方舟編譯框架代碼開源,後續會在2019年11月的綠盟開發者大會實現完整方舟編譯器代碼開源。

Link Turbo的發展讓聯接更多樣。Link Turbo通過優化手機網路的連接,讓整個生態串聯起來。伺服器端裝載SDK以後就享受到網路的多路合併,無論是WIFI還是LTE都能連接起來,保證網路足夠的帶寬和實時性。EMUI9.1帶來了以用戶為中心的全場景體驗,覆蓋方方面面的日常生活場景。例如HUAWEI HiCar帶來手機車鑰匙,跑步機數據同步,與PC一碰分享等多設備之間的互聯體驗。未來EMUI將著眼更多無縫的全場景用戶體驗,視頻、音頻、圖像等各種信息和指令都可以在PC、電視、平板等智能設備中無縫流轉,用戶獲得更加豐富優質的體驗。


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 天極數碼 的精彩文章:

知臨集團成立子公司Smart Pharma 專註計算機輔助藥物再利用
LG電視機65LG63CKECA報價5299元 帶票送壁架 免安裝

TAG:天極數碼 |