假如金銀海貴金屬把時刻倒回去智能手機剛鼓起的那幾年,回到iPhone早先幾代的時分。不知道咱們是不是還記得這樣一個畫面?用蘋果的朋友會對安卓用戶說,安卓那么卡,我真實不知道怎樣用。
那時分,蘋果還頻頻地與腎這個器官聯系在一同,安卓手機相對高端點的仍是HTC和三星,魅族和小米才嶄露頭角。而安卓必然會變卡頓和緩慢,好像是個知識問題。為了處理這個它,網上撒播著各種安卓刷機教程、一大堆整理內存的APP,以及無數《教你讓安卓不卡的10個絕招》這樣的文章。
白云蒼狗,不過沿襲幾年。
讓咱們回味一下今日,身邊還有因為安卓卡頓而堅持不用安卓的嗎?即使偶然有人宣布這種聲音,好像也立刻會被朋友回懟曩昔“你幾年不用國產手機了”?反而知乎和B站上,撒播著的是“給美國人安利EMUI”這樣的故事。

不經意間,咱們好像現已習慣了國產手機的高端定位,也很少有人還覺得安卓用幾個月就會卡到不能開機。
但這一切到底是怎樣發作的,或許大多數時分咱們沒空回頭仔細琢磨。事實上,從移動終端格局初現,我國手機群落就一刻也沒有中止過對安卓的優化和改善。直至今日,咱們會發現我國用戶享用的移動終端體會,簡直現已變成了“另一個物種”。
而這條“造物之路”并不好走。回憶這些年我國手機對安卓的一路“追打”,咱們或許會驚覺,本來這些年手機廠商、開發者和萬千用戶一同,完成了一件有點了不起的作業。
安卓的功也過也
原生安卓的卡頓問題,是前些年移動互聯網剛鼓起時,硬件圈評論最多的論題。可是開端回憶故事前,仍是有必要再概括一下安卓從誕生榜首秒起就注定的是非功過。
2003年10月,Andy Rubin等人創建了安卓公司。從最開端,這個項目便是希望在Linux根底上打造一個有利于極客們隨意開發的OS體系。
2005年,谷歌收購了剛剛建立22個月的安卓,并在爾后完成了這一項目的繼續優化與多邊測試。2007年,谷歌以Apache免費開源許可證的授權方式,發布了安卓源代碼。2008年,在蘋果正式改稱IOS之后幾個月,對外發布了安卓1.0版本。
移動終端終究只留下了iOS和安卓,有人以為這是因為兩個體系恰恰走向了兩個極端。與iOS一切都被框定,只能嚴格依照蘋果的規矩來做開發不同,安卓的最強優勢便是它超強的靈活性與習慣能力。
它能習慣最低端的手機配置;把所有途徑對外敞開,哪怕一個網頁都能裝置使用;簡略的安卓開發,近乎能夠速成。
客觀來說正是這些特質,才使得智能手機鼓起之初,許多的手機廠商、使用開發者、互聯網創業者,以及大多數不想賣腎換手機的用戶,能夠進入智能移動終端這個新世界。
可是成也敞開,病也敞開。安卓就像修建了一座滿足廣闊的城市,可是從規劃之初就沒打算在城市里安頓任何市政辦理體系。車隨便進,人隨便住,廢物隨便堆,終究導致了安卓廣為詬病的“必卡”問題。
綜合來看,從技能規矩上有三件事決定了安卓一向為人詬病的緩慢和卡頓:1無節制敞開的使用接口,導致安卓更或許加載廢物軟件;2每個使用的緩存文件都在安卓體系中進行堆積,形成體系會越用越卡頓;3安卓履行Java代碼,選用的虛擬機轉化機制,導致使用的運轉速度緩慢。
這三個“原罪”式的問題,盡管在安卓的每次更新中得到了大幅度緩解,但在本質上并沒有處理。
好在這不是安卓故事的結尾,而是我國軟件作業者的起點。
敞開我國式交互
盡管安卓的卡頓問題歷來都是“榜首黑點”,但我國開發者對安卓做的榜首件事并不是處理卡頓,而是改動交互。
客觀來說,谷歌發布的原生安卓是有自己的交互了解和審美規劃的,但是其的確更加符合歐美用戶一向的審美體會。另一個安卓的問題在于,我國用戶是銜接不上許多谷歌服務的。手機廠商必須給微信、淘寶、O2O這類“我國式移動服務”安排好進口。
于是從2010年開端,手機廠商陸續踏上了深度定制安卓交互的道路。其中最有名的商業事例,是從MIUI發家的小米。MIUI率先取消了安卓的使用抽屜規劃,將其改為類似iOS的桌面平鋪規劃。搭配簡練精美的規劃言語,奠定了我國用戶獨特的安卓習慣和交互審美了解。
當然,我國手機改動安卓交互也不是只有MIUI一種形式,比方主打海外商場的一加,就采取了盡量貼合原生安卓規劃的定制形式。爾后,深度定制的UI體系開端成為安卓陣營國產手機的標配,讓國產手機從體系外觀上就變成了獨立的物種。
這或許是大部分用戶都能直觀感覺到的安卓變遷史。但在這之后,國產手機“爆改安卓”之路開端走向了關鍵問題——卡頓,終究是用戶體會的死敵。
華為的深層行動
假如說,安卓手機在我國商場的興起,與改造交互規劃密不可分。那么華為的近幾年的強勢興起和走向高端化,則一直伴隨著另一條主線:對安卓進行體系級的深層改造。
這個行動敞開于2016年,伴隨著Mate9發布的EMUI 5.0中,有一個十分直接的能力,叫做“天生快一生快”。其時華為為此給出了一個著名的許諾:安卓18個月不卡頓。
上文現已說過,安卓的卡頓首要來自各個使用會帶來許多碎片化文件。由于安卓是直接架構在Linux根底上的,其文件體系在開端并沒有考慮碎片文件的快速收回。而安卓又能夠隨意裝置使用,這就導致每個使用的緩存、副本都會產生許多文件碎片,終究把文件體系堵死,形成卡頓,這也便是那幾年咱們現已習慣要經常整理文件碎片的原因。
這是其時安卓最大的槽點,也是華為在敞開高端化戰略時,必須在根底軟件層面處理的首要問題。終究華為的處理方案,是把安卓原生的文件體系,由EXT格局換成F2FS格局,從而使手機能夠極大程度上避免文件碎片。
F2FS格局最開端是三星一位技能人員發明并開源的,可是出于各種原因,三星并沒有勇于直接替換安卓的文件體系。而這個比如器官移植的“安卓手術”,卻在華為數百人團隊的盡力下,在我國做成了。
終究成果,是從EMUI 5.0開端,用戶就能夠不再手動整理碎片文件。當年咱們習以為常的動作,現在現已成了可笑的往事。
吃了一次“深度改動安卓”甜頭之后,華為又多次對安卓“下手”。比方上一年咱們十分熟悉的兩個turbo。GPU turbo在安卓的圖形中間件、內存辦理、進程辦理進步行了一系列優化;而Link turbo,改動了安卓的通信模塊、銜接模塊。
至此,華為對安卓的優化應該說現已走到了相當深層的方位。而從P30系列發布以來,許多開發者開端重視一個新名詞:方舟編譯器。
它之所以引發了滔滔江水般的評論,原因在于編譯器這東西,現已不僅是在修正安卓某一部分,而是直接作用于安卓的底層規矩。
從特性到規矩:
方舟編譯器觸發了什么?
大部分顧客或許不知道的是,安卓會卡和安卓會慢,其實還不是一件事。
即使文件廢物并沒有堆滿安卓的“倉庫”,咱們也仍然會覺得安卓打開雜亂的APP或者一起加載許多文件時,反響效率明顯不如iOS。
這個問題的原因,就在于上面所說的,安卓體系在履行Java指令的時分,需求進行虛擬機轉化。所謂虛擬機,能夠了解為程序員所用言語,與安卓了解的機器言語之間存在著一層翻譯。翻譯當然也沒有什么不好,可是假如在發動使用的一起進行翻譯,那明顯就會浪費許多時刻。這就比如兩人聊地利,加一位翻譯問題不大。但假如在足球比賽里,兩名球員要經過場邊的翻譯進行傳話,那就什么配合都甭想了。
已然虛擬機機制如此浪費時刻,為什么還要用它呢?答案在于安卓是使用Java言語開發的,而為了讓開發更方便,Java在開端規劃時就加入了一層虛擬機設置。不管在什么硬件進步行的編程,終究一致打到虛擬機去處理,這樣就讓開發者有了很好的適配靈活性。
可是這個設置,假如是在分秒必爭的手機體會中,一遍翻譯一遍履行的形式,就會變得異常負擔。尤其是今日的安卓使用,實際上往往是Java和C言語混合開發,兩種言語在履行層彼此轉化,又會浪費許多的時刻。
這個看似兩難的問題,處理思路其實十分“簡略粗獷”。華為給出的答案是,能夠直接在開發層,經過編譯器把使用直接轉成機器碼。咱們爽性把虛擬機扔掉就完了。
事實上,谷歌也早就意識到了安卓這個層面的問題,在裝置5.0之后,現已針對編譯做了許多優化,但依舊存在不少問題。而方舟編譯器,則從根底規矩上處理了轉碼的負擔,讓安卓體系的流通度提升了24%,讓EMUI 9.1在流通度層面絲毫不遜于iOS。
這個改動聽上去很輕松,有種“一招斃敵”的爽快感。但是底層編譯器卻是軟件層面最雜亂的作業之一。為了能夠真正在“安卓的魂靈處動刀”,華為從09年就開端預備,2013年就開發了自研編譯器HCC。2014年,華為以“多顧茅屋”之勢,請來了編譯器范疇世界最著名專家之一Fred Chow,擔任華為編譯器技能首席科學家。坊間撒播,全球能在底層改動安卓的人不到五個,而Fred Chow是其中之一。
就這樣,華為2012實驗室加上軟件工程部的數百位研發人員的漫漫十年征程,終究換來了即將開源給全球開發者的方舟編譯器。
故事到這兒,某種程度上來說我國的軟件開發者們,現已不僅僅是安卓的使用者,而是它的造物者。
當然,故事并不打算就此結束。
今日是結尾嗎?
華為顧客BG軟件部總裁王成錄博士以為,優化安卓依舊沒有結束。
而下一步,或許將是開發者能夠跳過中間層,直接將使用銜接于安卓底層庫,完成極簡的個性化開發。
在手機商場的“后半場”,越來越少看到“巧計制勝”的事例。而留下的,更多是技能深度和技能壁壘。
環繞安卓這條線,華為為代表的國產手機,接下來至少要做兩件事:一是繼續深化對安卓的優化改造,甚至經過許多技能貢獻反向影響安卓的大版本更新,成為主航道的制定者;二是繞開安卓“必須適配每一臺手機”的特性,在其他賽道上做出差異化晉級。今日來看,這種晉級首要環繞三個方向發作:云端一體化體會、AI功用和泛IoT聯接。
而關于華為這樣的大玩家來說,更進一步的題中應有之義,是經過從OS層到根底軟件,再到芯片架構,在每一層都擁有滿足的自主話語權,疊加在一同構成了華為未來環繞移動終端,能夠打出新的戰略或許性——在華為將目標定為全球頂端的時分,這是一條必須構筑的道路。
今日咱們很或許會忽略,安卓這個詞其實跟AI有密不可分的關系。1886年,法國作家維里耶德利爾·亞當在其創造的小說《未來夏娃》里,給外表像人的機器人女孩起名叫做Android。
書中“安卓”經歷了一次次蛻變,終究接近于男主人公夢中情人的樣子。
明顯,曩昔被冠以“窮人才用安卓”的操作體系,真實不像書中的安卓小姐。好在就像書中的情節一樣,安卓在實際里也沒有中止進化。它曩昔不如人意,未必將來也是如此。
就像從前我國在操作體系上是失語的,但未必將來也是如此。若干年曩昔,華為現已成為了世界上為安卓貢獻最多的開發者之一,未來,誰又知道呢?
安卓女士自機器之夢中醒來,會源于造物者的親吻。