概述
概述
本文主要从以下几点总结下小程序(小游戏)的更新机制:
- 必要字段
- 自动更新逻辑
- 旧版本的清理
- 优化
本文后面阐述统一用“小程序”替代“小程序或小游戏”
必要字段
- 最小可使用的版本
小程序并不一定会去兼容所有的老版本。有些情况下,老版本会直接无法运行,小程序会期望用户必须更新到某个版本。
这里笔者也考虑过使用使用一个字段来表明“是否要强制更新”。但是考虑后发现很有问题,比如有ABC三个版本,B设置“强制更新”,C设置“非强制更新”,这样一旦出现A->C的情况就有问题了。B设置“强制更新”是表明A之前的版本都不兼容了,但是一旦C版本出来后,由于C设置的“非强制更新”,那么A之前的版本又会可以兼容。
- 目前使用的版本
同一时间,可能会存在多个版本。如果用户在正在运行游戏的同时,期望去清理文件,或者下载新版游戏,那么这个参数是必要的。一方面可以保证这个资源的文件不会被清理,另一方面可以保证访问的都是这个版本下的资源,而不会去访问其他版本的资源。
自动更新逻辑
这个做法主要还是为了减少用户的等待时间,提高用户的体验。
主要需要实现以下几点逻辑:
- 在启动时候判断下存在的旧版本是否大于最小支持的版本,如果可用,那么就直接使用旧版本启动。如果不可用或者不存在旧版本,那么就直接下载新版本后再启动。
在确认启动之后,后台去确认下是否是最新版本,如果不是最新版本,那么要后台下载最新版本。
这里要注意:需要记录此时的版本,避免程序进行时去访问多个不同版本的资源。 - 在进入小程序列表或者启动应用的时候,检查一下用户已经使用过的程序,后台将这些程序更新到最新的版本。(由于用户已经使用过,说明很可能会再使用)
旧版本的清理
笔者考虑了三个时机:
- 进入小程序列表或者启动应用的时候,check下已经下载的游戏是否小于游戏最小支持的版本,如果小于,那么就直接清理掉。
- 新版本的游戏下载更新结束之后,判断下是否正在游戏中,如果正在游戏中,说明有可能用户正在玩老版本,因此不能删除。如果不在游戏中,可以直接删除无用的老版本。
- 每局游戏结束后,check下硬盘中的游戏,如果存在多个版本的游戏的话,仅保留最新的那个。(这个对应的场景:玩旧版本游戏时,同时下载新游戏)
优化
启动优化
为了保证资源的准确性,开着这可能每次启动的时候都会去check一下目录,那么最好将启动改成异步触发。
随着用户的使用,目录中的文件会越来越多,那么check的速度就会越来越慢,如果不放到子线程去调用,后面完全可能会造成卡死。
如果启动的时候不去check,这点完全可以不用考虑。但是在android手机上,可能存在“用户主动删除目录文件”等情况。这样的场景下会导致缓存与实际情况不同步,就会有异常。(直接针对这种异常做个处理也是一种解决方式)
流量优化
自动更新的逻辑可以考虑下“wifi与流量”的因素,在用户处于流量的情况下时不要去自动更新。否则长时间自动更新用户可能不玩的游戏,会消耗用户大量的流量,很有可能会让用户删除app。
最后
以上就是懵懂流沙为你收集整理的小程序小游戏更新机制总结概述必要字段自动更新逻辑旧版本的清理优化的全部内容,希望文章能够帮你解决小程序小游戏更新机制总结概述必要字段自动更新逻辑旧版本的清理优化所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复