MIUI 系列如何在不同機型中遷移?

miui這麼大的工程,每個星期不同機型都要發布新版本。工程師就那麼多,如何在這麼多的機型中做適配,而且還要保持進度?對軟體一竅不通的只是好奇


MIUI現在專職負責非小米手機的工程師只有一個,最多的時候也不過六個人而已,沒有大家想像的那麼複雜。這裡面貢獻最大的是MIUI獨特的patchROM適配方式,ROM合作開發的補貼機制,以及MIUI開發組對於Android發展方向的準確把握。

先介紹一下patchROM,這是MIUI從Android 4.0開始的一個改變:利用原廠ROM的資源,對目標文件進行反編譯成類似彙編的smali代碼,然後修改其中的某些文件,插入MIUI自己的代碼,重新編譯成目標代碼。這種做法的優點是可以充分發揮原廠的硬體,比如相機和一些特有的介面,且不需要內核源代碼;缺點是某些深層的改動無法進行,損失一小部分功能,而且技術門檻有點高。

patchROM開始適配某個機型的時候是最難的,因為需要把MIUI的所有改動都放進去,一般需要一個月的時間,熟練的話也要兩個星期。之後每次MIUI升級都會比較容易,因為改動不大,除非更改原廠ROM底包。按照這個速度,目前MIUI官方適配機型的速度大概就是每個月一款,之前人多的時候,每個星期都會有一款新機型。同時,所有官方適配的機型的patchROM代碼都可以公開在網上下載,這樣別人也可以在此基礎上進行二次開發。

為了讓MIUI用在更多的手機上,我們引入了合作開發的概念:任何人都可以根據patchROM的代碼進行二次開發,適配在任意手機上;只要在MIUI論壇上發布,隨著MIUI更新,都可以拿到補貼。補貼是按照活躍用戶量來計算的,有一個簡單的演算法,目前合作開發者對於補貼還是滿意的。做得好的人還可以同時從其它社區拿到補貼,是因為其它社區都是一次性補貼,和MIUI的每月補貼正好互補,不衝突。

有了合作開發組之後,MIUI官方的ROM適配工程師的角色從移植變成了技術支持,合作開發組就是他的用戶,隨著合作開發組的壯大,MIUI內部會增加人手,確保支持力度。尤其是這次紅米的發布,MIUI開發組專門針對MTK平台開發的雙卡方案可以非常容易的移植到其它MTK平台的手機上去,MIUI適配的機型會快速增加。

順便廣告一下,MIUI正在舉行ROM大賽,獎品規模是所有ROM大賽中最高的,已經有上百人報名了,相信更多手機會通過這次大賽適配上MIUI。


他們有一個合作開發組,不是公司人員,只是愛好者網友幫他們做rom


MIUI在小米開發初期考慮到太多的機型,後期應該怎麼樣服務,所以在開發代碼上面做出來很多讓步,通過合作,來穩定在諸多機型中的遷移進度。


推薦閱讀:

如何看待《暴走玩啥遊戲》指責小米公司人品垃圾後又刪減視頻?
小米之家是否存在維修手機收高價的情況?
如何評有些米粉對小米專賣店和小米小店的言論?
如何看待小米之家這種行為!?

TAG:小米科技 | 米柚MIUI | Android |