App版本更新控制
思路
更新控制及机制由服务器端决定:客户端向服务器端请求更新检查「带账号或设备信息、当前版本信息等」,如果需要更新,则从指定地址下载、安装、运行程序。不需要更新,则无提示
更新检测返回结果中,至少包含两个字段,一个为是否更新「isupdate」,一个为更新地址「downloadurl」。isupdate为true,则根据 downloadurl 下载更新即可。isupdate为false,则不更新
H5+App 中新增返回字段 updateapk,更新 apk 或更新包
更新时可以在后台静默下载,下次启动是直接更新,避免更新时打断用户操作
实现
版本信息
服务端控制版本信息
版本号:整数值,一般从0开始递增
版本名称:一般为三段式,例如6.1.2
更新文件地址:http格式的url地址,更新文件地址
更新信息:总体说明更新了哪些内容
更新范围:分为不更新、小范围更新和全部更新三种情况。分别对应0、1、2三个值
更新记录
版本更新历史记录一般需要在关系型数据库中存储
更新记录主表:主键、时间、新版本号、版本名称
更新记录从表:主键、主表主键、更新信息记录
更新标识
不更新-0
更新标记为 0时,版本检测后台接口直接返回 false 「不更新」
注意:在提交更新文件前,先把更新范围改为0,表示不更新。文件更新至服务器后,再依次修改为1、2
小范围更新-1
小范围内更新,可以指定测试人员账号或设备编号等标识。服务端维护更新账号或设备信息集合。该集合可以保存到关系型数据库或redis内存数据库中。
判断当前app版本和最新版本号,如果相同,则不更新。不同,则判断当前账号或设备是否在小范围更新集合中,如果在,则更新;不在,则不更新
小范围更新也要注意流量拥挤问题,做好控制。可通过 Redis 控制一段时间内的下载人数
全部更新-2
判断当前 app 版本和最新版本号,不同,则更新。相同,则不更新
注意流量拥挤问题,做好控制。可通过 Redis 控制一段时间内的下载人数
其它
- 差量升级更新 App 资源,参考 App 资源在线差量升级更新