基于配置系统和流水线的热更新方案

news2024/11/26 13:53:24

文章目录

      • 背景
      • 方案调研
      • 具体方案
      • 方案优缺点

背景

最近我们要在一个新的 App 上增加热更新的能力,按照以往的设计思路,需要后台一起参与,并提供对应的接口,具体的接口如下:

接口参数返回值备注
uploadBasePkgappVersion:App版本号;baseFile:基础包文件上传基础包,发布流水线打包之后自动上传
uploadUpdatePkgappVersion:要发布到的App版本;hotVersion:热更新版本号;updateFile:热更包上传热更包,上传完成之后,需要与指定的基础包和该基础包的历史热更包生成diff文件
requestUpdateappVersion:本地的App版本号;hotVersion:本地的热更新版本号;uin:用户id;platForm:系统(Android,iOS)hasUpdate:true/false;updateFile:热更新文件下载地址;md5:校验;fileLength:文件长度;msg:热更新说明;HotVersion:热更新版本号;versionType:更新类型(1静默,2推荐,3强制)请求热更新,若有,则返回热更新配置,若无,则hasUpdate返回false

相当于是把 diff 的计算放在后台,然后每次客户端请求后台去获取到对应的 diff 包,并在本地进行合并,就完成了一次热更新。可以参考:
Cocos热更新的非官方解决方案

这是个很好的解决方案,但是后台同学的工作量比较大,而当前后台的人力又比较紧张,因此在综合考量需求和现状之后,我们决定使用配置系统+流水线的方案来实现热更新的能力。

方案调研

当前我们 App 已经拥有配置系统的能力,可以根据系统,用户id,版本号等参数下发不同的配置,而热更新就是需要基于这些参数去获取到不同的 diff 包。

而生成 diff 包的能力,我们可以放到流水线上去执行,生成的产物自动上传到 cos,然后获取到下载链接,并组合成配置。我们拿到这个配置之后,就可以根据我们的需要,将其发布到对应的版本或者用户上了。

具体方案

流水线的流程如下图所示:
在这里插入图片描述
我们每次打包完,都需要将旧包保存。在生成 diff 包的流水线上,我们只需要输入升级分支,便可以生成 diff 包。diff 包包含两部分,分别是old.zip 和 new.zip 的差分文件,以及 update.manifest 文件,这个文件包含了 new.zip 的全部文件及其对应的 md5 值,可用于合并校验。

手机端的流程如下图所示:
在这里插入图片描述
其中,检查热更新是直接从配置系统获取最新的配置,然后和本地的热更新版本号进行对比,若配置系统的版本号高于本地的版本号,则需要进行热更新。

方案优缺点

优点缺点
简单,不需要后台的介入依赖于配置系统的能力,比较难实现一些个性化的需求;需要在流水线上进行一些开发

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/153814.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

接口管理工具YApi怎么用?颜值高、易管理、超好用

众多接口管理工具如雨后春笋搬冒出。让人欣慰的是,有许多优秀作品来自国内,包含YApi和rap。看着中文的官网,熟悉的汉语,不禁让人暗爽。当然这也就带来另一个弊端,因为使用基数少,所以参考资料少。我们想学习…

Linux时间的获取与使用

Linux系统时间有两种。 (1)日历时间。该值是自协调世界时(UTC)1970年1月1日00:00:00这个特定时间以来所经过的秒数累计值。基本数据类型用time_t保存。最后通过转换才能得到我们平时所看到的24小时制或者12小时间制的时间。 (2)…

使用WSL获得Ubuntu系统环境

文章目录使用WSL获得Ubuntu系统环境为什么要用WSL什么是WSLWSL部署安装Windows Terminal软件使用WSL获得Ubuntu系统环境 为什么要用WSL WSL作为Windows10系统带来的全新特性,正在逐步颠覆开发人员既有的选择。 传统方式获取Linux操作系统环境,是安装完…

凯撒加密Caesar cipher

凯撒加密的由来凯撒加密正是凯撒大帝发明的,是一种古典的加密凯撒率军征服高卢,袭击日耳曼和不列颠,古罗马开启了走出意大利,征服全欧洲的征程仅用8年时间征服高卢后,凯撒率军越过卢比孔河,驱赶政敌&#x…

振弦采集模块参数配置工具的使用

振弦采集模块参数配置工具的使用 通常情况下,在计算机端对模块进行测试、读写时,可使用一些通用的免费工具完成,如基于 MODBUS 通讯协议的调试工具 MODSCAN、通用串口调试助手等, 这些工具可以通过网络搜索下载使用,在…

03【Response、ServletContext】

文章目录03【Response、ServletContext】一、HTTP响应概述1.1 什么是HTTP响应:1.2 响应信息的组成:1.2.1 响应行1.2.2 响应头1.2.3 响应体1.3 Http协议小结二、HttpServletResponse对象2.1 设置响应行2.2.1 设置响应状态码2.2.2 常见响应码1)…

