公司开发了一款应用软件,有大量的用户在使用该软件,当应用程序有业务变动或者功能完善时,就面临一个问题,怎样高效稳定的更新客户端的应用程序。
根据现有的升级程序的缺陷,我们做了大量的改进工作,我做了一个升级程序原型,欢迎大家的指正和拍砖。
一:更新程序的后台管理
更新程序的后台管理分为三个部份,包括了待更新程序的上传,发布范围的选定以及相关更新的配置,对更新进行不同维度的统计。
1:待更新程序的上传
需求1:版本号可以根据前一个版本号自动生成下一个版本号,也可以人为的按版本号规则命名。
需求2:更新摘要,主要记录每次软件更新所完善的功能,以及解决的BUG,在客户端展示给用户,让用户选择是否有必要更新。(与jira关联)。
需求3:在上传整个更新程序的时候,用一个map.xml的文件描述整个程序的目录结构。
模型图如下:
2:发布范围的选定以及相关更新的配置
需求1:确定需要发布的版本后,根据对象的类型(渠道,用户)选择需要发布的对象。 其中如果钩选了 “全部用户更新”,选择对象范围为灰色,不起作用。
需求2:自动更新设置
i: 是否让用户每次开启应用程序都检测更新。
ii: 更新提示周期,就是客户端每隔多长时间检测一下,是否有新版本的程序需要更新。
iii:当用户检测到有程序需要更新,是立刻更新,还是往后推迟更新。
模型图如下:
3:对更新进行不同维度的统计
需求1:查询某个用户,正在使用的程序版本。
需求2:某个版本,有多少个用户在使用。
需求3:某个版本,在某个时间段的更新用户数。
需求4:查询某个用户更新的历史记录。
模型图如下:
二:客户端更新程序
1:客户端更新提示及设置
需求1:显示本次更新的摘要
需求2:用户可以决定在何时更新
模型图如下:
2:客户端更新状态
需求1:可以显示下载更新的进度,以及详细信息。
需求2:当下载安装后,可以显示更新进度和详细信息。
目前这个更新程序就基本上能满足我们现在的需求了。
园友,还有什么更好的建议以及我没考虑到的需求,欢迎提出来,到时候也做一个万能的,通用的升级程序软件。
如果博客对你有帮助,在右下角推荐我一下。
对应9楼: