當前位置:首頁百事科技智能手機華為手機操作系統往事:讓軟件成為華為手機的硬實力

華為手機操作系統往事:讓軟件成為華為手機的硬實力

百事數碼
2019-05-18 14:36:34 0

華為消費者業務CEO余承東在朋友圈轉發華為海思總裁員工信稱,華為始終堅持打造自己芯片的核心能力,堅持使用與培養自己的芯片。除了自己的芯片,還有操作系統的核心能力打造。

此外,余承東還轉發了一篇華為心聲社區日前發布的一篇名為《華為手機操作系統往事》的文章,稱“除了自己的芯片,還有操作系統的核心能力打造!”

文章中,華為CBG軟件部總裁王成錄講述了讓軟件成為華為手機硬實力的歷程,介紹了華為EMUI對安卓系統所做出的方舟編譯器、GPU Turbo、安卓綠色聯盟等方面的創新和努力,并指出,谷歌安卓新版本也在吸納華為的優秀實踐。

在王成錄看來,從市場與用戶的反饋來看,越來越多的消費者認可華為手機長期使用后依然流暢,對用華為手機玩游戲體驗不佳的吐槽也越來越少。這既歸功于華為手機芯片和硬件能力的快速提升,更離不開軟件全棧的深度優化與技術創新。

以下為文章全文:

4月11日,CBG總裁余承東在上海發布了P30系列手機。發布會后,一個聽上去有點晦澀的新名詞——“方舟編譯器”迅速登上了知乎社區的熱搜榜,引發了IT從業者、數碼博主、資深碼農乃至普通消費者的極大關注和廣泛熱議。“編譯器是什么?”“華為方舟編譯器和安卓原生的AOT/JIT(Ahead of Time/Just in Time)有什么區別?” “方舟編譯器對安卓生態有何意義?”等,網友對各種深淺不一問題的討論不亦樂乎,諸多跟帖評論精彩紛呈,不得不說高手在民間。

其中一位網友的評論很有代表性:“昨天的華為發布會,讓我感到驚喜的是,在如今這個年代,會有一家國內消費電子公司把編譯器作為一大亮點來介紹。華為在基礎研發上的持續高投入,加上手機終端市場占有率向全球第一邁進,使得‘自建生態’的夢想,對一家中國公司而言首次成為可能。”

編譯器是將程序開發用的高級語言轉換成機器指令的軟件,可以理解成軟件與硬件之間的橋梁。那方舟編譯器會帶來怎樣的價值?簡單點說,是解決現有安卓這座橋梁并不順暢的頑疾,是對安卓深度的優化與革新。

而這只是華為一系列軟件創新的最新成果。今天,從市場與用戶的反饋來看,越來越多的消費者認可華為手機長期使用后依然流暢,對用華為手機玩游戲體驗不佳的吐槽也越來越少。這既歸功于華為手機芯片和硬件能力的快速提升,更離不開軟件全棧的深度優化與技術創新

我們深知,任何軟硬件的技術優化和創新探索都必須瞄準用戶體驗。服務近5億在網用戶的華為手機操作系統EMUI是如何圍繞用戶體驗,不斷進行深層創新,推出硬核技術的?

故事還得從幾年前說起。

一、面向消費者的軟件怎么做

3年前,我在負責2012實驗室的中央軟件院,7月份,余總的一個電話,讓我有機會來到CBG負責終端軟件的研發工作。當時的心情既興奮又忐忑。興奮在于,從進公司伊始,我一直從事和軟件緊密相關的工作。在我心目中,完成大規模工業化的軟件研發,不啻以虛擬世界的0和1為建筑材料,去設計建造一座宏偉的殿堂。而如何能讓我們的建造成果和過程都達到世界級,給我們的用戶和合作伙伴帶來價值,一直是我的追求與夢想。

