神马笔记 版本2.1——软件更新·数据篇

一、目标

梳理软件更新功能涉及到的数据,以保证数据安全性。

神马笔记 版本2.1——软件更新·数据篇

二、体验地址

神马笔记最新版本下载:【神马笔记 版本2.1.0——软件更新功能.apk

三、实现方案

1. 版本信息

  • VersionEntry
名称 类型 说明 示例
title string 软件标题 神马笔记
name string 版本名称 2.1
developer string 开发者名称 Amoy Inc.
size long 安装包大小,字节数 3210782
brief string 概要介绍,markdown格式
detail string 详细介绍,markdown格式
*code int 版本号 26
*checksum string 校验码
*source string 下载地址

需要注意的是,没有*号字段仅用于向用户显示,不会参与业务逻辑。

带*号字段,codechecksumsource这3个字段参与软件更新的业务逻辑。一旦发现3个字段发生变化,将触发重新下载安装包文件。

2. 更新信息

  • UpdateEntry
名称 类型 说明 示例
downloadId string 下载任务ID
downloadCode string 下载的版本号 26
downloadChecksum string 下载的校验码
daily string 检查更新的时间 2019-04-08
version VersionEntry 版本信息

UpdateEntry用于记录软件更新的用户操作数据,以支持整个更新流程。

3. 下载信息

  • DownloadEntry
名称 类型 说明 示例
id string 唯一标识符
source string HTTP源地址,远程
destination string File目标地址,本地
length long 文件大小,将第一次响应的ContentLength作为文件大小。
注意跟VersionEntry#size的含义不同
  • DownloadTable
名称 类型 说明 示例
list List<DownloadEntry>

DownloadEntryDownloadTable用于支持文件下载功能。

UpdateEntry#downloadId配合,可以查询到下载的源地址及目标地址。

4. 配置信息

  • ConfigEntry
名称 类型 说明 示例
debug boolean 是否开启调试模式 false
baseUrl string 服务接口的基地址

ConfigEntry为只读数据,用户无关。

是为了调试应用的特定功能而设计,例如:

发布新版本信息时,必须在测试环境下进行测试,保证一切稳定后,才会发布到正式环境中。

通过配置ConfigEntry,可以在不改动代码的情况下,切换测试与正式环境。

四、组合起来

首先,读取ConfigEntry应用配置信息,

其次,用户进入软件更新界面时,请求VersionEntry

服务返回版本信息后,保存到UpdateEntry中,

用户下载安装包时,创建DownloadEntry,并将相关信息保存到UpdateEntry中。

五、Finally

~自在飞花轻似梦~无边丝雨细如愁~