入选IDC报告,美创科技数据安全管理平台实力领跑

近日,国际权威研究咨询机构IDC发布《中国数据安全基础设施管理平台市场洞察,2022》报告。本次报告对行业用户以及技术提供商深入访谈,挑选出具有代表性的数据安全基础设施管理平台产品和方案,美创数据安全管理平台入选&#xff0c…

软件测试---概念篇

本文主要介绍软件测试相关的一些基础概念.主要内容包括 : 什么是需求 什么是bug 什么是测试用例 开发模型和测试模型 配置管理和软件测试 一 : 什么是需求 满足用户期望或正式规定文档(合同、标准、规范)所具有的条件和权能,包含用户需求和软…

【Kubernetes 企业项目实战】02、基于 Prometheus 和 K8s 构建智能化监控告警系统(中)

目录 一、安装和配置 node-exporter 1.1 node-exporter介绍? 1.2 安装 node-exporter 二、Prometheus server 安装和配置 2.1 创建 sa 账号,对 sa 做 rbac 授权 2.2 创建 prometheus 数据存储目录 2.3 安装 Prometheus server 服务 (…

Python再入手-03

又过了半年,已经完全忘了当时8月份的python工作了。这半年,先是跑合同,然后张罗出海,完了又搞了两次验收,还做了两次汇报,开了无数的会,忙坏了。 现在,得重新张罗电磁这档子事儿了。下面记录下最近的操作。 1 打开编程环境。 都忘了怎么打开环境了,翻一下以前的博客…

Ant Design使用

目录官网在项目中使用下载引入方法1:全部引入方法2:按需引入-手动加载方法3:按需引入-自动加载组件Anchor作用:用于跳转到页面指定位置案例1-基础使用案例2-添加偏移量案例3-指定容器总结官网 Ant Design官网 在项目中使用 在react中使用Ant Design 下载 使用如…

【无人机学习之Mission Planner】RTK/GPS Inject 学习

█ 【无人机学习之Mission Planner】RTK/GPS Inject 学习 █ 系列文章目录 提示:这里是收集了无人机的相关文章 【无人机学习】无人机基础知识【无人机学习】Mission Planner(pc端)和QGroundControl(android端)【无人…

P1102 A-B 数对

题目背景 出题是一件痛苦的事情! 相同的题目看多了也会有审美疲劳,于是我舍弃了大家所熟悉的 AB Problem,改用 A-B 了哈哈! 题目描述 给出一串正整数数列以及一个正整数 CC,要求计算出所有满足 A - B CA−BC 的数对的…

vb.net多功能白板(集成:绘图,编辑,批注,橡皮,图片处理,拍摄,裁剪,旋转等功能

根据上一次的自定义白板,我已经更新了很多内容了 这一次打算再细一点 初始化程序:所有的整体变量(作者提醒,请不要直接照抄代码,可以和作者发的文件进行学习和参考 Public ListOfPen As New List(Of Bitmap)Public L…

ArcGIS如何进行自动矢量化操作

这里我们在网络上找一幅高中地理课本上看的等高线图给大家能进行操作演示。 等高线图 01 地理配准 1、定义投影 给数据框定义一个投影,右键Layers>Properties>Coordinate System>Projected Coordinate Systems>Gauss Kruger>Beijing1954> Be…

雅思经验总结(1)

听力技巧:听sections 3就是看你何时进入状态,还有审题,之后就是听but,其他的转折词什么yet because however什么都非常的少,最主要的还是but,注意bus之后的话,其余的什么细节题就是说还要听懂文…

Biome-BGC生态系统模型区域模拟

Biome-BGC是利用站点描述数据、气象数据和植被生理生态参数,模拟日尺度碳、水和氮通量的有效模型,其研究的空间尺度可以从点尺度扩展到陆地生态系统。在Biome-BGC模型中,对于碳的生物量积累,采用光合酶促反应机理模型计算出每天的…

Java面向对象进阶之static

目录static静态关键字static:修饰成员变量,内存机制static是什么、修饰成员变量的方法总结static修饰成员变量的内存原理static:修饰成员方法、内存机制static修饰成员方法的基本用法总结static修饰成员方法的内存原理static的注意事项static…

计算机组成原理习题二

计算机组成原理习题二 文章目录计算机组成原理习题二1、某指令系统的指令格式如下:答案:(1)152301Q1101 010011 000 001I10,I21,Z/C0,D/I0,故为变址寄存器2寻址,EA(I2)A063215301063516Q。 (4)…

大咖年终“讲” 维视教育李明睿——制造业转型升级下需要重新定义人才培养

数字化转型迫在眉睫建设应用型大学风潮正涌制造企业在推进智能制造和数字化转型进程中,衍生出大量人才需求。据人社部、工信部发布的《制造业人才发展规划指南》显示,中国制造业10大重点领域人才缺口2025年将接近3000万人,缺口率高达48&#…