忐忑也隨之而來。雖然都是軟件研發,但是智能手機操作系統對于我是一個全新的領域。首先是標準化程度大不相同,電信設備軟件有非常完備的行業標準,ITU、3GPP、IETF等,實際上把網絡架構和網元架構標準化了。研發需要做的就是根據標準協議,遵從一定的開發流程規范,比如IPD(集成產品開發),以及合理的項目管理來實現相應的交付目標。同時,電信設備軟件的需求也是相對清晰和匯聚的,全球幾百家運營商的需求百分之七十以上幾乎是一致的,而且設備的日常維護主體是經過專業化訓練,具有相當技術水平的運維人員,可以相對清晰準確地反饋設備使用中的各種問題。

而面向消費者的軟件則大為不同。廣泛流行的智能手機操作系統最終只留下了iOS和安卓。與封閉的iOS框定一切來保證體驗不同,安卓是由谷歌主導的AOSP社區開源,但原生安卓實際上是Design Reference(設計參考),具體到每一個功能如何取舍和擴展,與海量的第三方APPs如何交互,并沒有詳細而統一的標準可以遵從,都是各個手機廠家根據自己的硬件平臺、產品定位和目標用戶群,做大量的適配和優化修改,生態碎片化嚴重。一切只能以消費者體驗為準繩

在安卓開放的大環境下,怎么做才能實現最好的用戶體驗?在iOS已經通過多年的積累樹立了牢固的領先形象時,怎樣才能讓EMUI被越來越多的消費者認可,是我和整個軟件團隊面臨的最大挑戰

二、聚焦最大的用戶痛點 “在飛行中換引擎”

我們決定將“用戶體驗最佳”作為終端軟件追求的目標。而首要解決的問題就是,什么最影響用戶體驗?

經過大量的調查和訪談,團隊很快發現,最為安卓用戶詬病的,是長期使用后的卡頓,這也是影響消費者體驗的第一大障礙。

一個熱愛電子產品的同事和我講述過他的智能手機使用經歷。在安卓手機進入大屏年代后,2013年他購買了當時做得最好的安卓手機S和H,用的還是頂級配置,但用了一年多后,即使每晚不做任何操作,都會消耗百分之十幾的電量;更讓他無法忍受的是,卡頓、死機幾乎成了家常便飯,必須要不斷重啟和清理內存才能勉強使用。用他的話說,不是我在用手機,而是手機在用我。

為什么即便擁有很高的硬件配置,即便是當時最好的安卓手機,也會面臨更多的穩定性和流暢性問題?是哪些因素導致了長期使用后的卡頓和死機?

我們決定“啃”下卡頓這個最大的硬骨頭。EMUI團隊成立了專門的“特戰組”集中攻關。特戰組詳細分析了安卓系統下四百多臺幾十種機型的手機,經過反復的問題重現和軟硬件的全棧分析,共發現以下四個導致卡頓、死機的主因:

1、安卓系統的松散管理,應用對資源的使用缺少規則,就像建了很多道路卻沒有交通規則,最終是擁塞和混亂;

2、系統硬件資源協同缺乏,僅僅靠增加RAM(運行內存)資源不能解決問題,而是要更有效地調度與使用資源;

3、存儲碎片累積效應,隨著使用時間的增加,存儲碎片化日益嚴重,數據讀寫速度明顯下降,系統卡頓頻繁、加重;

4、APP膨脹嚴重,特別是頭部應用功能不斷堆積,導致產生的數據急劇增長,搶占系統資源嚴重,拖累系統運行速度。

這些問題,幾乎涉及到從芯片到軟件全棧,如果只是見招拆招被動應對,是不可能真正解決問題的。必須全面系統分析,才能拿出全面徹底的解決方案。但安卓系統本身極其龐大,代碼行數過億,在這么龐大的系統上“動手術”,挑戰可想而知。會不會在優化的同時導致其它兼容性的問題?有沒有足夠能力實現預定的目標?

但是,帶著有問題的引擎勉強飛行,只會釀成更大的事故。畏縮不前不如放手一搏。通過大量細致的分析和研判,我們決心破釜沉舟——干!最終,經過專家的反復診斷和討論,拿出了5大“藥方”來一一解決上述問題。

