解讀| 華為方舟編譯器是如何實現Android - 手機討論

Lucy avatar
By Lucy
at 2019-04-26T14:37

Table of Contents

: 華為方舟編譯器究竟改變了什麼?
: 首先,方舟編譯器是配合華為EMUI 9.1 操作系統而打造的一個編譯工具。
: 按照華為方面的說法,雖然方舟編譯器是在2019 年4 月11 日發布,但是華為早在5 年前就開始佈局,2013 年推出了自研編譯器HCC,2014 年編程大神Fred Chow 加入,擔任華為編譯器技術首席科學家,2016 年華為成立編譯器與編程語言實驗室,投入了數百的專家團隊經歷了多次嘗試,才在EMUI 9.1 上實現了機器代碼的翻譯。
: 按照上述Android 操作系統的代碼運行邏輯,華為編譯器最大的優勢在於,它繞過了VM。

重點一

: 簡單來說,在百人專家團隊的打造下,華為方舟編譯器可以將高級語言(Java)直接變成機器碼,無需再通過Android 操作系統中內置的VM 編譯器。按照華為方面的說法:方舟編譯器編譯的應用在開發階段就已完成;也就是說,只要是經過編譯器編譯的應用,在應用市場上上架了以後,用戶下載APK 的就是編譯過的了。
: 換句話說,通過方舟編譯器,開發者的應用在下載之前就已經轉化成為機器可以識別的代碼,因而可以在手機上快速安裝、啟動和運行,而無需在經過VM 的編譯——某種程度上,方舟編譯器是將編譯過程提前到應用開發階段,從而大幅度減少了智能手機和操作系統的運行負擔。
: 按照華為方面的說法,採用華為編譯器之後,提升效果如下:
: EMUI 9.1 僅僅對系統組件System Server 應用了方舟編譯器之後,系統流暢速度提升了24%,系統響應速度提升了44%;
: 第三方應用(目前採用了新浪微博極速版)的操作流暢度提升了60%。
: 不可忽視的是,實際上,要想實現華為所言的效果,就首先需要第三方的應用開發者採用方舟編譯器對自家的App 提前進行改造,從而能夠上架華為應用商店——這也是余承東在4 月11 日的發布會呼籲開發者積極參與的原因。
: 除了代碼編譯,方舟編譯器也提供了更高效的內存機制,它與Android 內存回收的不同之處在於:
: 內存管理是程序開發與運行時需要重點考慮的部分,也和系統流暢度息息相關。Android 在內存回收上採用集中回收機制,發聲全局回收時更需要暫停應用,這也是隨機卡頓的根因之一。而方舟編譯器提供了更高效的內存回收機制,回收時無需暫停應用,隨時用隨時回收,大大提高運行速度。

重點二

: 另外,在方舟編譯器的編譯環境下, 還可以對代碼進行優化。目前,由於Android ART 的AoT 和JIT 動態編譯因為是運行在手機上,受資源所限,因而只能使用簡單的優化算法。而方舟編譯器由於是在應用開發階段進行編譯,所以可以允許不同應用靈活採用不同的編譯優化方案,而且因為在開發環境編譯不會受到手機性能的限制,可以使用更多先進的優化算法,從而使得每個應用的性能達到最佳。
: 2019,全面開源
: 其實,在4 月11 日的發布會上,華為方面已經表示,方舟編譯器也將開放給第三方合作夥伴,希望共同構建開發者生態的“方舟朋友圈”。
: 目前,華為已經宣布方舟編譯器會從2019 年全面開源;其中,華為將在2019 年8 月的華為終端開發者大會宣布方舟編譯框架代碼開源,後續會在2019 年11 月的綠盟開發者大會實現完整方舟編譯器代碼開源。
: 對於華為方舟編譯器的開源,雷鋒網將保持關注。
: 雷鋒網(公眾號:雷鋒網)注:本文部分內容編自知乎平台作者weishu的回答內容,已經獲得作者授權。
: https://m.leiphone.com/news/201904/oshefuZTLnU00mJO.html
: 心得:好吧,其實我整天都看不懂,只知道好像很厲害
: 有厲害的人可以解釋個嗎感謝
: 這樣子卓卓是不是在效能上要成功反超果果了呢!
: 太令人期待啦!

這系列文章不知道能不能釣到 jserv

反正我先起個頭

就目前的的公開資訊吧

方舟編譯器這個名字代表了他的巨大工作量

我猜的啦 底層就是重做一套語言再加上相容 Java

而且只有華為自己的OS才能發揮功能

除非Google把整套解決方案放到Android裡面

不然要形成 iOS 的生態系還是難啦

就大陸幾個大型app會投資源下去玩而已

不過看方舟編譯器的效果確實明顯降低了 Android 的 jit 的時間

不過有人還沒習慣 Android 就是會這樣頓一下嗎

哈哈哈


--
Tags: 手機

All Comments

