時間:2017-12-20 來源:互聯網 瀏覽量:
自從穀歌正式發布Android 8.0係統到現在,已經過去了幾個月的時間。最近,一些業內一線大廠都開始了自家的Android 8.0係統測試,諸如HTC U11、小米MIX2、一加5、LG V30都迎來了各自的Android 8.0Beta版測試固件。而三星Galaxy S8的首輪測試甚至已經接近尾聲,有消息稱其準備在更多國家和地區開啟更大麵積的測試版係統升級,其中就包括中國、德國、法國以及東南亞等地。當然,動作更快的索尼甚至已經完成了測試,開始向旗下多款機型推送正式版升級了~
然而,在這些大廠推送的Android 8.0中,有那麼一家廠商的係統在海外開發者圈子裏引發了熱烈的歡呼以及討論,它並不是“速度最快”的索尼,而是中國廠商華為。它們家的海外版Mate9最新測試係統同樣基於Android 8.0開發而來,但和其他幾家的測試版或正式版固件不同的是,華為海外版Mate9所推送的Android 8.0固件加入了一個非常重要的新特性:Project Treble(或者簡稱PT)。
首先,你需要知道 為什麼係統更新會成為Android大問題?
在解釋Project Treble的作用之前,筆者想請大家思考一個問題:為什麼每次穀歌發布新版Android係統之後,各大一線廠商都需要好幾個月的時間才能做出自己的係統更新,而二線廠商有時候甚至需要一年左右的時間?
有的朋友可能會想到深度定製係統所需的“改造”耗時很長,還有的朋友可能拋出廠商故意不給老設備更新係統,以此促進新產品銷售的“陰謀論”……咳咳,我什麼都不知道。
但是,其實以上的說法都沒有真正觸及問題核心:導致安卓係統適配緩慢,同時也是導致許多老設備無法更新到最新係統的最大原因既不是性能不足,也不是廠商缺乏技術,而是源自於Android的一個“天生”缺陷。
任何一位PC玩家都知道,傳統電腦的驅動程序是可以自行安裝、升級的,而且某一個驅動往往可以兼容不隻一代操作係統。典型地來說,就是不少十年前的電腦,即使早就不能“官方兼容”最新的Win10係統,但用戶自行安裝了Vista或者Win7時代的驅動之後,依然可以正常使用——雖然有些最新的技術特性無法支持,但絕不會因此導致藍屏或無法開機之類的BUG。
但是,在Android操作係統,卻不是這樣的。在Android係統上,驅動、重要的運行庫等都必須和係統版本嚴格對應:同樣的硬件,適配Android 2.2的驅動就隻能工作在Android 2.2版本的係統裏,如果不作任何改動直接用在Android 2.3上,很大的可能就是根本無法開機……這種驅動程序和係統“嚴格一對一”的做法從最早的初代測試版Android就確立下來,一直延續到了現在。
而且,和傳統PC不同,Android設備的CPU、“顯卡(GPU)”、WiFi模塊的驅動往往並不會麵向公眾提供,而是由芯片廠商直接以代碼的形式交付給手機廠商,然後再由手機廠商直接把驅動整合到做好的係統更新裏去。
這樣一來,每次穀歌發布新的Android版本,首先芯片廠商必須要先研究係統代碼,寫出每種不同型號的硬件適配新係統的驅動,然後把它們交給手機廠商,手機廠商又要進行整合、測試、優化……不耗上幾個月根本搞不定好麼!
最糟糕的是,如果芯片廠商沒有給某一款硬件推出新版本的驅動,手機廠商手頭的老版本驅動是無法在新版Android上工作的。而改寫驅動理論上不是不可以,但是那個工程量實在是太大太大,搞不好還會弄出各種Bug甚至侵權問題。事實上,這就是絕大多數老手機都難以獲得最新Android係統更新的原因所在。
Android曆史上最大的變革:Project Treble
很顯然,這種驅動程序和係統版本一一對應的做法,最初是為了保證用戶體驗:因為它可以確保安裝了新版Android的設備,其硬件必然是完全滿足新係統性能和功能所需的。但是,這種“強行淘汰”老設備的做法不僅造成了用戶的不滿,而且每年都必須更新一次的驅動也讓芯片廠商和手機廠商疲於奔命——過於緩慢的新係統更新進度還進一步加大了Android係統的“碎片化”,讓軟件開發者也頭疼不已。
最終,就連穀歌自己也對此忍無可忍:為了更好地解決係統碎片化問題,也為了給廠商、開發者、用戶“省心”,穀歌在宣布Android8.0係統的同時,帶來了Android曆史上最大的變革:Project Treble。
Project Treble說來其實很簡單,它無非就是解除了驅動和係統版本的“掛鉤”機製,允許芯片廠商推出長期兼容未來新版本的驅動,並且保證它能夠在以後的新版Android中無需修改也能正常使用。
但是,這一改動帶來的變化之大卻是有目共睹的:首先,對於硬件廠商來說,老型號的主控、WiFi模塊等等隻要具備一版符合Project Treble的“通用驅動”,就能兼容以後好多個版本的Android。不僅省去了適配新驅動的時間,也讓老設備的“壽命”得以延長。
而對於手機廠商來說,隻要某款手機符合Project Treble標準,將來穀歌推出新版Android的時候,無需再等待芯片廠商適配,直接把以前的驅動代碼移植到新係統上就能保證正常使用,理論上可以將適配新版本Android的時間從幾個月縮短到隻需要一周甚至更短的時間。顯然,這樣會讓用戶的感受更好,同時也更有利於安全漏洞的及時修補。
當然,對於用戶來說,如果你買了一款符合Project Treble的手機,那麼將來穀歌推出Android 8.1、Android 9.0……的時候,其他手機可能需要幾個月才能收到更新推送,但你的手機就隻需要幾周就能“吃”上新係統了,這感覺確實很棒。
更棒的是,由於在Project Treble框架下,驅動和操作係統之間的兼容性變得長期有效,所以哪怕廠商出於商業利益的目的,不再為用戶手頭的老型號提供官方更新,民間開發者們也能非常簡單地將老版本係統中的驅動移植到最新的Android代碼中去,以比過去更快、更穩定的節奏推出移植版係統供“機友”們刷入。從而一舉給老機型們“續命”,讓老手機們一次次地煥發新生!
以本次華為適配Project Treble的海外版Mate9固件為例,由於支持Project Treble,意味著固件裏的那些重要的驅動、運行庫等等可以被直接提取出來,用在更新的係統上——事實上,海外已經有開發者進行了嚐試,將Mate9官方EMUI8(基於Android 8.0)的驅動提取出來,然後集成到開源的Android 8.1係統中再重新刷入,隻需要一天的時間就能完成移植工作,而且做出來的新版係統完全可以正常使用。這就意味著,不管是將來華為給不給Mate9更新係統,至少海外版的Mate9用戶們都能很快用上Android 8.1、9.0、10.0……甚至更後麵的最新移植係統。
Project Treble雖好,但它未必能夠立刻普及
需要注意的是,雖然本次華為在海外版Mate9的最新測試版固件中加入了Project Treble特性,證明了即使不是最新型號的手機,也可以通過賦予新驅動和新係統來讓它支持Project Treble這一革命性的新特性。但是這並不意味著它就能很快普及開來。
首先,要支持Project Treble,需要驅動和係統兩方麵的兼容:穀歌已經保證未來的新版Android源代碼都會兼容符合Project Treble的驅動,但是對於芯片廠商們來說,它們仍然需要為Project Treble推出兼容版的驅動才行。比如說,如果一個舊型號的主控早已不在官方的支持計劃中,那麼它顯然不會得到新驅動的支持,而這就意味著它同樣無法兼容未來的新版Android係統。
更進一步地說,Project Treble並非強製,而且兼容Android 8.0也不等於兼容Project Treble。因此不排除會有芯片廠商依然堅持老式的驅動適配方式,拒絕推出長期有效的Project Treble驅動。
要問為什麼的話:老設備都能輕輕鬆鬆更新最新係統了,誰還會買新款呢?