陸靜
最近,MIUI開始推送獨立GPU驅動的事情,引起了很多朋友的關注。通常情況下,手機的硬件驅動往往不能像電腦一樣,獨立安裝升級,現在情況居然發生了變化,不少朋友紛紛感嘆這簡直就是黑科技。
GPU驅動能夠獨立升級,對于用戶體驗來說,無疑是一件好事情。通過獨立的驅動更新,手機能夠更迅速便捷地獲得新驅動,帶來性能提升、問題修復。這樣的好事情,在別的安卓上也會有嗎?這是獨門科技還是大勢所趨?
安卓為何沒法單獨升級驅動
安卓之所以長時間以來,沒法像Windows那樣靈活升級驅動,是和系統架構息息相關的。安卓基于Linux,而Linux使用的是宏內核,系統內核和驅動等模塊緊密結合。而Windows的架構更接近于微內核,系統各模塊之間分離度較高。
宏內核和微內核(類微內核)的特性,會反映到驅動的更新推送的體驗上。由于宏內核將驅動和系統內核耦合在一起,因此如果想要升級驅動,往往需要升級系統;而Windows這樣的類微內核系統,則可以獨立升級驅動。微軟為了兼容更多硬件,還為驅動設計了標準模型,例如圖形驅動的WDDM和音頻架構UAA等,只要驅動編寫符合WDDM,UAA等架構,就可以自行安裝升級,無需對系統內核進行改動。
盡管宏內核在驅動升級方面不夠靈活,但Linux之所以如此設計,還是有道理的———宏內核耦合度高,這可以帶來更高的進程間IPC通信效率,性能更為出色。因此,可以看到Linux廣泛應用于各類不同性能的設備之上,超算用Linux能夠更加物盡其用,智能手環這樣的小物件用Linux則可以帶來更流暢的體驗。
安卓的改變:裝驅動越來越像Windows
然而,宏內核在移動互聯網和物聯網時代,則遭遇到了一些挑戰,各式各樣智能設備迅速涌現,令硬件適配成為了一個不得不面對的問題。
以安卓機為例,市面上的安卓機使用了不同的CPU、GPU、基帶和CODEC等,由于宏內核的高耦合度,安卓機很難對操作系統和硬件驅動進行單獨升級,無論想要升級系統還是想要升級驅動,廠商都需要為每個安卓機型號單獨制作系統鏡像。并不是每個廠商都會選擇投入很大精力到系統維護當中的,這導致了安卓系統和驅動升級困難,最后的結果就是安卓機系統版本的碎片化。
為此,Google改變了安卓的形態,在安卓8.0中推行了 Project Treble機制,將系統(Android OS framework)單獨分區,和硬件驅動(Vendor implementation)分離,此后廠商可以為設備單獨推送新版安卓,而不需要重新適配驅動。Project Treble大大簡化了安卓系統的升級流程,因此安卓8.0以后的設備,升級安卓大版本的速度比以前更快了。
但在安卓10當中,Google推行了Project Mainline,將系統進一步細分模塊化。在安卓10中,14個系統組件被Mainline化,媒體解碼器、權限控制器和網絡組件等系統組件,都可以像普通APP一樣,通過應用商店來更新,GPU驅動能夠獨立更新,就得益于此。
可以說,安卓通過Project Treble和Project Mainline,正變得越來越“微內核”。在尚未正式發布的安卓11中,安卓的組件模塊達到了20個之多,安卓的系統維護將會變得前所未有地靈活,變得越來越像PC。
GPU驅動升級是黑科技嗎
MIUI之所以能夠通過應用商店獨立更新GPU驅動,主要是受益于安卓Project Treble和Project Mainline的特性,而作為此次更新所服務的硬件,高通芯片的貢獻也功不可沒。
在2019年底,高通就宣布旗下的最新SoC驍龍865,可以通過應用商店來獨立更新驅動,而且更新操作和更新APP一樣簡單。不過當時高通所說的是通過Google Play商店來進行更新,由于國內無法使用Google Play,因此MIUI轉用自己的渠道更新GPU驅動,效果還是很不錯的。
如無意外,高通今后也會繼續為旗下的芯片發布新驅動,不過是否所有的安卓機都能收到更新?這最終還得看手機OEM廠商———驅動發布后,需要OEM廠商進行測試,然后再向用戶推送。無論如何,OEM廠商所需要做的工作,已經比以往少了許多,如果這樣都不給用戶提供驅動升級,未免太說不過去。
目前高通似乎尚未明確除了驍龍865外,還沒有芯片能夠獲得獨立的驅動更新,但無論如何,Project Mainline的前途是光明的。此后我們有望在越來越多的手機上能得到GPU驅動升級這樣的福利,這個Google帶來的“黑科技”將成為解決安卓碎片化的希望。
隨著移動互聯網和物聯網的發展,為了更靈活地適配硬件,系統的“微內核化”似乎成為了趨勢,從安卓的系統架構變更可以印證這點。希望有更多硬件廠商跟進安卓的新機制,及時為各類硬件推送獨立驅動,為用戶帶來更好的體驗。