Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> MIUI適配總結大全

MIUI適配總結大全

編輯:關於Android編程

miui系統的適配就是利用小米公司在github上面提供的patchrom然後我們自己做修改,它的原理就是通過反編譯生成的smali文件進行對比:
把我們的系統生成一份smali文件

miui系統生成一份smali文件

原生android未做修改的系統也生成一份smali文件

然後就去對比miui相對原生android做過哪些修改,然後我們就把我們系統對應的smali文件也做相應的修改,從而達到適配的目的。
現在miui的patchrom的腳本已經很強大了,我們只要改好smali文件後,剩下的一些資源和其他文件miui自己的腳本會自動幫我們加入到我們的工程裡面來。

首先是先使用repo同步miui的patchrom
mkdir patchrom
cd patchrom
repo init -u git://github.com/MiCode/patchrom.git -b ics //同步miui v4
repo init -u git://github.com/Micode/patchrom.git -b jellybean //同步miui v5
初始化完了之後開始同步:
reop sync -j16
同步好了就可以開始適配之旅了:
首先配置下環境
. build/envsetup.sh
然後新建自己的機型目錄
mkdir innos_i6
cd innos_i6

然後就是提取官方刷機包:
先確保手機進入recovery模式,且手機在recovery模式支持adb命令(官方的recpvery一般都不支持,需要制作個cwm的recovery,這個放另一篇文章說)
在終端的自己的機型目錄下:
../tools/releasetools/ota_target_from_phone -r

等待提取成功,會在我們的機型目錄下成功一個stockrom.zip,這個就是我們的ROM包,還會生成一個metadata目錄,裡面主要記錄一些我們手機的分區信息和簽名信息,這兩個不文件不能刪了,後續生成自己的ROM包需要用。

然後從工程的android/目錄下拷貝一個makefile文件到我們的手機目錄,把裡面的這一項
local-zip-file := null.zip改成
local-zip-file := stockrom.zip

然後我們就可以反編譯我們剛剛提取出來的官方包了:
反編譯前來個插曲:由於我們的系統是AOSP的底包,所以還要對build/目錄下的porting.mk文件的
MIUI_JARS := services android.policy framework framework2
改成
MIUI_JARS := services android.policy framework framework_ext

改好後就可以在終端敲入:
make workspace

反編譯後在我們的目錄下就會生成反編譯的目錄,以後我們的插樁就是對這些文件進行patch
然後終端敲入:
make firstpatch

時間有點長,等待完成。

完成後會在機型目錄下生成一個temp目錄
裡面有四個文件夾:
dst_smali_orig //這個是我們的系統反編譯的smali文件

dst_smali_patched //這個是我們執行make firstpatch命令有腳本自動給我們打的patch

new_smali //這個是miui系統反編譯的smali文件

old_smali //這個是android原生的反編譯的smali文件

reject //這個是make firstpatch自動打patch失敗的smali文件

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved