android 热更新 tinker 从零开始到使用

时间:2023-03-08 22:44:34

这几天项目完结了,闲来无事,想起来了以前研究的热更新,那个开源的只有nvwa、recoo,等,不是很好用,最近听说tinker开源一段时间了,用的人还挺多,决定研究一下!

首先进入了官方文档 https://bugly.qq.com/docs/user-guide/instruction-manual-android-hotfix/?v=20170322165254,这里开始详细看文档内容。我使用的是bugly集成的热更新,这样子可以少很多的代码,毕竟提供了热更新和升级的平台,适合我这个懒人的使用,也可以减少bug.

详细内容看文档配置,这里说明一下一些要注意的内容。

一、如果项目是已经建好的项目,则在tinker-support.gradle(tinker-support.gradle是自己新建的,不是系统自带的 的内容使用 enableProxyApplication = true,就行,这样子避免接入出现更多问题

二、Activity配置<activity    android:name="com.tencent.bugly.beta.ui.BetaActivity"    android:theme="@android:style/Theme.Translucent" /> 这个千万不能少了,我忘配置了,结果造成更新不成功。

三、关于thinkid的使用,这个是非常重要的一个内容,每打一个包thinkID 是不同的

3.1 我们第一次打包thinkID为 假设为base-1.0.1,表示这个是一个基准包,这个包在bakApk目录下,如果这时发现有bug,再打补丁包,可以命名为patch-1.0.1,表示这个是base的第一个版本补丁包,依次类推,patch-1.0.2....

3.2 每一个补丁包就是根据thinkID来来基准包的,比如patch-1.0.1就是根据base-1.0.1知道他要去更新这个版本的bug.

3.3 如果我们在【bugly】->【应用升级】->【热更新】->【发布新补丁】中发布新补丁时,可能会出现以下提示“未匹配到可应用补丁包的App版本,请确认补丁包的基线版本是否配置正确”,那就是我们的基准包安装的不对,

应该使用bakApk下的对应你【baseApkDir目录下安装包,这样子才能找到你的基准安装包。

3.4 在发布补丁后,你会发现迟迟不生效,而官网上说很快就会生效,我也以为我自己的写的有问题,后来等了2-3分钟,才生效,坑呀,我以为是重启立即生效,找了老半天,没有发两点问题,后来上个厕所回来生效了。

到此,基本上就能使用了,目前接入时出现的问题,以后再有问题再更新。总体来说还是不错的热更新方案。