Linda avatar
By Linda
at 2019-04-28T09:16
那要看compiler寫的功力 做的真的夠好 移植預先compile不難或不出什麼大錯的話 就能吸引廠商做原本App版本 另外準備一份emui方舟版
Gilbert avatar
By Gilbert
at 2019-04-30T03:55
但移植太吃力就沒人陪你玩 除非是極大的App如大型遊戲 比效率的東西
Donna avatar
By Donna
at 2019-05-01T22:34
真的效率高 就屌了 想像一下pubg方舟版本運行比其他安卓版本好的話 華為要怎麼大吹特吹 嘻嘻
Anthony avatar
By Anthony
at 2019-05-03T17:13
現在手遊生命週期短 更新又頻繁 沒人力搞太多版本
Joe avatar
By Joe
at 2019-05-05T11:53
那可能只影響loading
Hardy avatar
By Hardy
at 2019-05-07T06:32
遊戲執行時通常是卡GPU
Hedda avatar
By Hedda
at 2019-05-09T01:11
只有loading是卡cpu
Anthony avatar
By Anthony
at 2019-05-10T19:50
重點不在如何實現,而在推廣開發者用這套工具開發,重點是有相容性的問題,這是Java庫調用的原生限制,不可能所有程式都用AOT,而且需要做針對性的優化,光是這點小廠就沒法做更新與維護,而且中國境內沒有Google都自行下載,但世界其它地方多半都是用Play商店更新下載,如果每個設備都要做對應的優化,哪要上傳多少版本?
Quanna avatar
By Quanna
at 2019-05-12T14:29
除非像三星做自己的Store,但這小廠更不可能做,而且也無利於推廣
Kyle avatar
By Kyle
at 2019-05-14T09:08
想要從底層改變生態,光是華為開發四個字就有不少疑慮了,Google更是鳥都不想鳥你
Madame avatar
By Madame
at 2019-05-16T03:47
最後了不起在中國推廣罷了
Oliver avatar
By Oliver
at 2019-05-17T22:27
重點是手機的生態根本不容許你這樣做,很多程式都是同時上架ios跟android,程式開發時會盡量減少差異性,以降低工作量與維護成本,更不可能用一套小眾的編譯器
Heather avatar
By Heather
at 2019-05-19T17:06
有些程式在ios上執行快,在Android上執行慢,也有相反的,這些在開發者選擇開發的工具時就決定了,很多是時候是看開發的成本及維護的能力
Olivia avatar
By Olivia
at 2019-05-21T11:45
說穿了就是華為什麼都不行,才只能在開源的Android上搞這些有的沒的,有能力的就像蘋果一樣去搞封閉系統了,軟硬體搭配才叫強,不然也學三星去搞Tizen啊
Delia avatar
By Delia
at 2019-05-23T06:24
最討厭的就是華為這種沒能力,又老愛吹自己天下第一的中國廠牌
Todd Johnson avatar
By Todd Johnson
at 2019-05-25T01:03
樓上精闢
Charlotte avatar
By Charlotte
at 2019-05-26T19:42
現在的正面宣傳、反面宣傳這麼多,還是不看廣告,看
Ethan avatar
By Ethan
at 2019-05-28T14:21
療效。
Ingrid avatar
By Ingrid
at 2019-05-30T09:00
已更新方舟,速度非常有感

解讀| 華為方舟編譯器是如何實現Android

Hedda avatar
By Hedda
at 2019-04-26T14:03
一個程式要在不同型號的手機上跑,要有不同的設定 所以同一個App下載到不同手機還要編譯+安裝 華為就是先編譯完直接下載執行碼,但每一個不同型號的手機都要各自優化 對系統程式(Andriod本身)而言當然很好,對其他App就不實際 : 按照華為方面的說法,採用華為編譯器之後,提升效果如下: : EMU ...

買給母親大人的手機

Kumar avatar
By Kumar
at 2019-04-26T14:01
母親大人原本用的手機是姊送的UU, 上個月不小心掉入水裡被原廠拒修, 目前換回舊的備用機使用, 不過不到半天就沒電所以她覺得相當困擾, 老姐是用U11已經順順戰兩年就很推, 因此也納入考慮, 想說這次換我打工幫老媽換手機, 希望版友可以給一些建議。 (一) 預算區間/已選擇之機種 10K上下(可捏一點) ...

小米6開發版開始內測Android 9

Lauren avatar
By Lauren
at 2019-04-26T13:57
: 小米MIX2將于本週四發佈最後一個Android O開發版/體驗版9.4.25, : 同時在Android P後將停止小米MIX2體驗版的打包與版本外發, : 並于4月26日前,將小米MIX2體驗版內測許可權統一轉為開發版內測許可權。 : 請小米MIX2 Android O體驗版的小夥伴們儘快刷機至開發版 ...

iFixit 的 Galaxy Fold 拆機文章被 Samsu

Christine avatar
By Christine
at 2019-04-26T13:55
iFixit 的 Galaxy Fold 拆機文章被 Samsung 要求下架 iFixit 表示出於尊重,已經把文章撤下。 Eric Chan , aterichankc 3 小時前 Samsung Galaxy Fold 評測機大規模出現故障引起熱烈討論,後來著 名的拆機網站 iFixit 也從其渠 ...

遠傳np台哥、台星、亞太?

Charlotte avatar
By Charlotte
at 2019-04-26T13:48
目前遠傳吃到飽合約剩兩週,可是找不到合適的新合約申辦,本來屬意新辦遠傳299 吃到飽,但是好像已經沒有電銷可以提供了!現在也找不到亞太99元台星99元的合約 可以申辦;目前是希望亞太、台星能有至少21m的速度,當然遠傳能夠有是最好啦! 請求各位電銷、最近有辦門號的人指一搖條路吧! 我住高雄,如果有門 ...