Tinker热修复随笔

采用腾讯tinker作为app热修复解决方案,bugly作为补丁管理平台

打包流程:
一、生成一个发布版的包,AS中Terminal中执行,gradlew assembleRelease命令,生成apk;
1、这个时候在app\build\bakApk文件夹下会生产一个app-release.apk和app-release-R.txt两个文件,如果这次打包是作为生产发布使用,那么一定要保存好app\build\bakApk文件夹下 的两个文件,因为这两个文件就是基准,以后的热修复都是基于这个基准的;
二、把基准apk用360加固保加固;
三、用ProtectedApkResignerForWalle对加固后的包进行签名和划分渠道,就可以使用了;

线上Bug修复流程:
1、把保存的基准包复制到app\build\bakApk\app-xxxx文件夹下;
2、修复项目bug;
3、修改tinker-support.gradle中的路径,baseApkDir要与第一条的app-xxxx名称一致,baseApk中的尾部要与基准apk名称一致,baseApkProguardMapping中的尾部要与基准一致(没有则不动),baseApkResourceMapping的尾部要与基准保持一致;
并把项目的bug修复,在Terminal中运行gradlew buildTinkerPatchRelease命令后,在app\build\output\patch文件夹下会生产文件patch_signed_7zip.apk,此物为补丁,将此物传到bugly后台并全量下发即可修复bug。

ProtectedApkResignerForWalle作用:
ProtectedApkResignerForWalle用于多渠道打包顺便做个重签名
1、config.py配置,这个文件包含了签名、源app名称、多渠道分包后的默认渠道文件夹等;
2、channel中配置好自己需要分的渠道包名称;

使用walle读取渠道信息传递给友盟:
项目集成美团的Walle用于读取apk的渠道信息,并将渠道信息传给友盟统计(在友盟统计初始化的时候传递过去);
walle有两个主要功能:多渠道打包和读取渠道信息;
但是由于walle多渠道打包后,再去加固,渠道信息会丢失,所以只用walle的第二个功能读取渠道信息,给友盟统计;
至于多渠道打包交给ProtectedApkResignerForWalle;

tinker集成后,instant run就不能使用,可以临时把tinker的插件依赖注销掉

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值