微信Tinker热更新集成文档

本文详细介绍了微信Tinker热更新的实现过程,从导入官方Sample,设置tinkerId,构建并运行原版apk,制作差分包,到集成到项目中,包括Gradle依赖配置,Application的调整,再到本地测试和服务端接口调试,为热更新的实施提供了清晰的步骤。
摘要由CSDN通过智能技术生成

微信Tinker热更新方案


一、微信Tinker热更新简介

1、github地址: https://github.com/Tencent/tinker
2、Tinker原理: http://mp.weixin.qq.com/s?__biz=MzAwNDY1ODY2OQ==&mid=2649286306&idx=1&sn=d6b2865e033a99de60b2d4314c6e0a25#rd
3、Tinker是微信官方的Android热补丁解决方案,它支持动态下发代码、So库以及资源,让应用能够在不需要重新安装的情况下实现更新。当然,你也可以使用Tinker来更新你的插件。

二、导入官方Sample

1、github下载下来sample,然后解压打开导入Android Studio,我们只需要把tinker-sample-android这个目录导入即可.
2、导入之后,构建一下,发现提示“tinkerId is not set!!!”,这时候我们在app/bulid.gradle中,设置tinkerId的值.

这里可以直接就把当前的版本号作为tinkerId

3、编辑运行原版apk
打开Android studio 右上角Gradle,双击运行assembleDebug命令

拿到下图中的app-debug-xxxxx.apk装在手机上运行

或者直接运行(不过要先关闭Instant Run) ->file->setting->Build.E….->Instant Run 第一个去掉就可以运行了

4、配置原版apk路径
ext {
    //for some reason, you may want to ignore tinkerBuild, such as instant run debug build?
    tinkerEnabled = true

    //for normal build
    //旧版本apk路径配置
    tinkerOldApkPath = "${bakPath}/app-debug-1111-14-05-21.apk"
    //用于混淆,没有混淆可以不管
    tinkerApplyMappingPath = "${bakPath}/app-debug-1111-14-05-21-mapping.txt"
    //旧版本apk R文件
    tinkerApplyResourcePath = "${bakPath}/app-debug-1111-14-05-21-R.txt"

    //only use for build all flavor, if not, just ignore this field
    tinkerBuildFlavorDirectory = "${bakPath}/app-debug-1111-14-05-21"
}
5、修改源码(修改R文件和Res文件),制作差分包.
修改完后,双击运行tinkerPatchDebug命令

运行完后(如果运行时老卡住,可重启Android studio再试),在app/build/outputs/tinkerPatch/debug/patch_signed_7zip.apk路径下找到这个差异包,也就是我们俗称的补丁.

6、运行应用,加载补丁
把patch_signed_7zip.apk放到手机SD卡跟目录中,或者使用adb命令
adb push ./app/build/outputs/tinkerPatch/debug/patch_signed_7zip.apk /storage/sdcard0/ 
再次运行apk,点击LoadPatch,这时候界面提示“patch success, please restart process”表示加载补丁成功,最后在后台App管理杀掉该App重新启动应用
补充:返回键退出后进入,并没有执行修复。杀进程后再进入 ,应该就可以修复成功了,如果不成功,把补丁包逆向一下,看看自己修复的部分有没有在里面。

三、集成到项目中(这里以河南快处快赔警用版为例)

1、添加Gradle依赖
项目的build.gradle中,添加tinker-patch-gradle-plugin的依赖
dependencies {
    classpath 'com.android.tools.build:gradle:2.2.0'
    classpath "com.tencent.tin
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值