為什麼除 Nexus 以外的 Android 舊設備都很少且很慢得到系統升級?

市面上的 Android 手機, 除了 Nexus 系列以外,升級 Android 版本都很慢,有的乾脆就不升...

除了成本問題,手機廠商不願意升級,只為了賣手機這個原因之外,Android 移植成功到底有沒有大的 bug,以至於不能讓正常用戶用?

移植周期長是不是也是 Android 不能及時得到升級的原因?


我覺得 HTC 的圖只能更好的解釋了為什麼 Google 不願意繼續同 HTC 合作 Nexus 機型了。特么繁瑣的流程。

實際上,如果用比較科普的方式來說,搞清楚這幾點就夠了。

  • 驅動程序與操作系統內核的版本相關,例如 XP, Win7, Win8 往往都需要單獨開發驅動程序。
  • Android 的內核是 Linux,而每次升級 Android 都同時升級了 Linux 內核,這也就意味著必須升級相關的硬體驅動。
  • Linux 內核只收錄開源代碼,硬體廠商的驅動程序如果不開源就不可能隨 Linux 一起發布,所以這些驅動都是硬體產商自行維護的。這意味著硬體產商的驅動必須在新版本 Linux 內核中重新編譯與調試,重新發布給設備產商。
  • 這意味著,如果升級 Android ,必須硬體產商提供新版本的硬體驅動才能進行,否則無法升級。

硬體產商不提供舊硬體針對新版本 Linux 內核的驅動,Android 設備產商就無法完美升級 Android。

如果設備產商不提供新版本的硬體驅動,是否完全沒辦法呢?也不是完全沒辦法。

  • 民間高手通過黑盒破解方式實現兼容驅動,該驅動穩定性比不上官方但勉強可用。
  • 升級 Android 的時候保留舊版本的 Linux 內核,從而維持舊版本的硬體驅動。但是新版本 Android + 舊版本 Linux 內核可能存在兼容性問題,一般需要全面的測試才能發布,全面的測試、調試與品控需要時間。事實上,民間 ROM 大多用這種方式實現對新版本 android 的適配,某些廠商的官方升級也是用這種方式實現的。(當然,這種只升 Android 不升 Linux 的方法對 Google 來說往往不可接受,這就是為什麼民間可以給三兒子吃 4.4 而官方不給的原因)

嗯,技術上,大致就是這樣。

當然,Android 不升級最主要的原因不是技術難度,而是真的因為設備產商不願意升級,相信我,誰願意沒事找事呢?絕大多數的研發力量肯定放在新產品上,不可能放在已經賣出去的舊產品上。


HTC 曾經在美國官網上發布過一張信息圖, 完美的解答了你的問題:

(Image Credit: HTC Software Updates)


從另一個方面說,這兩年的旗艦機已經開始慢慢擺脫系統升級慢或者說直接沒有升級這個問題了。HTC ONE 幾乎是在第一時間就吃上了 kitkat,再等兩周就能升級到 Sense 6 。Galaxy S4 的4.4.2更新也早已發布。雖然目前還是不能做到像 iPhone 一樣的快速更新,和前幾年一比也好不少了,遙想我當年的 MOTO Atrix 4g 版本號一輩子就停留在2.3啊。


甩包袱

問題提到:「手機廠商不願意升級,只為了賣手機」這個是大部分傳統廠商的原因。

三包質保之類的是一定要的,除了硬體,軟體的更新換代也是一部設備生命周期的因素之一。凡是延長了舊產品的生命周期,廠商都是不樂意的。看看,微軟都因為XP哭暈在廁所了


廠商不用安卓原生rom一定程度是因為需要製品的差別化來佔據市場 但是rom從驅動適配到優化到各種定製 需要的時間和成本都不小 當手機過氣了之後自然廠商就沒有在支持的動力了


推薦閱讀:

自學Android開發?
為什麼PC配置那麼好,跑安卓虛擬機還是卡,是技術原因,還是硬體原因?
?

單片機、ARM、嵌入式開發、Android 底層開發有什麼關係?
Android L 發布,新安卓系統在安全方面有哪些變化?
如何看待 Google I/O 大會推出的Android Studio?單純開發 Android 方面能取代 Eclipse 嗎?

TAG:Android開發 | Android刷機 | Android |