本来2月份就该写一下流程,一直拖到现在,热修复是干啥的大家都懂,当然,tinker作为日活近8亿的微信大IP热修复技术,理所当然要拿来用用,那修补匠情节,相信很多人也是有的..
集成tinker热修复可以选择两种方式
1.单纯集成tinker,自己后台发送补丁,这种方式比较麻烦,感兴趣的同学请点这里,github tinker 官方demo ,上面有详细的配置,稍微有点繁琐..
2.也就是我们要说的tinkerPatch,主要是腾讯后台帮我们去发送补丁,原理主要是把新包,跟旧包做了一个差异化对比,并生成了一个新的补丁包,只要你的app集成了tinker,那么一旦有补丁下发,他就会检测补丁,实现更新,酱我们就不用重新安装新的apk,来达到动态更新,TinkerPatch官方Demo,然鹅..很多小伙伴即使拿到demo仍然各种不行,下面我们就把集成的步骤 重头梳理一下,让他变成傻瓜试无脑集成
步骤一: 导包
当然在app中build.gradle中千万别忘了这个
当然 signingConfigs签名什么就不赘述啦..可以选择性配一下不配也没关系
然后将 上面依赖的tinkerpatch.gradle考进来,这个文件是tinkerpatch的主要配置文件,参考demo,考到项目主工程的根目录
步骤二:配置application,并申请appkey
tinkerpatch.gradle中有一个配置 叫reflectApplication 默认是false,如果遵循默认的配置,那我们的application要修改一下,
注:manifest 中的application是不用变的,虽然他会红,但是没关系,问题不大
接下来去这里登录(qq号就行),创建一个应用然后拿到一个appkey
步骤三:打包
现在我们需要有一个基准包做热修复之前的显示,那么从哪里打呢?从这里
双击过后你的apk会出现在build一个目录中,没错就是app目录下的那个build
现在我们已经生成了基准包的apk,简单说一下当我们生成了基准包以后,
1.我们需要将tinkerpatch.gradle文件中的baseInfo 替换成现有的基准包路径,
2.现在我是release,variantName就填release 如果你debug 或者多渠道flavor,那该是什么就填什么,否则等会打补丁包的时候,它会报找不到基准包
3.将appkey填入,appversion跟你的app版本一致就行了
现在我们的基准包已经装在手机上了,他是长这样的
好现在我改改布局,改成这样的
现在需要打补丁了 点这里
点击右边的thinkerPatch 会在左边的 outputs 文件夹中生成补丁,patch_sighed_7zip.apk就是补丁包,可以看到上面会生成一个旧包和一个新包,然后将这个补丁扔到thinkerpatch平台选择条件下发就可以了,你会看到这个界面:
当然你可以在application中去各种配置,多久下发,锁屏安装等等,非常灵活,具体可以参考api文档