編輯:關於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文件
微信團隊推送了一條消息,大家期待已久的微信公眾平台手機版正式上線,當然目前還僅限HTML5的操作,暫無客戶端下載。那麼對於要運營微信公眾號的人來說,這個微信
從今天起傻蛋打算做一個系列文章,對最新的Android4.0系統中的Launcher,也就是Android4.0原生的桌面程序,進行一個深入淺出的分析,從而引領Andro
Android使用RecyclerView1. 什麼是RecyclerViewRecyclerView 是 Android-support-v7-21 版本中新增的一個
周末閒著沒事,寫了個手勢解鎖的view,實現起來也蠻快的,半天多一點時間就完事。把源碼和資源貼出來,給大家分享,希望對大家有用。效果,就跟手機上的九點手勢解鎖一樣,上個圖