為何安卓的 ROM 不可以像 Windows 兼容 PC 一樣兼容所有 ARM 處理器的手機呢,是驅動的問題么?
01-05
驅動的問題
因為手機上外設所用的硬體協議沒有標準化。
兼容機上外設的中斷號都是固定的。
每個ROM裡面包含了對應手機的硬體驅動。如果要做到兼容所有/大部分手機,必須在ROM里加入所有可能用到的硬體的驅動,這樣ROM體積太大……另外現在手機硬體也沒有完全統一標準吧,搞那麼多種類的驅動是否牽涉到版權的問題
其實谷歌想搞也不是不可,谷歌在虛擬機間加了個中間層,廠商可以用閉源驅動,谷歌只需要打包好所有兼容驅動就行(安卓各種鬼畜基帶等問題暫且不提)。設想當安卓5.0發布的時候,跟windows一樣,安卓5.0原生rom4個g,刷完system分區佔6個g,低端手機一共機載內存就4g,還要給運營商裝各種樣樣兩元的APP,就真是啥自行車都救不了了……
嵌入式設備,驅動大概不能如 PC 一樣什麼都集成吧,受制於配置,太臃腫不可行,只能針對不同機型單獨定製。以及,Windows 那時兼容機都是仿照 IBM 的 PC 規範,硬體規範上基本統一。ARM 都有那麼多個版本,不是 x86 那麼簡單。此外猜測是不是和 Linux 宏內核有關,堆砌驅動造成內核臃腫?
arm的指令集還有很多版本呢。
Windows平台誕生那麼多年,早就做到硬體軟體標準統一了
硬體驅動 因為電腦已經集成了很多常用設備的驅動很多即插即用 但是 手機的rom包只針對該cpu wifi 藍牙 gps晶元 做的。
安卓只是個手機平台系統,windows既是電腦系統又經過這麼多年的發展,內部早已集成支持幾乎所有的軟體的ram了。。
推薦閱讀:
※為什麼iPhone配置並不高,價格卻比高配置的安卓機貴的多?
※如何評價小米 Note 的定價策略?
※怎麼看待小米5全線降價200元?
※買iPhone6還是三星S6?
※智能手機為什麼一定要用觸摸屏幕的方式操作?