談?wù)凙ndroid11不為人知的變化
谷歌最近正式發(fā)布了Android 11。 這些新功能無疑對于最新一代的Android系統(tǒng)非常有價值。 但是,由于在中國經(jīng)常對Android本機(jī)功能進(jìn)行各種神奇的更改,因此對家庭用戶的影響是有限的。 Android 11對家庭生態(tài)的最大影響可能是由于鮮有提及的變化。
沒錯,安卓11的底層又有了不少大變化!所帶來的巨變,會深刻影響廣大用戶,今天就一起來聊聊吧。
刷機(jī)不再變磚?Recovery 分區(qū)成為歷史!
如果你是一名安卓刷機(jī)玩家,一定知道 Recovery 這個名詞。這是安卓系統(tǒng)中,用于恢復(fù)系統(tǒng)的模式,無論是廠商官方升級系統(tǒng),還是玩家刷入第三方 ROM,通常需要通過 Recovery 來進(jìn)行。在安卓機(jī)中,還專門劃分了一個分區(qū)來放置 Recovery,但這在安卓11中要成為歷史了。
傳統(tǒng)的 Recovery 升級模式,如果寫入 System 系統(tǒng)分區(qū)的數(shù)據(jù)有誤,那么機(jī)器可能就無法啟動,刷機(jī)玩家應(yīng)該很熟悉這一類 “變磚”的情況,甚至廠商 OTA 偶爾也會 “變磚”。要如何避免?事實(shí)上,近年的新安卓機(jī)使用 A/B 分區(qū)機(jī)制,很多安卓機(jī)已經(jīng)不需要 Recovery 來引導(dǎo)升級。
Android 系統(tǒng)啟動方式的變更,之前需要經(jīng)由 Recovery,使用 A/B 分區(qū)機(jī)制后直接通過 boot 來引導(dǎo)啟動
在采用了 A/B 分區(qū)機(jī)制的安卓機(jī)中,當(dāng)系統(tǒng)需要升級的時候,會將新的系統(tǒng)寫入其中一個分區(qū),寫入成功后則從該分區(qū)啟動;如果寫入失敗,或者啟動失敗,則從原分區(qū)啟動,這相當(dāng)于兩個系統(tǒng)分區(qū)相互備份,大大減少了系統(tǒng)升級的故障率。
安卓11的機(jī)制也與此相似。出廠預(yù)裝安卓11的機(jī)器,取消了 Recovery 分區(qū),而且對 A/B 分區(qū)機(jī)制進(jìn)行了一定程度的改變。安卓11需要升級系統(tǒng)的時候,會將新系統(tǒng)的數(shù)據(jù)和現(xiàn)在的系統(tǒng)數(shù)據(jù)進(jìn)行對比校驗(yàn),將差異部分寫入另一個分區(qū)而不是系統(tǒng)分區(qū);之后,利用新數(shù)據(jù)啟動系統(tǒng),如果系統(tǒng)順利啟動,那么就將差異數(shù)據(jù)寫入到系統(tǒng)分區(qū),啟動失敗則拋棄差異數(shù)據(jù),用原來系統(tǒng)分區(qū)的數(shù)據(jù)啟動。
安卓11這個新機(jī)制既有 A/B 分區(qū)的可靠性優(yōu)點(diǎn),也無需像 A/B 分區(qū)那樣占據(jù)大量的額外空間。無論如何,Recovery 分區(qū)都已經(jīng)遭到了遺棄,預(yù)裝安卓11的機(jī)器,出廠就沒有 Recovery 分區(qū),boot 分區(qū)更多承擔(dān)起了以前 Recovery 分區(qū)的工作。Recovery 是刷機(jī)不可或缺的工具,刷機(jī)玩家何去何從?恐怕得另覓出路了。
安卓11是有史以來最容易升級的安卓?
我們知道,Google 一直為解決系統(tǒng)碎片化問題做努力,力求設(shè)備能夠升級最新版本的安卓。為此,Google 作了很多努力,例如在安卓8.0中推行了 Project Treble 機(jī)制,將系統(tǒng)(Android OS framework)單獨(dú)分區(qū),和硬件驅(qū)動(Vendor implementation)分離,此后廠商可以為設(shè)備單獨(dú)推送新版安卓,而不需要重新適配驅(qū)動。
Project Treble 將 Google 的安卓系統(tǒng)框架和硬件供應(yīng)商提供的驅(qū)動作了分離
Project Treble 大大簡化了安卓系統(tǒng)的升級流程,但這還不夠。在安卓10當(dāng)中,Google 推行了 Project Mainline,將系統(tǒng)進(jìn)一步細(xì)分模塊化。在安卓10中,14個系統(tǒng)組件被 Mainline 化,媒體解碼器、權(quán)限控制器、網(wǎng)絡(luò)組件等系統(tǒng)組件,都可以像普通 App 一樣,通過應(yīng)用商店來更新——很多朋友發(fā)現(xiàn),今年安卓機(jī)的 GPU 驅(qū)動竟然能夠獨(dú)立更新,就得益于此。
高通宣布 GPU 驅(qū)動可以單獨(dú)更新
在安卓11中,Google 又進(jìn)一步對安卓組件進(jìn)行細(xì)分,安卓的組件模塊達(dá)到了20個之多,安卓的系統(tǒng)維護(hù)將會變得前所未有地靈活。不僅如此,Google 還將改制推行到了系統(tǒng)內(nèi)核當(dāng)中,安卓的 Linux 系統(tǒng)內(nèi)核升級將會變得更加靈活。
在當(dāng)前的安卓系統(tǒng)中,Linux 系統(tǒng)內(nèi)核升級大體需要經(jīng)歷三個步驟。首先,Google 選定一個 Linux LTS 版本作為安卓內(nèi)核,打上安卓運(yùn)行所需要的 Patch;接著,Google 將這個內(nèi)核提交給高通等 SoC 供應(yīng)商,供應(yīng)商再次將其打造成為適配 SoC 的內(nèi)核;最后,三星等設(shè)備商再讓內(nèi)核適配不同的元器件,再次為內(nèi)核打上各種 Patch,讓內(nèi)核成為真正可以在安卓機(jī)上運(yùn)行的版本。
傳統(tǒng)的 Android 系統(tǒng) Linux 內(nèi)核升級流程,需要經(jīng)由重重環(huán)節(jié),非常麻煩
由于步驟繁瑣,因此當(dāng)前的安卓機(jī)一旦出廠,Linux 內(nèi)核就很少變動,即使是 Google 旗下的 Pixel 設(shè)備,內(nèi)核也依然只是較為老舊的 Linux 4.14。
而在安卓11中,情況有所變化,Google 將系統(tǒng)內(nèi)核進(jìn)行了模塊化修改,內(nèi)核被分成了 Generic Kernel Image(GKI)和其他 GKI 模塊。如果想要升級 Linux 版本,Google 可以直接面向安卓機(jī)推送 GKI,手機(jī)直接升級 GKI 即可,再也不需要經(jīng)歷從 SoC 廠商到手機(jī)設(shè)備廠商的繁瑣步驟。
Android 11開始,內(nèi)核進(jìn)行了模塊化,一個 GKI 內(nèi)核可以通用于市面上的大量安卓機(jī)
據(jù)了解,安卓11的這一特性,在內(nèi)核版本高于 Linux 5.4以上的設(shè)備上,是要求強(qiáng)制執(zhí)行的??梢哉f,如果安卓11的設(shè)備出廠內(nèi)核版本就是 Linux 5.4以上,那它有可能會是史上最容易升級的安卓。
安卓存儲目錄文件夾亂象徹底解決? 相信不少人發(fā)現(xiàn),安卓機(jī)用久了以后,存儲目錄下就會多出很多奇奇怪怪的文件夾,這些文件夾是由各種 App 生成的,這其實(shí)是一個歷史遺留問題。
安卓存儲目錄各種雜亂的文件夾哪來的呢?
安卓機(jī)的內(nèi)部存儲目錄一度非常小,例如經(jīng)典的 Milestone 的 ROM 只有512M,需要用 SD 卡擴(kuò)展存儲空間,因此安卓 App 往往會將文件保存在外部存儲目錄下(也就是 sdcard 目錄)。而安卓在4.3版本前并沒有提供外部存儲目錄的規(guī)范,App 習(xí)慣在 sdcard 目錄中隨意建立自己的文件夾,這個習(xí)慣一直保留到如今。
現(xiàn)在,盡管安卓建立了 sdcard 目錄的存儲規(guī)范,例如安卓系統(tǒng)規(guī)定 App 如果要在內(nèi)部存儲空間建立文件夾,需要建立到 / data/data / 目錄下,在外部存儲空間則需要建立在 / sdcard/Android/data / 目錄下。然而這一規(guī)范并非是強(qiáng)制性的,很多 App 由于使用第三方 SDK 等各種各樣的原因,視安卓的存儲目錄規(guī)范不見,依然在 sdcard 目錄下自建文件夾,安卓存儲目錄的混亂由此而來。
在安卓11中,文件夾亂象終于有望得到徹底解決。安卓11將不再允許 App 在 sdcard 建目錄和文件,APP 只能夠往特定目錄的私人文件夾寫入數(shù)據(jù)。目前某些 APP 已經(jīng)開始為此做準(zhǔn)備,例如新版 QQ 將存儲目錄從 / sdcard/tencent / 變更到了 / sdcard/Android/data/com.tencent.mobileqq/Tencent/,就是為了適應(yīng)安卓的存儲新機(jī)制。