热修复接入文档:
一、APP工程的改动:
1、从https://g.hz.netease.com/WM-Android/HotFix/commits/master 工程下下载aar文件
2、在项目的build.gradle 中添加compile(name: 'WMPatch-1.0.0', ext: 'aar’)
3、替换项目自定义的Application类,步骤如下:
- (I).新建ApplicationLike继承自DefaultApplicationLike类
- (II)将旧的Application的逻辑,复制到ApplicationLike中,并对该类做一些设置,如在oncreate加上Tinker初始化的逻辑,参考demo(该类的回调接口和Application一样,所以不必担心逻辑问题,基本照着复制过去就可以)
- (III)删除旧的Application,所有使用Application的地方,改为ApplicationLike替代,原来App.getContext的代码,改为ApplicationLike.getApplication即可。
- (IV) 在manifest文件的application上加上这句话,android:name="com.example.fanguangcheng.hotfixdemo.SampleApplication"
至此,APP端的修改完毕。
二、生成补丁包:
生成补丁包比较简单,需要以下文件:
旧的apk包,旧的R文件、旧的mapping文件
使用如下指令,命令行重新打包:
./gradlew tinkerPatchDebug -P OLD_APK=/old.apk -P APPLY_RESOURCE=/old-R.txt -P APPLY_MAPPING=/old-mapping.txt
将会在/app/build/outputs/apk/tinkerPatch 生成多个文件,使用patch_signed_7zip.apk 这个文件作为补丁即可。
三、上传补丁包
如下截图,上传补丁包到后台,设置渠道、版本号等信息
补丁包上传.png
四、验证补丁
打开旧版APP,APP启动时会请求补丁包信息,可以通过抓包查看的更清晰。
补丁包下载完成后会启动后台进程合并,合并成功,在debug版本会toast提示“patch success, please restart process”
此时杀死APP,重新打开,即可验证结果。
网友评论