最近研究了一下腾讯的热更新框架,以及一位大神开源的热更新后台服务框架,下边总结一下,希望对想了解的人有所帮助
tinker链接:https://github.com/Tencent/tinker/wiki
开源的热更新后台服务框架:https://github.com/baidao/tinker-manager
一、Tinker使用介绍:
官方文档好久没更新了,看起来费事,这里简单总结下怎么使用。
1、导入Sample工程
将官方给出的Sample工程在AndroidStudio中打开.首先一点,在app的build.gradle文件中找到tinkerId = getTinkerIdValue()并将其替换成tinkerId = "tinkerId",其中后面的值可以随意设置.再替换ignoreWarning = false为ignoreWarning = true.
2、编译运行原版apk
按照往常操作一样,编译打包debug apk并安装.此时Tinker会在工程的app/build/bakApk/目录下保存打包好的apk文件,找到刚才生成的apk文件,复制其完整文件名,在app的build.gradle文件找到tinkerOldApkPath这一项设置,并将其设置为tinkerOldApkPath = "${bakPath}/<刚才生成的apk文件名>"
3、修改源码 生成新版apk 补丁
在项目里随便改点内容,然后生成debug版的patch(补丁)apk文件。如图:
4、生成补丁包的位置如图:
只需将此补丁包放在MainActivity里边指定的加载补丁包的路径即可。
点击LOAD_PACH 加载执行修复,点击shouInfo 会显示PATCH is loaded,说明成功,然后点击KILL SELF 再次进入 就修复了。
到此为止tinker修复就成功了。然后说说怎么接入tinker-manager手机端的,以便跟热更新后台的修复做对接。
步骤参考文档链接:https://github.com/baidao/tinker-manager/tree/master/patchsdk 按照此文档接入就行,我在这里对参数进行一下说明
下边两参数做测试的话为空即可