當前位置:
首頁 > 科技 > 在沒人注意的角落,谷歌為系統更新操碎了心

在沒人注意的角落,谷歌為系統更新操碎了心

雖然同樣是在上月亮相,但谷歌推送的Android 11正式版引發的討論與關注,顯然遠遠比不上iOS 14正式版的亮相。這背後當然不是因為iOS用戶在絕對數量上更多,也不是Android本身的更新內容不夠有趣與有意義,而是因為在很多人的認知和實踐中,iOS的大版本更新往往很快就能用上,而Android的大版本更新,則通常要等待很久才會被各手機廠商推送。

既然不能馬上進行體驗,用戶的漠不關心自然也就很正常。當然,這一切最終還是因為Android系統碎片化的歷史欠賬,所導致的結果,而版本已經嚴重碎片化的Android系統與手機廠商複雜的產品線,也就讓作為終端手機廠商緊跟谷歌的腳步,推出Android大版本更新的節奏成為了空談。

但好在自Android 8開始,谷歌方面就一直在積極「補課」,其實現在也已經取得了一定的成果。雖然從2019年8月開始,谷歌方面就已經不再公示各Android版本的具體比例,但在不久前官方公布了一組數據,顯示通過系統檢測顯示,Android 10的安裝基數從2019年9月開始後5個月里就達到了1億之多,並且這一速度相比上代的Android 9加快了28%。

簡而言之,也就是說Android 10成為迄今為止普及速度最快的Android版本。而這一成績背後,則源自於谷歌從Android 8時代引入Project Treble,以及Android 10開始引入的Project Mainline有著不小的關係。Android 8上我們三易生活曾經介紹過多次的Project Treble,是將HAL(硬體抽象層)綁定模式化,改變了以往硬體驅動與系統之間的強關聯情況,將「系統層」與「驅動層」拆分,解除了驅動和系統版本的「掛鉤」機制,使得手機此後廠商可以為產品單獨推送新的Android版本,而不需要重新進行驅動的適配。

當然,此後的Android 9上同樣也有Project Treble的加持,但讓Android 10普及速度更上一層樓的,其實則是Project Mainline。這一新特性是將系統功能進行模塊化,把Android的12個核心組件,也就是媒體編解碼器、媒體框架組件、DNS 解析器、Conscrypt、許可權控制器、模塊元數據等做成了模塊,並使用應用商店來進行更新。

Project Mainline的意義簡單來說幾乎可以解釋為「哪裡不對點哪裡」,如果Conscrypt模塊,也就是加速實現安全改進並提高設備安全性的模塊出現問題,谷歌方面可以直接通過Google Play推送新版本的Conscrypt給用戶,而不再需要像以往一樣將這個「BUG修復」整合到系統更新中。事實上,高通主控中的GPU以及ARM的Mali GPU能夠實現將GPU驅動單獨在應用商店更新,正式是得益於這一功能的加入。

而更具有里程碑意義的變化,則出現在如今的Android 11上,也就是谷歌方面開始對Android的Linux內核進行改動了,其試圖將Android設備內核統一至Linux內核的主線。眾所周知,為了盡最大努力規避GPL協議所帶來的法律風險,谷歌方面一直在想方設法將Linux內核與設備驅動剝離開,儘管目前這個剝離並不完美,以至於雖然依舊存在法律風險,但Android是可以被視為Linux發行版的。

Linux內核對於Android而言無疑是大廈的基石,因此Linux內核的升級會獲得BUG修復所帶來的安全性、新的硬體驅動、新特性,以及效率的提升。然而運行在Android設備上的Linux內核,其實與谷歌選擇的LTS(長期支持)版本Linux內核有很大不同。根據官方公布的數據顯示,截止2018年2月,與Linux 4.14.0相比,Android通用內核更改了355行,插入了32266行,並刪除了1546行。

在Android 11之前,Linux在到達每一台Android設備前,內核會經歷三個階段的fork。谷歌首先會先選擇某個LTS版本(通常為4.14.0)的Linux內核,打上Android系統的特定補丁,使得其成為Android通用內核;緊接著Android通用內核被交付給高通等SoC供應商,集成上主板、藍牙、WiFi等硬體驅動;最後再被移交至三星與小米這樣的設備製造商,打上設備特定的各類元器件驅動,這才構成到了每台設備中的內核。

但這樣一套操作下來的最終結果,就是Android設備所使用的內核相較於Linux內核主線,要滯後兩到三年的時間。例如谷歌方面在去年11月發布的Pixel 4上,所使用的就是Linux在2017年11月發布的4.14 LTS版本,而剛剛發布的Pixel 5則使用的是Linux 4.19LTS版本,而非作為主線的Linux 5.9。並且由於升級的繁瑣,也導致了出廠的Android通用內核版本將會伴隨這一設備的幾乎整個使用壽命。

面對這一情況,在Android 11中谷歌將系統內核進行了模塊化的修改,將內核分成了通用內核鏡像(Generic Kernel Image,GKI)與其他GKI模塊,其中特定硬體的驅動程序(可能是閉源驅動)將作為內核模塊載入,從而提供一個穩定的寫入介面,使硬體廠商可以輕鬆的插入代碼,以實現最終消除特定設備內核的目的。而這就可以避免此前類似三星向Linux內核添加唯一代碼後,對系統安全造成影響的結果出現。

在Android 11後,谷歌想要升級內核版本,以便讓相應設備獲得更安全以及更高的性能,就可以直接向具體的設備推送GKI,而不再需要上游元器件廠商以及設備製造商的配合。

因此總而言之,這就意味著從Android 11開始,關於Android系統的一切幾乎都被模塊化,而這樣的改變所帶來的將是更加靈活與方便的更新方式。因此極有可能在Android 11之後的系統更新中,更新速度將會越來越快,甚至最終比肩iOS的更新速度也並不是沒有可能。

【本文圖片來自網路】

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!


請您繼續閱讀更多來自 三易生活 的精彩文章:

蘋果A14主控測試成績現身,CPU頻率達2.99GHz
三星Exynos旗艦晶元歸來,或將攪動國內市場