??? 由于項目要求,最近學習了一個被稱為 “Android第一神器” 的東西——Xposed,我們看下百度介紹:Xposed框架是一款可以在不修改apk的情況下影響程序運行(修改系統(tǒng))的框架服務,基于它可以制作出許多功能強大的模塊,且在功能不沖突的情況下同時運作。
1.安裝框架
??? 安裝Xposed框架首先需要 Root權限,所以要刷成開發(fā)版啦,這個沒什么好講的,按照自己手機品牌、型號自己刷去吧。
???? 然后就是安裝Xposed安裝器(先是安裝Xposed安裝器,在安裝框架),我的手機是小米所以我在小米社區(qū)里下載的 MIUI專版,別的品牌手機可以去官網(wǎng)下載
官網(wǎng)鏈接:點擊
MIUI安裝教程:點擊
? ? 安裝好安裝器之后會出現(xiàn)如下圖一的(我這是安裝好Xposed框架的,所以狀態(tài)是已安裝)????????????????????? 安裝好后會出現(xiàn)圖二的界面(當然你剛開始也是未激活),小米手機選擇MIUI專版安裝(圖三)。????????????????????????????????
鄭重提示:Xposed框架可能會使手機無法正常啟動,如果你之前沒聽過【軟變磚】、【無限重啟】,又不知道在這種情況下如何恢復,請不要安裝Xposed,所以請先備份
給它root權限后安裝,并重啟, 之后就可以選擇 你的xposed模塊 或 下載xposed模塊了(圖四),里面有很多很有用的模塊(例如:修改Bilibili的主題顏色、微信主題顏色、QQ微信搶紅包、防回撤消息等等)
2.學習編寫Xposed模塊
? ? 新建項目,導入jia 包 jar下載鏈接 ,導入后修改build.gradle, 把? compile files('libs/XposedBridgeApi-54.jar')? 改為? provided files('libs/XposedBridgeApi-54.jar')
? ? 之后在manifest 里添加?
<meta-data? android:name="xposedmodule"
? ? ? ? ? ? ? ? ? ? android:value="true"/>??? 作為xposed模塊
<meta-data? android:name="xposeddescription"
???????????????????? android:value="Simple Xposed Test"/>???? 模塊描述
<meta-data? android:name="xposedminversion"
??????????????????? android:value="54"/> ? ?? 最低版本號
? ? 然后新建一個Test類,實現(xiàn)IXposedHookLoadPackage, 實現(xiàn)它的方法 ??
//獲取手機中所有應用的包名?? ?????????????????????????????????????????????????????????????????????????????????????? XposedBridge.log("loadpackage name : "+ loadPackageParam.packageName);
//測試Hook靜態(tài)變量,修改手機機型和廠商XposedHelpers.setStaticObjectField(android.os.Build.class,"MANUFACTURER","leon");//廠商XposedHelpers.setStaticObjectField(android.os.Build.class,"MODEL","made in leon");//機型
在里面我寫了一個log打印所有包名,? 還有一個 修改手機廠商 和 手機機型
最后在main 文件夾下新建文件 assets, 在新建文本 xposed_init, 在里面寫上 你的包名 + 剛剛寫的類名? com.example.administrator.xposeddemo2.Test, 編譯程序,? 編譯完成后再 (如圖四)xposed框架的? 模塊中找到你的應用 選中, 這是應用會提示你重啟手機(沒提示也無所謂),對,沒錯就是重啟(每編譯一次就要重啟一次,很麻煩),重啟后就能看到如下圖圖五: 我的手機型號改為(made in leon)了,廠商我沒找到在哪。。。
圖六是包名log,在xposed的日志中可以看到, AS上也可以看到。
以上就我目前所了解的Xposed開發(fā),還很淺薄,我會繼續(xù)學習,做出更好的Xposed模塊應用。