Android11正式發布!談談Android11不為人知的劇變

Google近日正式發布了Android11。對於這個最新一代Android系統,所帶來的新功能新特性,自然頗具價值。不過考慮到中國往往會對原生Android的功能進行種種魔改,其實對於中國用戶來說,影響有限。

Android11對中國生態影響最大的,可能還是一些底層變化,這也較少為人提及。

Android11正式發布!談談Android11不為人知的劇變
Android 11 來了

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

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

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

Android11正式發布!談談Android11不為人知的劇變
刷機玩家再熟悉不過的Recovery

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

Android11正式發布!談談Android11不為人知的劇變

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

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

Android11的機制也與此相似。出廠預裝Android11的機器,取消了Recovery分區,而且對A/B分區機制進行了一定程度的改變。Android11需要升級系統的時候,會將新系統的數據和現在的系統數據進行對比校驗,將差異部分寫入另一個分區而不是系統分區;

之後,利用新數據啟動系統,如果系統順利啟動,那麼就將差異數據寫入到系統分區,啟動失敗則拋棄差異數據,用原來系統分區的數據啟動。

Android11這個新機制既有A/B分區的可靠性優點,也無需像A/B分區那樣佔據大量的額外空間。

無論如何,Recovery分區都已經遭到了遺棄,預裝Android11的機器,出廠就沒有Recovery分區,boot分區更多承擔起了以前Recovery分區的工作。Recovery是刷機不可或缺的工具,刷機玩家何去何從?恐怕得另覓出路了。

Android11是有史以來最容易升級的Android?

我們知道,Google一直為解決系統碎片化問題做努力,力求設備能夠升級最新版本的Android。

為此,Google作了很多努力,例如在Android8.0中推行了Project Treble機制,將系統(Android OS framework)單獨分區,和硬體驅動(Vendor implementation)分離,此後廠商可以為設備單獨推送新版Android,而不需要重新適配驅動。

Android11正式發布!談談Android11不為人知的劇變
Project Treble將Google的Android系統框架和硬體供應商提供的驅動作了分離

Project Treble大大簡化了Android系統的升級流程,但這還不夠。在Android10當中,Google推行了Project Mainline,將系統進一步細分模組化。

在Android10中,14個系統組件被Mainline化,媒體解碼器、許可權控制器、網路組件等系統組件,都可以像普通App一樣,通過應用商店來更新——很多朋友發現,今年Android機的GPU驅動竟然能夠獨立更新,就得益於此。

Android11正式發布!談談Android11不為人知的劇變
高通宣布GPU驅動可以單獨更新

在Android11中,Google又進一步對Android組件進行細分,Android的組件模組達到了20個之多,Android的系統維護將會變得前所未有地靈活。

不僅如此,Google還將改制推行到了系統內核當中,Android的Linux系統內核升級將會變得更加靈活。

在當前的Android系統中,Linux系統內核升級大體需要經歷三個步驟。首先,Google選定一個Linux LTS版本作為Android內核,打上Android運行所需要的Patch;

接著,Google將這個內核提交給高通等SoC供應商,供應商再次將其打造成為適配SoC的內核;

最後,三星等設備商再讓內核適配不同的元器件,再次為內核打上各種Patch,讓內核成為真正可以在Android機上運行的版本。

Android11正式發布!談談Android11不為人知的劇變
傳統的Android系統Linux內核升級流程,需要經由重重環節,非常麻煩

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

而在Android11中,情況有所變化,Google將系統內核進行了模組化修改,內核被分成了Generic Kernel Image(GKI)和其他GKI模組。

如果想要升級Linux版本,Google可以直接面向Android機推送GKI,手機直接升級GKI即可,再也不需要經歷從SoC廠商到手機設備廠商的繁瑣步驟。

Android11正式發布!談談Android11不為人知的劇變

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

據了解,Android11的這一特性,在內核版本高於Linux 5.4以上的設備上,是要求強制執行的。

可以說,如果Android11的設備出廠內核版本就是Linux 5.4以上,那它有可能會是史上最容易升級的Android。

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

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

Android11正式發布!談談Android11不為人知的劇變
Android存儲目錄各種雜亂的文件夾哪來的呢?

Android機的內部存儲目錄一度非常小,例如經典的Milestone的ROM只有512M,需要用SD卡擴展存儲空間,因此AndroidApp往往會將文件保存在外部存儲目錄下(也就是sdcard目錄)。

而Android在4.3版本前並沒有提供外部存儲目錄的規範,App習慣在sdcard目錄中隨意建立自己的文件夾,這個習慣一直保留到如今。

現在,儘管Android建立了sdcard目錄的存儲規範,例如Android系統規定App如果要在內部存儲空間建立文件夾,需要建立到/data/data/目錄下,在外部存儲空間則需要建立在/sdcard/Android/data/目錄下。

然而這一規範並非是強制性的,很多App由於使用第三方SDK等各種各樣的原因,視Android的存儲目錄規範不見,依然在sdcard目錄下自建文件夾,Android存儲目錄的混亂由此而來。

在Android11中,文件夾亂象終於有望得到徹底解決。Android11將不再允許App在sdcard建目錄和文件,APP只能夠往特定目錄的私人文件夾寫入數據。

目前某些APP已經開始為此做準備,例如新版QQ將存儲目錄從/sdcard/tencent/變更到了/sdcard/Android/data/com.tencent.mobileqq/Tencent/,就是為了適應Android的存儲新機制

總結

除了上文所提到的,Android11還有很多非常有意義的更新,例如更強大的隱私保護、改進的通知系統等等,這裡就不一一列舉了。

總的來說,Android11是一個從裡到外都進行了重大改革的版本,它解決了Android的很多歷史問題,大家共同期待吧。