最近在看Android热修复技术,比较了现在比较流行的几个框架,最后选择了Nuwa这个框架放到自己的项目中,现在写下该框架集成过程及使用中遇到的一些坑:
开发环境AndroidStudio
1、在项目根目录的build.gradle中增加
classpath 'cn.jiajixin.nuwa:gradle:1.2.2'
的引用
2、在对应module增加plugin
apply plugin: "cn.jiajixin.nuwa"
3、添加nuwa SDK
compile 'cn.jiajixin.nuwa:nuwa:1.0.0'
4、在Application中初始化
Nuwa.init(this);
同时在对应位置使用patch:
Nuwa.loadPatch(this,patchFile)
混淆:
-
-keep class cn.jiajixin.nuwa.** { *; }
若报classNotFound com.xxxx.Hack.java错误,则在build.gradle文件中加
nuwa{
excludeClass['XXXApplication.class']
}
生成patch步骤:
先生成有问题的包,然后在outputs目录下会生成对应渠道的nuwa目录,把该目录复制一份到指定目录;如C://nuwa
然后修复问题,执行命令./Gradle clean nuwaXXXPatch -P NuwaDir=C://nuwa
patch.jar文件会生成在outputs/nuwa/xxx/目录下