程序终端升级管理客户端

damone大约 156 分钟工作总结Android应用升级

系统总体可看成两部分组成,升级管理后台及车载终端系统,二者通过网络进行交互。终端部分又包括终端升级管理程序及终端运行程序,本文档主要针对终端升级管理程序的设计及实现, 终端升级管理程序主要包括,APP 升级, 协议升级,升级管理及跟踪,终端运行监控。

2.1   终端模块详细设计图

2.2   终端升级管理详细流程图

2.3   升级过程活动图

3.1   综合服务详细类图


3.2   数据访问层模块设计

3.2.1 数据访问操作类图

3.2.2 数据实体设计类图

3.3   日志服务设计

记录日志,做成一个带缓冲的服务,日志记录模块,时间,级别,类别,内容等信息。

  • 记录最近 10 天的日志,历史日志删除;
  • 报送事件单独记录,保留历史记录 1-3 个月,不在此类;

3.3.1 日志服务类图详细设计

3.4   程序监控运行及事件报告

监控终端的运行并相后台报送终端的运行情况

  • 监控指定程序的运行情况;
  • 监控数据报送情况;
  • 设计事件格式,通过 HTTP 请求将日志报送到后台;
  • 后台决定解析格式,后台通过日志进行分析
  • 向后端报送事件,后台服务线程;

3.4.1 事件服务类图

3.4.2 终端事件报送流程

3.4.3 终端数据发送监控流程

3.5   版本及配置管理

3.5.1 版本信及配置管理详细类图

3.5.2 版本信息维护管理

主要进行本地版本及配置的管理,记录每一次更新变化的记录,主要进行程序及协议版本管理,主要包括版本类型,终端程序版本号,程序描述信息,程序下载地址,程序本地存储地址,程序文件状态等信息管理管理。

3.5.3 文件下载及追踪

完成文件的下载及保存,监听文件变化情况,删除指定版本的文件。包括文件名称,文件路径,对应的版本信息管理。服务客户端模块详细设计

4.1 设计理念

  • 终端管理程序维护运行程序需要的所有版本信息,包括文件存储;

  • 终端运行程序接收到来自终端升级管理程序的完整的配置列表,列表详细给出了配置的基本信息及存储位置,终端程序使用回溯法启动,直到所有版本全部尝试失败,才宣告失败;

  • 终端接受来自插件管理器的版本,通过版本信息进行相关操作的选择;

  • 终端运行程序可以向终端升级管理程序报送事件,并最终报送到后台服务。

  • 建议:

建议使用插件机制,通过动态加载一般不升级终端程序,除非进行大的更改,否则不进行终端程序的升级,终端程序升级属于较大升级,启动时检查到升级版本已经下载完成后必须进行升级。主要功能都封装在插件中,每次只升级插件,插件由终端管理程序进行管理,负责版本管理及下载,并提供插配置件信息给终端运行程序,终端程序通过接口获取即可。

4.2   服务客户端模块整体类图

4.3   异常类图关系

4.4   日志提交详细类图

4.5   事件提交详细类图

4.6   版本信息交互详细类图

4.7   工具类详细类图

4.8   终端插件机制设计

插件机制运行,主要用于终端程序,终端升级管理程序负责管理插件及配置,监控并报送程序运行状态。至于如何运行,终端管理程序不做其他要求。目前插件机制完全由运行程序决定,本模块提供的插件机制仅供参考,目前只考虑支持 Jar 包升级及配置文件升级。几大要点:

  • 插件机制属于运行程序自己的设计,本平台推荐使用插件机制,但是不做任何要求,是否使用插件机制,完全由运行程序自己决定,当然更不关心运行平台采用何种插件机制;
  • 本平台提供配置或程序的管理功能,但是本平台并不关心平台指定的到底是何内容,目前支持三种类型的版本管理,包括运行程序, 插件及配置三种, 每种信息目前都是单例配置;
  • 本平台提供一个支持 jar 包的演示的插件机制以供参考,运行程序可以参考,插件的设计由程序开发者自己保障,平台不提供过多的支持及限制。

4.8.1 终端插件机制详细类图

4.8.2 插件机制运行活动图

5.1   终端和远程服务的通信接口

  • API 交互通信使用 HTTP 获取车辆的版本及配置信息;

  • 报送运行事件,如升级故障,运行故障, 程序异常等;

  • 下载升级文件;

  • 上报终端运行版本的版本信息及配置信息;

5.2   应用程序开发接口

下面列出相关的接口,此处仅仅列出作为参考,本处不维护接口的最新状态,完整的且最新的信息参见开发文档说明。

5.2.1 客户端初始化及释放

5.2.2 提交日志

5.2.3 提交事件及关键业务报告

5.2.4 版本信息管理