Xposed模块开发,免重启改进方案

Xposed模块开发,免重启技巧

工欲善其事,必先利其器.我们在开发Xposed模块的时候,每一次修改Hook方法,都需要重启一次设备,很是麻烦,还浪费了很多宝贵的时间,有没有不重启的办法呢?当然有的,不然我在这里bb什么?
这傻逼究竟想表达什么?

原理图

原理图

具体实现

Android设备安装一个app后,系统会在/data/app/目录下保存一份原始的apk安装包,当我们覆盖安装这个app时,系统同样会删除旧的apk文件,而保留新的apk文件。同样的,我们的Xposed模块(即使没有界面)安装后,也会在/data/app/目录下保存或者更新这个apk。这里就是利用系统备份的这个apk做了些文章

寻找apk文件

不过在Android api_21之前和Android api_21及之后,系统在/data/app/目录下保存原始apk文件方式是不一样的。
假设当前程序的包名为com.dx.test,则在api_21之前,保存方式为/data/app/com.dx.test-1.apk或者/data/app/com.dx.test-2.apk,而在api_21及之后保存方式为/data/app/com.dx.test-1/base.apk或者/data/app/com.dx.test-2/base.apk.那么xxx.xxx.xxx-1xxx.xxx.xxx-2有什么区别呢?如果该app属于新安装则保存为xxx.xxx.xxx-1,如果为覆盖安装则保存为xxx.xxx.xxx-2。这样的话要找到这个文件不是很简单么?下面马上给出代码。

//通过包名寻找apk文件
private File findApkFile(String pkg){
    
评论 15
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值