簡單來說,人工智能是核心,對應用側智能分析,判斷應用的資源需求特征(計算密集型、RAM密集型、IO密集型等);對硬件資源側,感知CPU、內存、IO(Input/Output)、存儲等資源狀態,通過AI算法實現應用需求與硬件資源的最佳匹配,并及時合理地整理和回收空閑資源,解決上面提到的硬件資源協同和APP占用空間過度膨脹的問題。


“天生快 一生快”系統原理圖

三、“抽屜式”替換 為安卓注入新的生命力

對于存儲碎片化的問題,我們采取了一個比較激進的方案——替換了安卓原生文件系統。

安卓從誕生之初就直接架構在Linux基礎上,其文件系統最初并未考慮碎片文件的快速整理。長時間以來,安卓手機都是從Linux繼承文件系統,這個文件系統對智能手機上的Flash存儲并不友好,也是碎片化的主因。我們決定用F2FS(Flash Friendly File System)文件系統來替換原生的文件系統,不僅因為F2FS是為Flash量身定做,還因為它可以使手機極大程度上避免文件碎片。

F2FS是由友商S公司原創并開源的。但S公司自己并沒有率先使用。因為文件系統決定存儲上所有文件的存儲與訪問方式,好比器官移植手術,替換文件系統的復雜度和風險是巨大的。

我們雖然在實驗室仔細驗證了半年多,但替換文件系統的高復雜度和高風險,仍然是決策的最大顧慮。軟件管理團隊和技術團隊多次分析后,最終果斷拍板,并和CBG簽訂了軍令狀,承諾搞不定或出了問題就“軍法處置”。

得益于團隊膽大心細的執行力,F2FS文件系統最終替換成功,成為解決卡頓頑疾全方案中最重要的組成部分。

2016年,伴隨著Mate 9 系列發布的EMUI5.0,我們為這個解決安卓卡頓的方案取了一個簡單易懂的名字,叫做“天生快 一生快”,同時承諾消費者“18個月不卡頓”,這個當時看似“吹牛”的承諾,今天已經成為現實。從市場反應和消費者反饋來看,在安卓陣營里,華為手機率先甩掉了“卡頓”的帽子。

2018年,谷歌將F2FS吸收到安卓原生版本中,所有安卓廠商因此受益,對安卓生態是很有價值的貢獻。至今,谷歌的自研手機Pixel 3也使用了F2FS文件系統。

基于理性的技術判斷和果斷決策,讓我們領先了所有安卓廠商一步。更難能可貴的是,為了實現安全替換,逼迫我們的團隊沒有退路地仔細分析了原生系統的底層,邊戰邊練,讓我們的團隊積累了非常寶貴的經驗,也嘗到了深度優化安卓的甜頭。

第一道考題,我和軟件團隊初步獲得了CBG管理團隊的信任,有了一個好的起點。

四、走向生態協同的“深水區”

在解決卡頓這個頑疾的過程中,我們就發現安卓生態的松散是一個挑戰,這并不能通過技術來解決,但又和用戶體驗息息相關。

相較于iOS對生態的嚴格管控,安卓生態主要依賴玩家的自律自覺。打個不恰當的比方,安卓原生系統好比谷歌修好的一條高速公路,谷歌設想上路的自然是遵守交通規則的機動車,而實際情況卻是,不但機動車上路了,各種牛車、馬車、三輪車和行人都來了,加上沒有交警(優先級調度系統)負責管理,擁堵就成了常態。

這種狀況在國內尤甚。手機廠家不斷投入的技術,只是把端側的運行環境做得越來越高效、整潔。但應用市場的魚龍混雜對用戶體驗影響巨大,各安卓手機廠家不僅擁有自家的應用市場,還有種類繁多的第三方應用市場,再加上通過瀏覽器鏈接就能下載安裝App,還有各種木馬App、惡意軟件,互相引導安裝、偽裝后臺、無限制申請手機系統資源等,帶來的問題就是Apps對安卓系統資源的使用極不規范,甚至是惡意使用。

“病從口入”,導致的結果就是,用戶體驗不斷受損

華為面臨一個選擇,是隨大流,還是牽頭豎起大旗,聯合重量級生態玩家,逐步規范、凈化安卓生態,把優質的體驗還給消費者?

