安卓適配為何比windows難?

安卓每次發新版本,每個機型要單獨做適配,一拖拖半年,稍微老一點機器根本無法升級了。最近win10發布,我才意識到,為何windows不需要對每個機型每種CPU每種解析度單獨進行適配,直接就能推送,甚至三五年前的機器也沒任何壓力,相對安卓系統來說,真是不可思議


先說結論,Windows的適配其實更複雜。

題主覺得Android系統在手機上適配需要更多時間其實是因為手機平台本身的特性導致的。

首先,儘管近年來手機上各個組件所使用的介面快速統一,幾乎都採用了eMMC/UFS儲存介面,MIPI-CSI攝像頭介面,MIPI-DSI屏幕介面等,但是由於廠商之間,晶元型號之間的差異導致這些外設並不像普通電腦的外設那樣全部內置有硬體配置信息從而導致適配的問題。

其次,Android系統很多特性需要新內核的支持,這往往需要晶元廠家對晶元進行內核適配後廠家才能開始新版本Android的適配工作,在這期間廠商也是無法準備新版本的適配工作的。即便立刻拿到晶元廠商已經適配完成的Android源碼,也需要針對特定機型進行外設適配、測試和優化,這也導致新的Android發布後需要很多時間才會有廠家跟進。

再來說Windows適配的問題

和題主所感恰恰相反的是Windows的適配其實更加複雜。由於Windows作為一個X86指令集上運行的操作系統,本身就更為複雜,驅動要在UEFI和Windows上寫兩遍而且前者開發難度奇高是業界共識,這是Windows設備驅動適配更為困難的原因。

可是為什麼Windows的設備很少出現適配問題呢,因為有通用驅動這個東西。X86指令集帶來的計算機體系內所有的硬體設計都是有標準的,顯卡、硬碟、CPU、內存、USB等等所有的硬體都是採用完全相同的基礎協議,擴展功能則依靠協議本身進行擴充。比如說顯示,不論顯卡的介面還和顯示器的介面,都基於完全相同的協議和配置方法,參數則通過既定的硬體介面傳輸。比如顯示器支持的解析度,刷新率等通過介面上的I2C介面傳輸,顯卡通過識別傳來的數據來自動配置。而顯卡則採用規範提供基礎顯示功能並通過擴展協議提供高階功能諸如3D渲染和高級2D加速。而且對於Windows來說大部分的驅動只要經過一次適配,從7到10基本上都是可以通用的。

但是Windows的驅動開發相對於Linux來說就麻煩了很多,由於答主並不精通Windows驅動開發也無法解釋更多Windows驅動開發方面的內容。


跟內核有關係,Windows是微內核架構,驅動什麼的都是獨立於內核之外的,所以有利於系統與硬體之間的解耦,適配硬體也就方便的多。其實你裝驅動(或者Windows自己裝驅動)的過程其實就是一個「適配」的過程。Android則基於Linux這個宏內核操作系統,硬體的驅動是編譯在內核之中的,所以就不可能讓用戶自己去安裝硬體的驅動,適配也就麻煩了些。

個人淺見,等待大神詳細分析


...樓上說這是偽命題是不對的,android確實比較難搞...

不過題目倒也不是沒有問題。windows沒有硬體適配的問題,是因為硬體適配了windows。硬體設計製造時所適用的那些標準成型的過程中,微軟和windows都扮演了很重要的角色...


移動端標準化水平和PC差40年


參考這個答案:Windows 有標準的驅動模型

https://www.zhihu.com/question/57992102/answer/260252227


這是x86架構和諸多嵌入式架構如arm的區別,不光是Android,所有的嵌入式產品的操作系統都很難適配,桌面x86架構的Linux隨便整任意一台電腦也能裝上呢。本質是架構的問題,指令集區別


修改了語法錯誤(///ˊ?ˋ///),日常傻

以下是原回答

……

謝邀

@藍月

windows平台的硬體幾乎都是非常規範化的統一標準,所以win平台的驅動軟體也比較通用,省去了很多麻煩,推送有限度的(不是很多年前的機子)更新很容易。

反觀android平台,首先是系統文件較小,為了縮減無用文件,所以各組件的驅動軟體要保證儘可能的有針對性。

更重要的一點是:安卓手機的硬體五花八門,同代產品里,各廠商手機硬體設備的介面和標準都不同。(例如安卓手機micousb介面和usbtype-c可以在同時期產品里存在;而PC端同時期流行什麼標準,大部分設備都是此標準)。

我是這麼理解的:谷歌選擇讓手機廠商自己來做機型的安卓系統適配,是一種取巧,也是由安卓設備多樣化所決定的。


一是windows是閉源系統,沒有這麼多亂七八糟的東西。

二是windows有一種叫驅動程序的東西,並且該程序是由硬體商提供。


很簡單啊,有個什麼協議,不是18:9都談了半年。

所以正規廠商要正規升級才行啊。。。。

window要是類似限制OpenGL幾點幾估計也升不了級。

更何況廠商升級這些驅動什麼的沒有意義,對比蘋果的升級你就知道了。

蘋果都堅持不了3年(3年內升級卡),你還指望安卓(近乎免費系統)?

在另外,window只要適配Intel和AMD,額,應該是Intel和AMD適配win。。。 然後驅動不管,用不了就是無法識別。

要是手機不能識別卡/不能攝像/卡半天你也願意的話,給千兒八百,系統任你挑。但那已經脫離廠商對手機的定義了。。。


推薦閱讀:

努比亞高配星空灰 華為榮耀v9和一加3T高配槍灰色這3款手機選哪一款?
為什麼要升級到 Android 7.x?
Android 的 Rom 如何有效的推廣,小米的 Rom 推廣有何特點和值得學習的地方?

TAG:MicrosoftWindows | Android |