1.问题现象:
某天,发布新版安卓版本后,一位重要级用户在使用过程中提示升级,点击升级后提示升级版本比当前版本过低。

2.问题原因确认:
A.一次数据库配置升级数据,配置的版本为 1.6 ,正确版本应该为 1.3 ;
B.安卓端下载存储的方式是:根据配置的版本号来存储,如数据库配置的版本是 1.6(接口请求返回),
则存储到安卓手机上的文件名称是:XXXX_1.6.APK , 大致这样一个规则生成的 ;
C.问题手机中因上上次升级中存储了安装文件 XXXX_1.6.APK(安装后未删除);导致实际版本为升级
1.6 过程中,安卓端下载逻辑判断,认为已经从服务端把最新的文件下载下来了,安装过程中实际
版本是比当前版本低,导致升级不成功;

3.我想到问题解决:
方法一:每次下载时候,判断本地是否有文件,有直接删除后,重新下载;
存在问题:客户体验不好。
方法二:核对版本信息的时候,服务端传递一个 md5 值,安装之前比较 md5 值是否符合,不符合,删除同
文件名后重新下载,符合则安装;
存在问题:逻辑判断稍复杂,计算 md5 可能影响性能,卡顿?

不知道大家对这种问题,从设计逻辑上怎么解决。


↙↙↙阅读原文可查看相关链接,并与作者交流