正在閱讀:安卓11正式發佈!談談安卓11不為人知的劇變安卓11正式發佈!談談安卓11不為人知的劇變

2020-09-12 00:15 出處:PConline原創 作者:Aimo 責任編輯:censi

  [PConline 雜談]Google近日正式發佈了安卓11。對於這個最新一代安卓系統,所帶來的新功能新特性,自然頗具價值。不過考慮到國內往往會對原生安卓的功能進行種種魔改,其實對於國內用戶來說,影響有限。安卓11對國內生態影響最大的,可能還是一些底層變化,這也較少為人提及。

Android 11 來了
Android 11 來了

  沒錯,安卓11的底層又有了不少大變化!所帶來的劇變,會深刻影響廣大用戶,今天就一起來聊聊吧。

刷機不再變磚?Recovery分區成為歷史!

  如果你是一名安卓刷機玩家,一定知道Recovery這個名詞。這是安卓系統中,用於恢復系統的模式,無論是廠商官方陞級系統,還是玩家刷入第三方ROM,通常需要透過Recovery來進行。在安卓機中,還專門劃分了一個分區來放置Recovery,但這在安卓11中要成為歷史了。

刷機玩家再熟悉不過的Recovery
刷機玩家再熟悉不過的Recovery

  傳統的Recovery陞級模式,如果寫入System系統分區的數據有誤,那麼機器可能就無法啟動,刷機玩家應該很熟悉這一類“變磚”的情況,甚至廠商OTA偶爾也會“變磚”。要如何避免?事實上,近年的新安卓機使用A/B分區機制,很多安卓機已經不需要Recovery來引導陞級。

android a b partition
Android系統啟動方式的變更,之前需要經由Recovery,使用A/B分區機制後直接透過boot來引導啟動

  在採用了A/B分區機制的安卓機中,當系統需要陞級的時候,會將新的系統寫入其中一個分區,寫入成功後則從該分區啟動;如果寫入失敗,或者啟動失敗,則從原分區啟動,這相當於兩個系統分區相互備份,大大減少了系統陞級的故障率。

  安卓11的機制也與此相似。出廠預裝安卓11的機器,取消了Recovery分區,而且對A/B分區機制進行了一定程度的改變。安卓11需要陞級系統的時候,會將新系統的數據和現在的系統數據進行對比校驗,將差異部分寫入另一個分區而不是系統分區;之後,利用新數據啟動系統,如果系統順利啟動,那麼就將差異數據寫入到系統分區,啟動失敗則拋棄差異數據,用原來系統分區的數據啟動。

  安卓11這個新機制既有A/B分區的可靠性優點,也無需像A/B分區那樣佔據大量的額外空間。無論如何,Recovery分區都已經遭到了遺棄,預裝安卓11的機器,出廠就沒有Recovery分區,boot分區更多承擔起了以前Recovery分區的工作。Recovery是刷機不可或缺的工具,刷機玩家何去何從?恐怕得另覓出路了。

安卓11是有史以來最容易陞級的安卓?

  我們知道,Google一直為解決系統碎片化問題做努力,力求設備能夠陞級最新版本的安卓。為此,Google作了很多努力,例如在安卓8.0中推行了Project Treble機制,將系統(Android OS framework)單獨分區,和硬體驅動(Vendor implementation)分離,此後廠商可以為設備單獨推送新版安卓,而不需要重新適配驅動。

Project Treble
Project Treble將Google的安卓系統框架和硬體供應商提供的驅動作了分離

  Project Treble大大簡化了安卓系統的陞級流程,但這還不夠。在安卓10當中,Google推行了Project Mainline,將系統進一步細分模組化。在安卓10中,14個系統元件被Mainline化,媒體解碼器、權限控制器、網路元件等系統元件,都可以像普通App一樣,透過應用商店來更新——很多朋友發現,今年安卓機的GPU驅動竟然能夠獨立更新,就得益於此。

