Android开发之——腾讯热修复Tinker初探
一 概述
热补丁修复框架,极大的方便了开发者热修复自己线上App的出现的bug和漏洞。之前已经尝试了阿里热修复SopHix和美团热修复Robust,现在尝试集成腾讯的热修复Tinker。
二 下载Tinker
2.1 下载地址
Tinker官方地址: https://github.com/Tencent/tinker
2.2 解压到本地
本次所使用的为tinker-sample-android
2.3 将tinker-sample-android导入androiid studio
导入后,build项目时会出现一系列问题,下文将讲述如何解决这些问题
三 Tinker集成时问题
Tinker导入项目后,不能直接运行,需要稍作修改,下面的本人集成过程中出现的问题,如果你遇到的问题与我不同,欢迎留言。
3.1 tinkerId is not set!!!
问题
解决
在app的build.gradle中搜索tinkerId,并将tinkerId=getTinkerIdValue()修改为tinkerId="TinkerSample"(内容可以是其他)
3.2 Tinker does not support instant run mode
问题
解决
依次打开File->setting->Build,Execution,Deployment->Instant Run,将Enable前的复选框去掉,并同步一下
四 集成步骤
4.1 生成一个未修改之前的apk文件
- 点击右侧的Gradle,在展开的Gradle projects中选择app,并依次展开Tasks->build->assembleDebug
- 在assembleDebug上右键运行
- 在app/build/barApk下可以看到生成的apk文件
- 将此apk运行到手机上
4.2 修改代码或布局
在主项目中新增一个按钮
4.3 生成patch
在app下的build.gradle中配置如下
gradle里面执行下tinkerpatchdebug
- 点击Gradle,依次展开tiner-sample-android->Task->tinker,选择tinkerPatchDebug
- 右键运行
- 在app/build/outputs/tinkerPatch下可以看到patch补丁
- 将patch补丁包放到手机根目录下
4.4 修复
点击load patch
点击Kill self并重启
新下的按钮是新增的,修复已生效
五 参考:
tinker-sample-android