僅僅依靠手機廠家自身的持續技術投入和優化已然不夠,走向生態協同的“深水區”是華為終端軟件必須要邁出的一步。

經過大量的前期溝通討論,2016年11月14日,在上海的Mate 9系列發布會上,華為聯合阿里巴巴、百度、騰訊、網易四家企業共同發起了安卓綠色聯盟。作為一個開放的非盈利性組織,希望共同構建中國安卓綠色應用環境,打造安全、可靠、可信、健康的應用生態。


安卓綠色聯盟發布

安卓綠色聯盟成立后,集中發起廠家的經驗和智慧,陸續推出了《安卓綠色聯盟應用體驗標準》的1.0和2.0版本,涵蓋了應用安裝與運行的兼容性、穩定性、安全、功耗和性能標準。同時發展會員企業超過1000家,覆蓋80%的主流應用。

在安卓綠色聯盟平臺上,華為提供了超過3千臺測試真機,免費向所有安卓應用開發者開放,只要遠程登錄,即可申請到相應的測試資源并執行測試;同時,華為把安卓最新版本的變化及時分享給國內開發者,提升了安卓應用在新版本上的適配效率。

對于通過了《安卓綠色應用體驗標準》的應用打上“綠色應用”標記,讓消費者在應用下載時對應用質量的了解一目了然,可以安心使用。通過2年多的協作,綠盟已幫助超過20萬開發者進行免費測試、牽引Top 3000安卓應用降低了高功耗與權限濫用行為。消費者、應用開發者、互聯網廠商和手機廠家都因此受益。整個安卓生態的參與者,都愿意在這個平臺上共享經驗、共同創新。2018年還成立了AI開放生態合作、AI安全設計方案、AR、游戲加速四大創新工作組。

五、“嚇人”的GPU Turbo背后

2018年6月,余總在北京發布“嚇人的技術”GPU Turbo,不但引起了其他廠商對于“嚇人”和“Turbo”的跟風,也在一些主要的科技論壇引起了關于背后技術的大討論。

游戲產業在手機上的迅猛發展超乎很多人的預料,幾乎一半以上的用戶都是手游用戶。早在2016年,國內的手游已經占據了游戲市場的半壁江山,而且如王者榮耀、吃雞等“硬核化”游戲的普及,將游戲對于手機圖形處理能力的要求推向了前所未有的高度。而受限于ARM Mali GPU的限制,在與其他頂級友商的GPU的PK中,華為手機用戶對游戲體驗的吐槽急劇增多。

手游的體驗是不是只能依賴GPU的處理能力,或者類似某些所謂的游戲手機堆料來實現?能不能像整機性能一樣通過軟硬協同來優化?這些問題進入了我們的視野。說干就干,相關工作馬上開始啟動。

2017年2月,我們發起了一場中西合璧的針對手機圖形處理性能的攻關。雖然新加入的海外圖形處理專家給出了很有價值的思路,但是整個攻關過程并非一馬平川。其中經歷了無數次嘗試、接近、又推倒重來的過程。“勝則舉杯同慶,敗則拼死相救”,來自美國、芬蘭、俄羅斯和深圳、杭州、南京、上海的相應領域專家們,不論部門,不分晝夜,最終達成了預期的目標。

當最后我們說出GPU Turbo 可以提升游戲性能的同時降低功耗,業界開始是一片質疑,都覺得這個邏輯違反常理。但我們有充足的底氣,從GPU Pipeline(處理隊列)、CPU/GPU聯合調度,到OPEN GL(開放圖形庫)各指令的詳細解讀和細致調整,再到圖形處理引擎的重構和應用負載的清洗,完整的全棧分析和解決方案,讓我們有足夠的技術自信,敢于公開我們的目標和承諾。

6月6日,發布會現場,知名技術平臺現場直播搭載GPU Turbo的榮耀Play和其他友商手機的同款游戲對決。在幀率、抖動率、掉幀、耗電等硬指標上,榮耀Play獲勝!一個多小時的實時對戰,讓業界見識了GPU Turbo的實力。GPU Turbo上市之后的反響超出預期,而各種第三方自發的評測也證實華為手機坐穩了游戲性能的第一陣營。

