最新一代安卓系統安卓N已經出現了,和以往的全新安卓系統一樣,盡管新的安卓擁有很多激動人心的新特性,但仍很難勾起人們的興趣。無它,就因為新的安卓系統,和大部分用戶絕然是沒什么關系的,不能升級說這個有什么用?盡管安卓來自Google,但Google卻似乎管生不管養,手中的機器能不能升級到安卓,還得各家OEM廠商說了算。
安卓N已經發布,但市面上絕大多數機器不能升級,為什么?
但仔細想想,這情況似乎還是有點奇怪。安卓能夠運行在各種設備中,類似的系統也不是沒有,大家最熟悉的Windows,也是靠硬件不同的機器打天下的。然而,無論是什么電腦廠商制造的Win PC,往往都能輕松升級到最新的Windows甚至隨意更換不同的系統,硬件再碎片化,也不存在升級困難的問題。為什么同樣是開放授權安裝,安卓的升級就如此困難?今天,一起來說說這個事吧。
歷史原因:安卓機沒有類似IBM兼容機的標準
雖說安卓和Win PC的硬件都是花樣百出,但其實這里的門道,還是有些許不同的。在上世紀90年代之前,個人電腦市場也經歷過混亂的戰國時代,市場上存在著大量不同標準的PC,什么蘋果電腦啦,TRS-80機啦日本的PC-9801機等等,相互間硬件和系統都不通用。然后,IBM在1982年公布了IBM PC上幾乎所有的技術資料,兼容機就此誕生了。只要使用了IBM公布的技術標準,這些PC機的零部件都可以互換。繁榮的電腦DIY市場就此崛起,為了兼容DIY電腦,Windows在這方面也是做了大量工作。Win PC一時無兩,到了90年代,個人電腦市場就只剩下蘋果電腦能夠在Win PC的重壓下喘息了。
Windows能普及,IBM兼容機功不可沒
而安卓機的崛起歷程,和Win PC是不一樣的。安卓陣營中,并沒有出現IBM公開技術標準這樣的大事件。Win PC或者說是Windows的繁榮,得益于IBM公布兼容機標準后,DIY市場的興起;而安卓機的普及,則歸功于手機整機OEM制造商各自為政的推廣。Google一開始,就沒打算讓安卓如同Windows那樣,可以運行在某種標準架構的設備上,各家OEM制造商拿到Google發布的安卓代碼后,把安卓推出去(當然還得添點Google生態的東西),就完成任務了。因此,安卓的推廣的過程中,本來就沒有Win那樣用一樣的代碼、兼容不同的硬件的基因。
安卓陣營并沒有類似IBM兼容機的標準,OEM廠商各做各的
簡單來說,Win能夠有著如此好的系統升級支持,是因為現在的Win PC都是IBM兼容機,Win以兼容IBM兼容機為己任;而安卓設備并沒有一個類似IBM兼容機這樣的標準,Google自然也沒法直接把最新的安卓推送到任一部安卓機器了。
技術原因:Linux和Win內核架構差異
熟悉電腦裝機的朋友應該都知道,DIY電腦安裝完了Windows,還沒算完,還得通過Windows Update,或者手動安裝各種硬件驅動。而安卓一個ROM不能兼容某部機器,最大的原因,就是硬件驅動適配問題,這也造成了Google發布的最新原生系統,不能裝在任意安卓機器上。這里面,是不是也存在Windows和安卓的技術差異呢?的確如此。
Windows和安卓的內核差異其實挺大的
實際上,Windows對驅動的管理,是要比安卓更加方便的。Windows屬于比較接近微內核的混合內核結構,這樣的結構有一個特點,那就是驅動是單獨分發的,并不會和Windows的微內核混合在一起。如此一來,各家硬件廠商單獨發Windows驅動就很容易了。新的Windows要兼容某個硬件,硬件廠商只要把驅動發給微軟,微軟完成認證后,就可以把這驅動放到Windows Update或者干脆整合到Windows的安裝鏡像中,無需重構Windows的內核代碼,并不復雜。
Windows對驅動的適配更加靈活方便
而安卓則基于Linux,Linux是一個宏內核的結構,Linux的驅動和內核是整合在一起的。要適配某種硬件,得把驅動都整合進Linux內核。雖然Google為了避免GPL污染,已經在Linux之上建立了一個硬件抽象層HAL,但根本問題仍未解決,安卓的硬件驅動仍不能如同Windows那樣獨立安裝。例如某某芯片廠商更新安卓驅動,用戶并不能直接安裝,需要等安卓廠商把這驅動整合進新ROM中,再提供給用戶刷入。
安卓適配某種硬件,需要廠商進行驅動整合
從這方面來說,如果Google想要為所有安卓機都提供系統升級,就超級麻煩了——Google得為每一種硬件不同的安卓機,都準備一個內核不同的ROM??紤]到市面上的安卓機硬件組合種類的數量……就算是Google,也是干不來的。因此,Google實際上并沒有技術條件為市面上所有安卓機都提供系統升級,Google能顧得著自家的Nexus設備,就不錯了。
利益原因:安卓并不只是Google的安卓
雖然安卓來自Google,安卓并不僅僅屬于Google。Google把安卓的源代碼發布到開源項目AOSP后,各家廠商只要遵循Apache協議,就可以利用這些代碼構筑自己的ROM了。如果想要使用Google提供的服務,還需要和Google簽訂協議,預裝制定的Google應用。更多的情況是,各家廠商會在安卓中整合自家的服務,把安卓修改成自己想要的模樣。
安卓OEM廠商接觸的是安卓開源項目,而Win PC廠商接觸的是Windows成品
放眼望去,其實除了Nexus和Android?One這種Google自己管賣的機器外,市面上使用安卓原生系統的安卓機根本就沒有。開源讓OEM廠商看到了鋪開自家生態的機會,安卓被紊亂而繁多的OEM廠商的生態戰略沖擊分化成數十百種,Google不可能跟隨這些廠商的安卓分支,為用戶提供后續的系統升級服務——除了必要的部分,這些廠商可不會像Google那樣,把修改后的安卓源碼也公布出來的。
你跟Google說這是安卓,Google說不定還不信
安卓源碼被發布后,就不僅僅只是Google的安卓了。要問為什么各家廠商不愿用原生安卓?原生安卓只能幫Google賺錢,不能幫自己賺錢,這就是利益問題了。這種情況,在Windows上就沒有出現。由于Windows是閉源的系統,因此第三方難以對其進行大幅修改,最多也就預裝幾個軟件,修改成番茄花園那樣子已經算是變動比較大的了。微軟一直牢牢把握Windows系統的話語權,OEM賣電腦賺的是硬件錢而不是安卓那樣的生態錢。微軟對Windows升級的支持度,自然也不是Google可以與之相比的。
保持原汁原味的Nexus,是可以獲得安卓最新的系統升級的
總結
雖然安卓和Windows用起來的確擁有一定相似之處,但無論從歷史、技術和商業利益的角度來看,雙方都存在著明顯的差異。這些差異,導致了安卓無法如同Windows那樣輕松升級。如果你真想享用到最新版的安卓系統,可以考慮一下Nexus設備,只是Nexus設備在國內的網絡環境下難以施展,希望Google日后能夠重新返回中國市場吧。
?
評論
查看更多