由于项目要求,最近学习了一个被称为 “Android第一神器” 的东西——Xposed,我们看下百度介绍:Xposed框架是一款可以在不修改apk的情况下影响程序运行(修改系统)的框架服务,基于它可以制作出许多功能强大的模块,且在功能不冲突的情况下同时运作。
1.安装框架
安装Xposed框架首先需要 Root权限,所以要刷成开发版啦,这个没什么好讲的,按照自己手机品牌、型号自己刷去吧。
然后就是安装Xposed安装器(先是安装Xposed安装器,在安装框架),我的手机是小米所以我在小米社区里下载的 MIUI专版,别的品牌手机可以去官网下载
官网链接:点击
MIUI安装教程:点击
安装好安装器之后会出现如下图一的(我这是安装好Xposed框架的,所以状态是已安装) 安装好后会出现图二的界面(当然你刚开始也是未激活),小米手机选择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类,实现IXposedHookLoadPackage, 实现它的方法
//获取手机中所有应用的包名 XposedBridge.log("loadpackage name : "+ loadPackageParam.packageName);
//测试Hook静态变量,修改手机机型和厂商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开发,还很浅薄,我会继续学习,做出更好的Xposed模块应用。