任何成功的背后,都是艱辛和汗水,所有參與GPU Turbo項目的研發弟兄們,經歷過多少個不眠之夜已經記不得了。而我們始終牢記,潛心投入技術,聚焦提升用戶體驗,才是持續改變用戶觀念,提升品牌與口碑的王道。

六、軟件工程里的“硬核”技術

2018年7月初,GPU Turbo上市的余熱還未散去,忽然一起用戶投訴引起了維護與營銷團隊的注意。相當多的用戶在升級GPU Turbo之后,隨著某款熱門游戲的一次更新,不少場景出現了花屏。由于涉及華為和游戲廠商,究竟是誰的問題,中間是不是有什么故事,迅速成為媒體熱炒的內容,一時間各種說法紛至沓來。

盡管聲音很多,但對我們來說,用戶的體驗才是最重要的。僅僅2天之后,EMUI團隊把2MB左右的補丁包快速推出,迅速解決了問題。我們的快速反應能力,受到了廣大消費者幾乎一致的好評。


EMUI“刺激戰場”花屏修復補丁

這種快速的補丁升級能力,在終端領域,華為是獨有的,其他安卓廠家并不具備。這背后,是EMUI團隊這幾年持續構筑的軟件工程能力:代碼共主干、全棧架構解耦、版本自動化生成三個硬核能力。

工欲善其事必先利其器,軟件工程能力是軟件研發的“器”。強大的軟件工程能力是軟件研發的重要組成部分,也是軟件研發的硬核技術。

三年多以前的EMUI,基于海思Kirin、高通、MTK芯片的主干各不相同。主干只是物理上的代碼倉庫,質量基本沒有保證。各產品版本都是從主干拉出的分支,相關特性都是靠產品經理和開發代表手工挑出來,效率極為低下,質量無從保證。從單產品看似乎很“高效”,但各產品功能特性的一致性,質量的可繼承性幾乎很難做到,沒有一款存量機型能夠全網升級新版本。這致使整個軟件團隊工作量很大,但重復低效且沒有繼承性,令團隊人困馬乏,根本無法應對即將到來的海量交付。

從EMUI5.0版本立項開始,交付采用了全解決方案運作模式,將用戶交互、OS(操作系統)、海思、通信協議、安卓原生多個模塊納入統一規劃,同源設計、同源開發、同源測試。解決方案依賴關系識別好、管理好,計劃對齊。同時定下海思Kirin、高通共主干目標(MTK平臺2018并入主干,至此,華為EMUI一條主干兼容三大硬件平臺),代碼合入主干嚴格受控、質量優先,保證了主干的代碼質量。各產品不再需要拉分支,到發布的點直接按對應的產品出版本即可。主干版本每周可實現一輪全量的自動化測試,質量越來越好,交付也越來越高效,并且這個能力可持續傳承。共主干的實現,雖然讓產品線和軟件研發團隊都受到了不少“折磨”,但今天的收益讓所有的痛苦都變得很值得。

架構是軟件的骨架,是軟件團隊共同工作的基礎和統一語言。EMUI基于安卓原生系統,總代碼行數過億,幾乎是無線產品線產品代碼行數的兩倍。這么大規模的代碼,每年都要做大版本升級,而且安卓原生代碼每年的更改量和新增量都超過上千萬行。架構的模糊和耦合,讓新增功能的開發,現有功能的修改和變更,甚至BUG的修復都極其痛苦,血肉骨架混作一團,牽一發而動全身。這樣的系統其實已經很難維護和持續開發。架構的選擇和解耦成為不得不做的事情。

