為何 Android 一般的升級不像 Windows 一樣只需打補丁?

Android 的系統版本經常不斷更新,而 Windows 則不會(原諒我某種程度上把 Windows 的補丁看成升級)。是不是因為 Windows 和 Android 的架構不同(Android 只能刷系統而不存在打補丁的方法);又或者是出於商業考慮, Android 免費開源,而 Windows 為了版權只能選擇維護而非讓用戶刷系統;還是因為手機刷 Android 比較容易,電腦刷 Windows 則比較難;再或許是因為 Android 系統更新快,沒必要通過補丁維護;最後還想了一下,歷史原因,微軟完全將單個的操作系統而非整個 Windows 的服務當成產品來賣(我認為完全可以讓用戶購買 Windows 使用許可權,而允許他們自由的由 XP 升級到 Win 7),因此選擇了補丁的方式來維護(感覺這樣只能盡量保障安全,而很少可以提升用戶體驗)。

而 Mac 應該是有系統升級的,例如 10.7.2 到 10.7.3 或 10.7.4,屬於維護部分,是免費的。而版本升級則是收費的,例如 10.6 到 10.7 或 10.8 (有點像旗艦版和普通版等的區別),其他的就不太清楚,因為也沒用過Mac。

問得不是太好也不專業,見諒!虛心求解~


原則上Windows兼容任何PC格式的電腦,允許任何軟體運行,用戶在一開始便擁有整個電腦的控制權。實際上,今天的Windows(windows7/8/8.1)可以做到,把硬碟拔下來接到另一台電腦依然能立馬跑起來並配置好正確的驅動程序。

在這種情況下微軟無法預測硬碟里有什麼東西,所以

安裝更新包的內容至winSXS---&>更改對應硬鏈接到新版本的文件----&>重啟

是最合適的。

而手機是一個更加專一內容,特別是其中的私有驅動程序,都是針對某個硬體型號而特別設計(如移植)的,這使得手機的操作系統實例缺乏可移植性。

Nexus4與Nexus5的rom可以由同一份AOSP源代碼,配合對應設備的私有驅動二進位文件編譯而成,但已經編譯好的rom無法通用。

在絕大多數時候,手機中用於存放系統文件的區域是固定不變的,它壓根就不會出現更改(bootloader鎖定),於是

通過新舊文件的差分信息直接把舊文件改成新文件

是可行的,而且省流量。所以OTA都做這個事情。

root後的手機往往沒法OTA便在這裡,root過程中的加入的su binary/app以及軟鏈接改動了/system的內容,而這可能干擾到了差分機制。su binary本身並沒有問題

當然OTA格式的更新包也可以完全不採用差分的模式,那些.zip形式的刷機包便是這類OTA包

還有一種手段是直接寫入盤上分區的鏡像,它對軟體的要求最少,只要有bootloader就能做(在Android上便是fastboot)。如RUU、Nexus設備的Factory Image都是這種做法。


這樣想是不對的,比較專業的說法樓上已經說的很清楚了,所以就換個簡單容易理解的解釋:

對於大多數知名廠商的安卓機,在沒有進行解鎖或root(可以理解為類似iPhone的越獄)的情況下一般在開售後一段時間都會接受到若干個系統更新,這個就是大家所說的OTA了,其內容一般是對系統功能或安全上的完善,而有時則是系統版本的更替,比如從4.1升級到4.2,所以其實完全可以將這些更新看作類似Windows「補丁」,這些更新大多僅需重啟一次就可以應用。

下面附上一張Z1050更新的全過程

題主會產生這種疑問應該是因為這些更新不是由Google提供的,而是由手機廠商提供的。由於Android的開放性,各個廠商可以針對不同機型對原生Android系統進行各種修改,這種修改是可以達到內核級別的(換句話說就是如果廠商願意,完全可以將它修改為另一種操作系統),這是Windows和OS X做不到的。但自由的代價就是碎片化,Google無法知道廠商究竟對系統做了什麼樣的更改,所以就不可能像微軟和蘋果一樣直接向所有設備提供更新,它能做的只有將更新的原生系統交給廠商,再由廠商進行修改或更新。

但廠商不是慈善組織,好比電器商不會為過於陳舊的設備提供部件更換升級服務,很多廠商在設備發布一段時間(一般一年到兩年)後就不再會提供系統更新,但原因往往並不是硬體不支持,而是為了加快產品的迭代速度,這時就只能通過一些第三方的Rom來使用新的系統了。另外由於很多用安卓機的人都喜歡root一下刪點系統內置軟體或刷個機啥的,而很多所謂的「系統精簡列表」和第三方Rom都將廠商內置的系統更新移出掉了所以對於關心這種問題的人很也容易造成一種「更新系統必須得刷機」的錯覺,這倒也是個有意思的現象呢~


首先,安卓的東西一般是手機平板這一類的設備,他們的結構是嵌入式開發的,和我們PC的模式不同。樓主要深入了解就搜搜嵌入式設備吧。個人 見解


一般而言,越是通用的冗餘肯定越大,造成的計算資源浪費越多,同時兼容性越好,如PC機;越是專業的冗餘則越小,相應的計算資源利用越高,但兼容性越差,如手機;當前PC的處理器性能要遠遠強於手機的處理器,同時手機又有功耗方面的考慮,因此在手機上通用的系統肯定不合適,嵌入式系統足夠專業,對於硬體資源的兼容性要求更高,任何不必要的設備驅動都會從系統中剔除,以保證不浪費資源與降低功耗。所以手機之類的嵌入式系統一般都是直接更新整個系統,而PC機則可以通過補丁的方式更新。

對於陳塵所說的win7之後的系統可以兼容任何PC感到懷疑,目前PC應該主要有intel和AMD兩種處理器,有i386、x64、IA64等不同的架構,在驅動方面,尤其是顯卡驅動也會制約兼容性。我在之前使用xp時,把硬碟換到其他PC機上,除非硬體大致相同,否則基本上都會藍屏。win7也出現過幾次因顯卡更換出現的藍屏。


排名第1的陳塵是從技術的角度回答了這個問題,個人感覺有一種可能在於可操作性。

相對於windows/linux/...等換一個版本(winxp--&>win7,ubuntu12.04--&>14.04...)的大折騰,

重裝一次手機系統是一件非常簡單省時的事情,真正的一鍵快捷安裝。

使用電腦的友友或幫別人過程中可能都遇到過這種情況,有時候一個技術問題時間花了不少卻始終、無法定位,在時間和數據可以保障的情況下,推到重來是最優也最安全的操作方式--不會引發其他未知問題。

手機系統在技術上OTA的差分機制可以實現「補丁」的操作,但相對於重裝,手機操作系統重裝

似乎是更優的方案,耗時相差不大(刷新包閑時可隨時下載不計入總時間),不會帶來未知的隱患


OTA包算不算補丁呢?Nexus4從4.3升級到4.4.2下載100M的OTA包就行了


最新的Nexus會加入系統OTA升級,你可以試試。


我想,樓主的意思其實是,同一個手機,底層以及驅動都不動,為什麼上層的framework等不能從4.0升級到4.1,4.2呢?


推薦閱讀:

802.11協議中為什麼DCF比PCF應用更廣泛?
中病毒是一種什麼體驗?
mac裝雙系統的利弊?
為什麼 Mac 上沒有像 Windows 上搜狗那樣優秀的輸入法?
如何看待夢幻西遊推出 Mac 版?

TAG:Mac | MicrosoftWindows | 系統升級 | Android | 系統維護 |