安卓GPU驅動陞級
高通宣佈GPU驅動可以單獨更新

  在安卓11中,Google又進一步對安卓元件進行細分,安卓的元件模組達到了20個之多,安卓的系統維護將會變得前所未有地靈活。不僅如此,Google還將改制推行到了系統內核當中,安卓的Linux系統內核陞級將會變得更加靈活。

  在目前的安卓系統中,Linux系統內核陞級大體需要經歷三個步驟。首先,Google選取一個Linux LTS版本作為安卓內核,打上安卓運行所需要的Patch;接著,Google將這個內核提交給高通等SoC供應商,供應商再次將其打造成為適配SoC的內核;最後,三星等設備商再讓內核適配不同的元器件,再次為內核打上各種Patch,讓內核成為真正可以在安卓機上運行的版本。

Android 11 GKI
傳統的Android系統Linux內核陞級流程,需要經由重重環節,非常麻煩

  由於步驟繁瑣,因此目前的安卓機一旦出廠,Linux內核就很少變動,即使是Google旗下的Pixel設備,內核也依然只是較為老舊的Linux 4.14。

  而在安卓11中,情況有所變化,Google將系統內核進行了模組化修改,內核被分成了Generic Kernel Image(GKI)和其他GKI模組。如果想要陞級Linux版本,Google可以直接面向安卓機推送GKI,手機直接陞級GKI即可,再也不需要經歷從SoC廠商到手機設備廠商的繁瑣步驟。

Android 11 GKI
Android 11開始,內核進行了模組化,一個GKI內核可以通用於市面上的大量安卓機

  據了解,安卓11的這一特性,在內核版本高於Linux 5.4以上的設備上,是要求強制執行的。可以說,如果安卓11的設備出廠內核版本就是Linux 5.4以上,那它有可能會是史上最容易陞級的安卓。

安卓存儲目錄文件夾亂象徹底解決?

  相信不少人發現,安卓機用久了以後,存儲目錄下就會多出很多奇奇怪怪的文件夾,這些文件夾是由各種App產生的,這其實是一個歷史遺留問題。

安卓文件夾
安卓存儲目錄各種雜亂的文件夾哪來的呢?

  安卓機的內部存儲目錄一度非常小,例如經典的Milestone的ROM只有512M,需要用SD卡擴展存儲空間,因此安卓App往往會將文件保存在外部存儲目錄下(也就是sdcard目錄)。而安卓在4.3版本前並沒有提供外部存儲目錄的規范,App習慣在sdcard目錄中隨意建立自己的文件夾,這個習慣一直保留到如今。

  現在,儘管安卓建立了sdcard目錄的存儲規范,例如安卓系統規定App如果要在內部存儲空間建立文件夾,需要建立到/data/data/目錄下,在外部存儲空間則需要建立在/sdcard/Android/data/目錄下。然而這一規范並非是強制性的,很多App由於使用第三方SDK等各種各樣的原因,視安卓的存儲目錄規范不見,依然在sdcard目錄下自建文件夾,安卓存儲目錄的混亂由此而來。

  在安卓11中,文件夾亂象終於有望得到徹底解決。安卓11將不再允許App在sdcard建目錄和文件,APP只能夠往特定目錄的私人文件夾寫入數據。目前某些APP已經開始為此做準備,例如新版QQ將存儲目錄從/sdcard/tencent/變更到了/sdcard/Android/data/com.tencent.mobileqq/Tencent/,就是為了適應安卓的存儲新機制。

總結

  除了上文所提到的,安卓11還有很多非常有意義的更新,例如更強大的隱私保護、改進的通知系統等等,這裡就不一一列舉了。總的來說,安卓11是一個從堥鴠~都進行了重大改革的版本,它解決了安卓的很多歷史問題,大家共同期待吧。

關注我們

最新資訊離線隨時看 聊天吐槽贏獎品