特別感謝余總和手機產品線總裁何剛的支持和信任,在人力資源有限的當時,允許我拿出40%的人力開始了EMUI全棧的架構解耦和重構。架構部擔起這個歷史使命,由軟件的8級專家胡征掛帥開始了三年多的架構解耦工作,多次的研討和激烈爭論,終于讓這項工作在過去的幾年持續了下來,并對今天EMUI的交付效率和質量,做出了巨大貢獻。一個清晰可解耦的架構,是軟件團隊內部的統一工作基礎,也是我們與業界合作的共同語言,讓我們“抽屜式”替換相應的安卓組件成為可能。這也是過去幾年,EMUI可以快速實現替換文件系統、智能調度系統、實現全棧補丁的基礎。谷歌新版本也在吸納我們的優秀實踐。全系統解耦的能力上,我們走在了業界最前沿。

EMUI 從緊耦合走向共主干全解耦

最后是版本的自動生成能力。手機版本需求復雜,有公開渠道、運營商渠道等各個不同版本。加上高、中、低檔機一組合,每年發布的版本有上萬個。版本管理和發布都極其復雜。CBG軟件團隊自行開發的CCM(版本自動編譯配置平臺)為這個問題的解決立下汗馬功勞。公開市場、運營商市場、不同國家、不通過配置等都抽象為一個個可配置的參數,總參數量幾千個。需要出版本的時候,根據目標市場的需求,選定和修改相應的配置后,一鍵配置下發,即可生成對應的版本。整個過程高效、高質量。這套系統上線以來,我們節省了200+的軟件配置人力,一直是零差錯平穩運行。

目前,EMUI日活用戶已接近5億。每個新版本的發布,除了支撐新機上市外,越來越多的機型可以同時升級,讓廣大消費者獲得了直接收益。

七、學習互聯網的開發效率,也注重平臺軟件的經驗積累

近幾年在軟件開發領域,互聯網化和DevOps等是非常熱門的話題。我想談一下在EMUI軟件研發實踐中的一些體會。EMUI全棧包括了APPs、中間件和OS底層。如果一概要求研發人員必須年輕,并且必須放棄IPD而采用互聯網的迭代方式,這種做法不盡合理,容易誤導團隊和領導對EMUI軟件研發的認知。

在軟件工程能力如共主干、架構解耦不具備之前,片面地去執行年輕化和迭代開發,那將是一場災難。上層APPs需要年輕人和快速迭代是對的,但中間件和OS,需要的是經驗第一,創新第二。沒有多年的經驗,不可能做好底層軟件。沒有好的底層,上層的應用體驗也不會好到哪里去。EMUI架構完全解耦的今天,APPs已經完全脫離EMUI平臺獨立發展,而且架構解耦的思想也落實到了APPs開發和實現中,實現了自主規劃、開發和交付上架,以及全功能團隊的快速迭代,這是非常接近于互聯網化的開發模式。而EMUI基礎平臺,仍基于IPD流程,扎扎實實按計劃持續開發積累,把質量做到最佳。全面Copy互聯網,認為談IPD而不談DevOps就是落后的代表,是一種誤導。IPD也好,DevOps也好,其實都是工具,關鍵是要準確把握業務訴求,根據業務特點選擇最適宜的模式和工具。

八、結語

進入2019年,隨著換機周期的拉長和增速的放緩,機行業進入到了飽和競爭的狀態。在硬件已極具競爭力并逐步甩開對手的基礎上,華為軟件已經開始持續發力,軟硬件緊密配合,將使華為終端的競爭力源源不斷。

始終聚焦用戶體驗,夯實底層核心能力,不斷提高軟件工程能力,構筑開放生態,我們有信心將EMUI打造為華為手機的硬實力。

用戶體驗的提升與創新之路,永無止境。

為你推薦
熱門文章
意見反饋
返回頂部
江苏快3真人计划 蛟河市| 习水县| 河西区| 云安县| 武汉市| 昌乐县| 当雄县| 高邮市| 绥宁县| 潼关县| 衡南县| 偏关县| 威信县| 岳西县| 明水县| 怀柔区| 平邑县| 曲阜市| 尉犁县| 渝北区| 宝坻区| 滕州市| 安康市| 平利县| 太康县| 黔东| 桑植县| 开化县| 友谊县| 黄大仙区| 渝北区| 嫩江县| 汉寿县| 班戈县| 黔西县| 饶河县| 河西区| 恩平市|