前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >应用版本管理和增量/全量升级方案及实现

应用版本管理和增量/全量升级方案及实现

作者头像
别打名名
发布2020-07-07 10:11:30
2.8K1
发布2020-07-07 10:11:30
举报
文章被收录于专栏:小白AI.易名
  • 1 升级功能
  • 2 升级流程
  • 3 OTA包结构和配置文件
  • 4 增量升级
  • 5 全量升级
  • 6 升级包设计
  • 7 功能实现
    • 7.1 升级包生成(通用)
    • 7.2 升级流程实现(示例)
  • 8 最后
  • 9 参考资料

1 升级功能

  • OTA升级
  • 升级方式
    • 根据升级配置文件指定升级内容
    • 全覆盖升级
    • 支持全量升级
    • 支持增量升级
  • 支持tar、zip打包方式
  • 支持升级失败版本回滚
  • 支持版本OTA降级
    • 支持增量降级版本
    • 支持全量降级到指定版本

2 升级流程

主应用:

  • 收到云端升级指令和升级包信息
  • 开始下载升级包
  • 发送升级信息(升级包绝对路径+校验和)到独立的升级管理程序
  • 如果升级成功,启动时发送当前版本至云端

升级管理及状态监控应用:

  • 校验升级包
  • 解压缩升级包
  • 备份原程序和相关资源(包含中间生成文件)
  • 开始升级(前提是待升级程序需停止运行)
    • 全量升级:目前较为粗暴,删除所有旧文件,替换新文件,如果配置相关文件在程序根目录范围内,配置也会被重置
    • 增量升级:需要校验旧版本是否与升级要求的旧版本号一致 && 要求升级前后应用根路径一致
  • 升级完成重启应用
  • 监控升级后应用启动运行状态,是否升级成功
    • 失败,外部做回滚操作
    • 升级成功,删除原备份版本和升级包及中间临时文件

注意:主应用升级管理及状态监控应用 不能放于同一根目录下,防止操作冲突。

3 OTA包结构和配置文件

主要包含三个部分:

  • 主程序
  • 其他资源和配置文件
  • 当前版本升级信息文件:ota_info.json

4 增量升级

对于增量升级我们需要考虑有:

  • 支持最小单位的增量升级,比如具体到某个模型或者某个配置文件
  • 升级完成,保证整个应用程序包是一个最小内容,即无升级后的遗留垃圾文件存在
  • 确保增量升级过程中的版本管理,即不会出现升级后出现无法启动,最小升级单位不匹配的问题
  • 做到减少版本管理的复杂度,免除人工校验的工作
  • 版本回滚时,升级包的完整性
  • 版本升级过程的衔接
  • 升级备份

5 全量升级

对于全量升级我们需要考虑有:

  • 升级后前版本的配置能够决定是否保留
  • 升级备份

6 升级包设计

核心:

  • 必须拥有前一个OTA包信息,保证版本的无缝升级
  • 当前OTA包信息
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-07-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 别打名名 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1 升级功能
  • 2 升级流程
  • 3 OTA包结构和配置文件
  • 4 增量升级
  • 5 全量升级
  • 6 升级包设计
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档