应用程序的更新

公司开发了一款应用软件,有大量的用户在使用该软件,当应用程序有业务变动或者功能完善时,就面临一个问题,怎样高效稳定的更新客户端的应用程序。

根据现有的升级程序的缺陷,我们做了大量的改进工作,我做了一个升级程序原型,欢迎大家的指正和拍砖。

一:更新程序的后台管理

更新程序的后台管理分为三个部份,包括了待更新程序的上传,发布范围的选定以及相关更新的配置,对更新进行不同维度的统计。

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楼:

时间: 2024-10-08 01:53:22

应用程序的更新的相关文章

EF-使用迁移技术让程序自动更新数据库表结构

承接上一篇文章:关于类库中EntityFramework之CodeFirst(代码优先)的操作浅析 本篇讲述的是怎么使用迁移技术让程序自动通过ORM框架将模型实体类结构映射到现有数据库,并新增或修改与之对应的表结构. 无论承不承认,都要使用到visual studio的"程序包管理器控制台"执行相关的命令. 1.使用"程序包管理器控制台" 工具>NuGet程序包管理器>程序包管理器控制台 这货的界面是这样子的: 选中默认项目为DAL,因为我们在DAL项目

如何让程序自动更新

如何让程序自动更新 自动更新的软件的目的在于让客户不在为了寻找最新软件花费时间.也不用去到开发商的网站上查找.客户端的软件自动会在程序启动前查找服务器上最新的版本.和自己当前软件的版本比较,如果服务器的是最新版本.客户端则进行自动下载.解压.安装.当然了下载是要有网络的,并且用户可以根据提示去完成操作.再也不用为找不到最新版本的软件而头疼.下面是我的大体思路,已经得到了实现: 1.  写一个webservice,提供一个获取服务器xml中版本的数据的方法.(也可用其他文件格式, 此处举例XML)

ASP.NET程序如何更新发布

ASP.NET程序如何更新发布 一.首先右键项目,点击“发布” 然后,新建名称.类型选择文件,然后点击下一步: 点击发布即可! 二.

cocos2d-js 在线更新代码脚本 动态更新脚本程序 热更新

一.cocos2d-js 动态更新的基本思路 动态更新的好处不言而喻,不需要重新上架审核,能节省很多时间,也能让用户尽快使用上最新的版本,减少下载的成本. 官方BETA版本后提供了AssetsManager类,可以完成动态更新的步骤,说明:https://github.com/chukong/cocos-docs/blob/master/manual/framework/html5/v3/assets-manager/zh.md cocos2d程序安装后,以Android为例,程序存在于2个地方

利用pre平台实现iOS应用程序自动更新

1 // 2 // AppDelegate.m 3 // PreAutoUpdateDemo 4 // 5 // Created by mac on 15/12/18. 6 // Copyright © 2015年 mac. All rights reserved. 7 // 8 9 #import "AppDelegate.h" 10 11 #define USER_KEY @"1234321344SDFDFBVVFGDSVF" // 根据实际情况替换为自己的us

C#程序自动更新软件版本号

最近因为服务器程序管理多,所以在查看服务器程序的时候,只能通过EXE的编译时间来判断服务器程序版本时间,费神伤身啊 现在想了一个方式,在目录下新增一个version文件,里面写上年月日,并且只是在程序调试编译时才会更新version文件,以达到记录程序版本号的目的 1 if (Debugger.IsAttached)//判断是否调试编译,是的话则将当前年月日写入文件 2 { 3 using (FileStream file = new FileStream(Application.Startup

【Android】Android程序自动更新

App自动更新的步骤可分为三步: 检查更新(如果有更新进行第2步,否则返回) 下载新版的APK安装包 安装APK 下面对这三步进行解释,其中会穿插相应代码,App自动更新的这三步全部被封装到了一个单独的Updater类中,可以直接拿来使用,我会在文章最后贴出源码github地址. Updater 使用示例 通过单一的类Updater可以方便的实现自动检查更新.下载安装包和自动安装,可以监听下载进度,可以自定义更新提示等.保存路径可以自由书写,如果路径中某个目录不存在会自动创建,流式API接口易于

通用程序自动更新升级

1)服务端IIS网站上创建新的虚拟路径,给新创建的虚拟路径增加MIME类型:.bpl..ini等. 2)设置update.ini文件版本号配置文件 [ver]config.ini=1bplCommon.bpl=1bplGoods.bpl=1bplPower.bpl=1bplPurchasing.bpl=1prjMain.exe=2 3)客户端 untAutoUpdate.dfm文件: object frmAutoUpdate: TfrmAutoUpdate Left = 0 Top = 0 Ca

小程序自动更新版本

小程序迭代的比较快,每次发布了新的代码,都更新不及时,着急的时候,得删除了重新搜索才可以.觉得很麻烦,就查了一些方法. 代码如下: // 获取小程序更新机制兼容 if (wx.canIUse('getUpdateManager')) { const updateManager = wx.getUpdateManager() updateManager.onCheckForUpdate(function (res) { // 请求完新版本信息的回调 if (res.hasUpdate) { upd