Xposed从安装到写代码

手机安装Xposed

之前是在电脑模拟器上安装的,使用的是网易mumu模拟器,这个模拟器已经被root,安装XposedInstaller后点击框架-安装或更新-重启,就可用了,而且重启十分快速,用于开发前期的工作十分方便,但一些问题在真机上会 暴露出来,所以还是需要一个真机的。

华为手机

官网申请解锁,有了解锁码,下载华为手机助手和Google adb(包含fastboot),根据华为官网上的解锁步骤进行解锁

解锁后于花粉论坛上找的教程,刷入第三方rec,使用第三方rec安装第三方ROM包,需要专门找版本、手机型号都对应的包,不然会出不少问题,我就因为没刷补丁,死活打不开开发者模式,刷入补丁就好了。

安装Xposed

[官方安装器下载地址](http://repo.xposed.info/module/de.robv.android.xposed.installer)

XposedInstaller官网下载页面

第一个适用于android5及以上的,第二个是5以下的。

下载XposedInstaller.apk并安装到手机

打开app,点击安装框架,重启生效

工程

引入jar包

https://bintray.com/rovo89/de.robv.android.xposed/api

版本选择

我的测试手机是Android 7的,下载最新的82就好,之前用的模拟器,下载的53的。

jar包选择

可以看到有两个jar包,带sources的是源码包,不带的是api引用包,如果不用源码,只要引入能使用的话,不用下载sources包。

引入

在app目录下新建lib目录,复制进去,注意lib与libs区分开,是为了避免与libs里面的其他jar包冲突。

在build.gradle中通过以下代码来引入,provided只参与编译,不打包,因为xposed中有源码,避免冲突。

provided files('lib/api-82.jar')

Android studio较高版本中provided已过时,可以用compileOnly来替代。编译通过后就可以写代码了。

新建一个class类

public class HookData implements IXposedHookLoadPackage {



    @Override
    public void handleLoadPackage(final LoadPackageParam loadPackageParam) throws Throwable {
        
    }



}

这个类就是我们hook的执行类了,我们想要监控哪个app的哪个动作,就可以在handleLoadPackage 方法中写了。

还有两点需要注意

1.清单文件AndroidManifest

在标签application中需要写入

       <meta-data
            android:name="xposedmodule"
            android:value="true"/>

        <meta-data
            android:name="xposeddescription"
            android:value="Hook Test!"/>

        <meta-data
            android:name="xposedminversion"
            android:value="82"/>

第一个是代表本项目作为xposed模块,第二个代表你的模块介绍,第三个代表模块最低版本

2.xposed_init文件

在assets包下新增xposed_init文件,里面写刚才新建的class类HookData的全路径,包名.类名

这是xposed的入口,告诉Xposed哪个是模块的入口。

注意:写好的项目是可以没有MainActivity的,代表它只是Xposed的模块,并不是app,所以在桌面上也是没有这个项目的icon的,当然,也可以写activity,这样它就是个携带模块的app而已。

这只是个开头,用Xposed还是有很多要学习的,比如怎么用Toast,怎么Hook其他app,怎么用数据库,等等,。

当然与之相关的也还有反编译,so文件等多个知识点。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值