Android 系統的 ROM 製作難度很大么?為什麼國內的 ROM 都是基於 CM 開發的?

總覺得如果是第三方的小組或者個人基於CM開發自己的ROM也就罷了,為什麼MIUI有小米這麼大個公司做支持也是基於CM開發自己的ROM呢?這搞的在MIUI里總能發現CM的痕迹啊。國內難道就沒有牛人能做一個類似CM的固件出來么?


CM 的偉大之處在於它在不改動原生 Android 太多的情況下,對底層驅動作了很多修改,使 CM 的 ROM 能兼容很多機型,更要命的是這一切都是開源的。而這些驅動如果要單靠個人或小團隊搜集起來會很難。而且寫代碼的都喜歡偷懶,本著「不要重新發明輪子」的觀點都不會去干這樣的傻事兒,所以基於 CM 二次開發是最簡單粗暴的。

MIUI剛出來那會兒不也是基於 CM 改的嗎?當然現在是不是就不知道了,老羅的 SM OS 也是基於 CM 改的,發布會最後還給了一張 slide 向 CM 團隊致敬來著。


小米不完全是基於cm吧。比如小米手機不可能有cm吧(以下內容來自miui論壇)

CM做了什麼。以Android 2.3為例,Google開放的源碼只支持Nexus S和Nexus One,CM增加了對很多其它機型的支持,改動主要是在內核部分。這些內核源代碼都是各廠商根據GPL協議共開出來的,CM會在上面作一些改動(比如增加收音機,720P錄像等)。CM也修改了一些上層的UI,但是易用性上不是特別好,也不是很適合中國用戶習慣。另外大家說的CM包括其他並不屬於CM開發組但是做CM移植的人,比如Milestone, i9000, Defy都不是CM官方開發組開發的,而是民間高手來開發和維護,他們目前還沒有得到CM官方的認可。

MIUI做了什麼。MIUI的重點在於和機型無關的部分,目標是創造一個更加人性化的Android用戶體驗。這些包括鎖屏,桌面,通知,簡訊,撥號,聯繫人,音樂,相機,圖庫,設置等,並增加豐富的主題支持,方便的網盤,強大的在線系統更新,以及本地和在線備份等。可以說,所有你看得見的,都是MIUI在原生Android基礎上改進或者獨立創造出來的,這部分CM的貢獻幾乎沒有,因為兩者在UI上的理念差異太大,實在沒法合併。MIUI也做過一些內核上的努力,比如CM的收音機(Nexus One, Desire等HTC機型上)其實就是MIUI開發並貢獻給CM的,大家可以從版權上看到,但是這並不是MIUI的長項,所以適可而止,把精力放在用戶體驗上。

MIUI如果不使用CM源代碼,而只使用Google的Android代碼會如何?答案是MIUI只可能支持Nexus S和Nexus One這兩款手機,這也是為什麼MIUI最初 只支持Nexus One,移植到2.3的時候第一款機型是Nexus S的原因。MIUI加上CM的源代碼,帶來的效果就是MIUI支持更多的機型,讓更多的人使用MIUI,而且這些機型之間的UI都是一致的。其實大家都是Android的馬甲,只是一個在寬度上發展,一個在深度上發展,加在一起就是最好的Android。所以結論就是,MIUI和CM是互補關係,都是在自己擅長的領域做到了最好(沒有之一)。

沒有用過CM的人,推薦大家用一下,還是挺好用的,功能也很強大,有比較才知道哪個更適合自己,喜歡用CM的就用CM,喜歡MIUI的就用MIUI,喜歡刷來刷去就刷來刷去,和諧社會。

這次做MIUI V4的一個技術上的改變是不再基於第三方(比如CM系列)的底層驅動,而是基於原廠驅動,因為第三方驅動在穩定性上問題很大。這次做2.3最終版就是基於原廠驅動的一次嘗試。所以大家問4.0在Nexus S和小米手機之後會出哪款機型,一個條件是要有原廠4.0系統。


移植的關鍵在於內核、驅動與手機硬體的匹配。但是做這些匹配必須得有硬體廠家硬體手冊、文檔、源碼的支持,否則就是兩眼一抹黑,根本做不了。據說CM是可以拿到一些廠商的手冊的(記得三星給過),因此比較容易做。

普通人很難拿到手機的硬體手冊,更不用說手機硬體的驅動源碼了,這些都屬於閉源的,有知識產許可權制。

至於Android的上層應用和框架,與硬體平台的關聯就不大了,因此很容易做移植和二次開發(MIUI的路線)。這些開發大都基於開放的技術(源碼都是開放的),只要肯鑽研(比如把安卓框架代碼通讀上幾遍),就可以修改。


第三方驅動不穩定,但不乏有高手來搞的,現在小米做大了,和廠商直接合作,驅動就是第一手的了,這個還是穩定些的。


主要還是驅動適配問題 最麻煩


做出來不難,完善細節很麻煩。在ROM裡面CM就可以說是比較底層的東西,在別人已經做的比較完善的底層上面搭建自己的東西有何不可呢,自己再去搞一套誰維護誰更新都是問題。不要認為自己做出來的才是好的,也有有些「拿來主義」嘛~


即使是在CM的基礎上開發,耗費的人力成本也是驚人的。

公司從晶元一直到上層app進行定製,需要維持一支500人的研發隊伍,每個月光工資就幾千萬上下,做了5、6年也就出過幾款產品,還是政府買單。最關鍵核心研發隊伍是二十幾位領域專家,不是給錢就行的。


android原生系統存在天生缺陷,CM對底層進行定製而不是UI美化,有很好口碑,QQ投資CM也是要做rom,做手機,深度定製!


推薦閱讀:

MIUI 為何要遷移 Google 的大部分應用?
如何評價紅米 3S ?
小米手機錄音效果好是硬體原因還是miui的原因?

TAG:小米科技 | Android開發 | 米柚MIUI | CyanogenMod | Android |