本文同步自wing的地方酒馆
前言
去年很早的时候,就写过一篇关于xposed热更新的demo,其实这次的东西早就想写了,但是一直没(lan)时(de)间(xie),所以拖到现在才开始写。
这次我把Xposed热更新写成了一个库,只需要简单两步,即可完成对xposed不重启更改代码的操作。
库的链接如下:https://github.com/githubwing/HotXposed
先来说说怎么使用,使用的方式很简单。
用法:
1.在gradle添加库的依赖,各位老司机肯定轻车熟路了。
2.实现IHookerDispatcher,里面的逻辑就是你本身想写的hook逻辑。
3.在你的入口类里面调用HotXposed.hook()方法。
4.激活模块重启手机( = = ! 第一次肯定还是要重启的,不过以后就不用重启啦)
好了~ 本篇文章到此结束!!
才怪! (作者你原来这么短!!!!),no no no,作者不但不短,而且还很长,下面的内容就来说下原理。毕竟。。 我很长。
原理
在之前的文章中,介绍了一种热更新的方式,那就是直接动态加载替换dex。这里延续之前的方法。
每次安装以后,去动态调用apk安装目录的apk里面的dex,然后反射调用即可。
所以,我们需要做的第一件事情就是查找插件apk的安装目录。
这里为了封装为库,绕了点弯子,那就是在库里定义一个接口,叫做IHookerDispatcher

最低0.47元/天 解锁文章
3951





