tinker apk版本号,tinkerId,tinkerVersion理解

本文讲解了如何通过设置不同的版本号(如apk版本号、tinkerId及tinkerVersion)来精确管理和分发补丁包,确保针对不同版本的APP进行有效的修复。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在跑通了demo以后相信大家玩熟练以后差不多能接入自己的项目了。但是似乎很多兄弟不太能分清楚apk版本号,tinkerId,tinkerVersion之间的关系,这里来说说自己的心得。

    问题描述:不同用户的手机上安装的apk版本不同,补丁包的版本不同,如何准确的发放补丁包,针对性的修复。

应用场景:用户手机安装了 版本号为1.0的apk,该apk在打包的时候设置的tinkerId是tinker1.0。这些都是已经安装安装在用户手机上的相关信息了。

接下来我们要为1.0版本做补丁包。这里我们要用 版本号为1.0的apk文件 作为打补丁的基准文件,并且tinkerId应保持不变(tinkerId tinker1.0);如果你要给同一个版本多次打包,最好给tinker设置一个版本号tinkerVersion,这里第一个补丁包设置tinkerVersion=1.0;

一切都跟跑demo一样轻松。

场景1:在已经打过补丁的版本上再次打补丁。用户手机上现在安装apk版本1.0,tinkerId:tinker1.0,补丁一个tinkerVersion:1.0;

我们发现第一次的补丁包没有修复所有的问题,需要再打一个补丁包。过程:我们要用 版本号为1.0的apk文件 作为打补丁的基准文件,并且tinkerId应保持不变(tinkerId tinker1.0);这里是第二个补丁包,设置tinkerVersion=1.1;

问题:如果用户没有打上1.0的补丁包,可以直接打上1.1的补丁吗?如果用户已经打上了1.0的补丁,再打1.1的补丁会对1.0有影响吗?
解释:tinker的补丁包实际上是修改过后的apk文件与基准apk文件之间的差异包。所以补丁的版本号对打包没有影响。所以这里就体现了设置tinkerVersion的重要性。如果服务器同时给出了1.0和1.1的版本的补丁可供用户下载,但是我们希望的是用户使用更高版本的补丁,所以代码里面需要做出版本号的判断,来确定是否要加载补丁。

场景2:apk版本更新,老版本上有补丁,新版本也要打补丁了。一部分用户手机上安装这1.0版本的apk,且1.0版本apk打过补丁,tinkerId:tinker1.0,另一部分用户安装的2.0版本的apk,现在需要给2.0apk打补丁。

这里我们要给2.0版本apk打补丁,所以要拿2.0的apk作为基准文件,并且修改tinkerId tinkerId:tinker2.0;tinkerVersion = 2.0;

    这里修改了tinkerId是为了不影响1.0版本。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值