華為方舟編譯器將開源,安卓手機卡頓能被解決了嗎?

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

2009年華為創建了編譯組,同年海思的第一顆麒麟晶片誕生,隨後在2013年正式提出編譯器框架構想。

此後經歷了多名技術人才的引進,到今年才得以開源方舟編譯器。

在P30系列手機上海發布會上,余承東公布了華為在系統方面兩項研發成果——超級文件系統EROFS和華為方舟編譯器。

在會上,余承東稱,採用EROFS的系統能讓隨機讀性能提高20%,系統空間節省14%;而應用方舟編譯器後,系統操作流暢度提高了24%以上。

Android系統長時間使用之後便會卡頓,這一問題一直被用戶詬病。

華為所發布的兩項技術便是朝著解決該問題去的。

華為方面稱,在當天方舟編譯器發布之後,華為OpenLab(開放實驗室)的電話就被打爆了,許多開發者都想了解方舟編譯器更多信息。

事實上,不僅是開發者對該技術感興趣,部分極客用戶同樣十分關注Android系統的流暢度能否因此得到提升。

超級文件系統EROFS是什麼?

在Android系統底層,傳統的文件系統是EXT4(Fourth extended filesystem,第四代擴展文件系統),原本適合機械硬碟,它支持系統雙向讀寫。

在壓縮過程中,文件塊是定長輸入,磁碟塊變長輸出。

好比3噸的串號文件交給2噸的貨車運輸,其中1噸只能交給下一輛車,但讀取時則必須把兩輛車合起來才能工作,直接導致讀取效率降低。

在系統長時間使用之後,會殘留許多數據碎片。

隨著碎片垃圾增多,對於系統運行的影響就會變大。

EXT4對於碎片垃圾的清理能力上較弱,因此會出現時間長之後手機卡頓的情況。

事實上,Google也做過相應的努力,曾經推出過SquashFS,一套供Linux核心使用的GPL開源只讀壓縮文件系統。

但後來應用到系統上之後效果不盡人意,最終撤掉了。

華為CBG軟體部總裁王成錄在最近一次交流會上表示,EMUI 9.1所採用的文件系統EROFS(Extendable Read-Only File System,可擴展的只讀文件系統)便是旨在解決系統分區文件儲存與管理問題。

其核心在於通過文件系統的只讀屬性,保證系統分區一直保持初始化的文件,除了系統更新之外,禁止被寫入其它東西。

以此保護了系統的安全性。

在壓縮算法上,EROFS的文件塊是變長輸入,磁碟塊定長輸出。

若還按照貨車運輸的例子來打比方,就是壓縮3噸的文件交給3噸的貨車,每一輛貨車都滿載出發。

但事實上,EROFS採用了fixed-sized output文件壓縮算法,壓縮後的物理塊大小為固定值(4k),每一個數據包都是4k。

華為稱,EROFS的專利壓縮算法幾乎不存在無效讀取,其隨機讀性能平均能提升20%,且系統空間相比 EXT4節省2GB(P30 Pro 128GB為目標對象)。

升級包大小下降約5%-10%,升級時間縮短了約20%。

「EROFS文件系統已經開源了,Linux下一個4.19版本就會用這個文件系統。

」王成錄博士說道,「業界內用Linux新內核版本的廠家都可能用到這個文件系統。

這也是國內廠商第一次貢獻完整的文件系統到Linux主線版本。

方舟編譯器能做什麼?

首先我們要知道,所有機器程序都有自己的語言,和全世界講的語種類似。

編譯器便是把編程人員開發的高級語言程序,翻譯成機器可識別的指令,翻譯的效率將直接影響機器執行指令的效率。

「由於Android的開放性,上層應用沒有強制規則。

比如Android的第三方應用市場非常多;Android的安裝方式也非常多,通過郵件都可以安裝。

帶來的(不穩定性)問題比較多。

所以Android用戶要真正能夠獲得好的體驗,手機廠家只把手機做好是不夠的。

」王成錄博士說起了目前Android軟體生態的問題。

由於這個生態無法像iOS生態那樣高度標準化,因此軟體存在各種編譯方式,甚至是層次不齊的軟體質量。

方舟編譯器的意義在於通過手機廠家和生態的合作,把用戶軟體體驗做好。

方舟編譯器所採用的翻譯方法,與此前的編譯器有所不同。

現有的Android系統是在手機環境中進行編譯,通過ART虛擬機(Android Runtime)一邊翻譯一邊執行,這會造成資源占用過多,進而影響到程序執行的效率。

方舟編譯器則能讓開發者在開發過程中直接把多種高級語言編譯為機器可識別的指令,然後打包成APK,手機在安裝程序之後便可直接識別並運行程序。

從而提高軟體的運行效率。

王成錄博士介紹說,方舟編譯器總共有4個技術亮點:

  1. 首個多語言聯合優化編譯器,可消除跨語言調用開銷;

  2. 程序運行無需依賴虛擬機,內存回收機制高效;

  3. 可針對不同應用靈活優化;

  4. 開發者學習和使用成本低。

其中第二點對於用戶來說,系統的運行改善是直觀的。

由於沒有了ART虛擬機占用系統資源,且不用虛擬機編譯過程,程序的運行效率將會得到提高。

同時,由於方舟編譯器在編譯時為程序配備了及時回收的內存處理機制,相較於之前系統需要全局暫停才能回收資源的方式,系統在運行的流暢度上得到了提升。

余承東曾在P30系列發布會上表示,新浪微博極速版在應用方舟編譯器之後,操作流暢度提升了60%以上。

不過顯然通過華為一家廠商是做不到全部軟體的覆蓋的。

王成錄博士表示:「實際上這件事情,只靠華為一家不可能實現,我們非常希望Android陣營所有合作夥伴大家一起努力。

這次方舟編譯器我們承諾要跟業界開源最核心的原因,是希望大家從各自場景各自平台去應用,讓Android手機體驗越來越好。

什麼時候能用上?

目前EROFS文件系統已經隨著EMUI 9.1系統面世,華為P30系列手機已經搭載該文件系統。

事實上,華為對Android系統底層的改動,3年前就有所體現了。

不過那時候針對的是Android系統的用戶分區,而EROFS文件系統針對的是系統分區。

2016年華為P9從EXT4變成了F2FS文件系統。

「F2FS本身是為Flash快閃記憶體專門定製的文件系統。

經過多輪的技術驗證,我們最終把F2FS用在EMUI 5.0上,發現上手機的碎片減少了非常多,對系統的流暢性貢獻很大。

」王成錄博士說道,「後來Google將F2FS吸收到了社區,Google的手機(Nexus系列)也採用了這個系統。

由於方舟編譯器需要各方開發者的共同努力,用戶想要體驗到方舟編譯器所做的軟體,還需要耐心等待。

華為表示在P30系列發布會上宣布開源之後,今年將會在11月份的綠盟開發者大會上開源完整的方舟編譯器代碼。

不過在此之前,華為在編譯器上已經準備了10年。

據華為方面透露,2009年華為創建了編譯組,同年海思的第一顆麒麟晶片誕生,隨後在2013年正式提出編譯器框架構想。

此後經歷了多名技術人才的引進,到今年才得以開源方舟編譯器。

王成錄感慨道:「編譯器真的是一個『板凳要坐十年冷』的工程。


請為這篇文章評分?


相關文章 

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

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