設為首頁fbYouTubeWhatsapp頻道IG

Post76.hk

搜索
查看: 747|回覆: 0

[手機及平板] [轉載]Android手機driver更新為什麼那樣難?

[複製鏈接]

1889

主題

1萬

回帖

0

精華

白鑽玩家

Rank: 13Rank: 13Rank: 13Rank: 13

積分
1121117

76 榮譽慈善家勲章

發表於 2015-9-11 20:12 | 顯示全部樓層 |閱讀模式

如果想睇到更多76師兄嘅分享,快啲登入成為會員啦!

您需要 登入 收看或下載更多內容。還未成為會員?成為會員

x
"Google發佈Android時為什麼不集成一些常見的driver,手機硬體廠商為什麼不能像PC廠商那樣直接向用戶提供設備的driver。" 相信很多網友對於Android的碎片化都有所耳聞,而這個問題確實是更好解決Android碎片化問題的最佳方案之一,而之所以沒有成功的去實施這個方案的原因在於Windows與Android有很大的不同,這個不同點,就讓大家簡單的說一下。

首先第一點windows平臺的硬體相對於Android的硬體來說簡直太少了。

Windows/Linux由於對於x86/64架構的通用性完全標準化,這個其實是歷史的原因。在很久很久以前,IBM還是傳說中秒天秒地秒宇宙的時候,為了幹掉競爭對手MAC,使出終極技能 “PC規則規範化” 然後帶領著一眾小弟Intel、Windows這些小弟一起開闢新的世界。

然後把指令集統一,不管怎麼換,都是那兩家,而硬體介面、針腳、協定等等很多也都做出了相應的規範化。然後CPU、記憶體、南北橋下PCIE等等這些架構完全統一。這樣就導致了各家OEM做的各式各樣的東西隨便換,隨便玩。而這樣做的好處就是Windows面臨的不同的CPU架構少之又少,造成了現在Windows輕輕鬆鬆給這些硬體集成這些driver。現在若要讓Windows開源,那場面簡直酸爽。

而Android就不同了,Android需要面對不同的CPU架構,雖然一開始Google就學習IBM將軟體部分開源了,但是眾多的硬體在不同的廠商手機隨便玩耍,也帶來了就是各家維護各家的事情了。隨便舉個例子,例如Android在不考慮指令集的情況下有ARM/MIPS/x86三種,而如果把不同設備類型之間最基本的driver全部寫進內核裏面,如果一個架構需要120MB,那麼三個架構就是360MB,再加上亂七八糟的應用,導致刷機包可能會超過1GB,正因為這種原因導致了Android無法把driver集成。

至於手機硬體商為什麼不直接向用戶提供設備driver?

這個原因其實就是Android是運行在Linux之上的作業系統。簡單的拆解Android系統來看,Android的層次可以分為底層是Linux,中間是叫做 Dalvik 的 Java 虛擬機,而上面則是Android運行時庫。而Linux採用的是宏內核,內核和driver是在一起的,如果要添加driver,基本上就得需要重新編譯內核了。

您需要登錄後才可以回帖 登錄 | 成為會員

本版積分規則  允許回帖郵件提醒樓主

重要聲明:本討論區是以即時上載留言的方式運作,Post76玩樂討論區對所有留言的真實性、完整性及立場等,不負任何法律責任。而一切留言之言論只代表留言者個人意 見,並非本網站之立場,讀者及用戶不應信賴內容,並應自行判斷內容之真實性。於有關情形下,讀者及用戶應尋求專業意見(如涉及醫療、法律或投資等問題)。 由於本討論區受到「即時上載留言」運作方式所規限,故不能完全監察所有留言,若讀者及用戶發現有留言出現問題,請聯絡我們。Post76玩樂討論區有權刪除任何留言及拒絕任何人士上載留言 (刪除前或不會作事先警告及通知 ), 同時亦有不刪除留言的權利,如有任何爭議,管理員擁有最終的詮釋權 。用戶切勿撰寫粗言穢語、誹謗、渲染色情暴力或人身攻擊的言論,敬請自律。本網站保留一切法律權利。權利。
快速回復 返回頂部 返回列表