華為又搞了個玄學,要讓安卓徹底改頭換面?

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

在之前的華為 P30 中國發布會上,華為曾表示通過方舟編譯器可實現系統操作流暢度提升 24%,系統響應提升 44%,第三方應用操作流暢度提升 60%。

其可以說是華為 P30 系列體驗背後的最大功臣之一。


4 月 25 日下午,華為在北京舉行了「華為有技術 EMUI 媒體沙龍」活動。

在這次活動上,華為首次站在官方的角度,詳細解釋了 P30 系列在 EMUI 9.1 系統中所使用的方舟編譯器的應用原理。

今天,小雷(微信:leitech)就在第一時間為大家解讀華為這項新技術,看看方舟編譯器到底神奇在何處。


首先我們要了解一下什麼是編譯器。

簡單來說,編譯器就是將我們能夠理解的語言翻譯為計算機能夠理解的以 0 和 1 構成的語言。

就像我們和外國人交流一樣,語言不同是很難溝通的,但只要將其中一種語言翻譯成對方能聽得懂的語言,就能交流成功了。


華為方舟編譯器最大的特點在於,它是業內第一款支持多語言聯合優化的編譯器,也就是說無論是 C/C++還是 Java 都支持。

因此面對採用混合語言開發的安卓應用,方舟編譯器可以在開發環境中編譯成統一的流程,通過統一的程序表示和優化來執行,效率更高。

也就是說,現有安卓的運行機制就像是兩個人各自準備任務,最後將他們的準備的結果綜合在一起執行。

而方舟編譯器則是讓這兩個人一起準備,之後再一同執行任務。


安卓系統本身的編譯是要通過 ART 虛擬機運行,因此系統資源占用較大。

而方舟編譯器則是在開發的時候就已經完成了靜態編譯,因此不需要依賴手機本身編譯。

打個比方,以開卷考試為例,一個學生是在考試之前就預習好了可能會考到的知識點,做好了對應內容的標記,拿到卷子就迅速動筆;而另一個學生則是靠「臨場發揮」,在考場上臨時翻閱資料,占用大量考試時間。


同時,方舟編譯器還提供了更高效的內存回收機制。

由於不需要經過虛擬機,應用在運行過程中不需要暫停,同時隨時回收內存,而不是將垃圾堆在一起回收。


方舟編譯器還有一大核心功能就是對代碼進行優化。

所謂代碼優化,就是為程序帶來更高的性能。

舉個很簡單的例子,就是同一個人考兩次試,怎麼才能讓第二次比第一次考的更好,其實就是要對複習進行優化。


前面說到,現有安卓系統的動態編譯是利用 ART 虛擬機在機器上執行,而方舟編譯器則是在開發的時候進行靜態編譯。

因此,前者只能採用簡單的優化算法,而後者可以突破手機機能限制,根據不同的應用採用不同的編譯和優化算法。


最後,華為方舟編譯器還有一大亮點是學習和使用成本低。

由於在 APP 發布之前的打包階段就已經集成了編譯環境,因此對於開發者來說,整個流程其實是被簡化了,使用下來更方便。


華為表示,方舟編譯器將從 2019 年開始全面開源。

這也就是說無論是手機廠商,還是應用開發者都可以使用方舟編譯器來優化應用的性能。


總的來說,通過華為方舟編譯器編譯應用相比現有安卓的優勢主要在於:

1、釋放機器編譯壓力,在開發時完成應用的靜態編譯,不經過ART虛擬機。

2、採用不同類型的應用優化方案,讓應用運行效果達到最優。

3、提供更有效的內存回收機制,提升系統流暢度。

4、簡化編譯流程,降低開發者學習和使用成本。

除了方舟編譯器外,華為還介紹了讓系統流暢運行的另外一大關鍵點,就是 EROFS 超級文件系統。

相比之前的 F2FS 文件系統,P30 系列所採用的 EROFS 文件系統可以提升 20%的隨讀性能,機身可用存儲空間增加 2GB,並採用只讀設計。


對比另外一個只讀壓縮文件系統 squashfs,EROFS 最明顯的優勢是幾乎不存在無效讀取。


但由於採用更安全的 EROFS,本質上 P30 的系統會比以前的華為機型更加封閉。

EROFS 是一個完全只讀設計的文件系統,其不允許用戶像之前 Ext4 文件系統那樣支持可讀寫,這樣設備本身更安全,但可玩性會相對更低。


根據華為官方公布的日程,方舟編譯器將於 2019 年 8 月的華為終端開發者大會上開源編譯框架代碼,並於 2019 年 11 月的綠盟開發者大會上公布完整的方舟編譯器代碼。


在小雷個人看來,方舟編譯器是華為在解決安卓應用編譯方面提供的一種全新的思路,理論上看是不錯的方案,但就目前而言還無法驗證得出 P30 系列是否在長時間使用後依然流暢的結論。

另一方面,方舟編譯器能否真正得到大規模推廣普及,目前也還很難說。

畢竟每個應用開發商和手機廠商都有自己的考慮。

不過可以確定的是,華為和榮耀未來的新機將很有技能會繼續採用這個工具,我們不妨期待一下。

本文編輯:空白


請為這篇文章評分?


相關文章 

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

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