一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

APP动态更新管理方法、系统、电子设备和可读存储介质与流程

2023-01-15 21:26:54 来源:中国专利 TAG:

app动态更新管理方法、系统、电子设备和可读存储介质
技术领域
1.本发明实施例涉及软件更新技术领域,尤其涉及一种app动态更新管理方法、系统、电子设备和可读存储介质。


背景技术:

2.对于传统的移动端app,在没有动态更新逻辑之前,每次安装包更新,都需要更新代码和编译号来发布新的安装包,用户通过安装新的安装包来体验更新的功能,称之为常规的app更新过程。
3.目前,通过拆解安装包资源,更新版本号和编译号,对生产环境用户手机上的安装包进行动态更新,用户无需安装新的安装包即可体验更新的功能。
4.但是,现有针对版本和编译号的更新会导致在测试阶段多分支、运维阶段多渠道的动态更新管理冲突问题。
5.在开发测试过程中,现有针对版本和编译号的更新无法满足开发测试过程中多分支并行开发测试的场景需要,若存在多个分支针对同一个版本号不同的功能进行更新,如果其中一个分支功能需要先进行动态更新验证,则会导致其他分支的相关代码资源被更新到需要先进行动态更新的分支对齐,导致其余的分支丢失原先的自身代码资源。
6.在生产运维过程中,现有针对版本和编译号的更新无法满足生产运维过程中多渠道的灰度验证场景和指定渠道更新需要,若存在需要对多个渠道中其中一个渠道进行动态更新,由于存在相同的版本号和编译号,则其余渠道的相关代码资源可能会被强制更新到需要更新的渠道对齐。如果想要解决这个问题,只能对不同渠道用户的用户id及渠道映射关系进行维护,由于用户可能存在多渠道更新安装情况,会造成维护成本的增加。


技术实现要素:

7.本发明实施例提供一种app动态更新管理方法、系统、电子设备和可读存储介质,用于解决现有针对版本和编译号的更新会导致在测试阶段多分支、运维阶段多渠道的动态更新管理冲突问题,维护成本增加的问题。
8.为了解决上述技术问题,本发明是这样实现的:第一方面,本发明实施例提供了一种app动态更新管理方法,包括:接收app发送的动态更新请求,所述动态更新请求中包括所述app的当前安装包的版本号、编译号和分支标签;检查所述app的当前安装包的版本号、编译号和分支标签与更新的安装包的版本号、编译号和分支标签是否完全匹配;若完全匹配,将所述更新的安装包中本次动态更新的部分发送给所述app;其中,所述分支标签为渠道分支标签或功能分支标签,所述渠道分支标签包括发布所述app的安装包的渠道标识;所述功能分支标签包括根据业务需求测试所述app的安装包的业务标识。
9.可选的,还包括:在测试阶段,获取所述app的主分支;从所述主分支中拉取分支,并命名所述分支,得到分支标签,其中,所述分支是指从所述主分支上分离出来的能够执行特定功能的独立程序;将所述分支标签写入安装包内部。
10.可选的,还包括:在发布阶段,获取所述app的主分支;从所述主分支中拉取分支,并命名所述分支,得到分支标签,其中,所述分支是指从所述主分支上分离出来的针对不同发布渠道发布的独立程序;将所述分支标签写入安装包内部。
11.可选的,所述分支标签还包括:通用标识和版本号,所述通用标识指用来区分不同类型的分支的标识。
12.可选的,检查所述app的当前安装包的版本号、编译号和分支标签与更新的安装包的版本号、编译号和分支标签是否完全匹配还包括:在发布上线阶段,若未完全匹配,向所述app发送所述更新的安装包为非法包的提示。
13.第二方面,本发明实施例提供了一种app动态更新管理系统,包括:接收模块,用于接收app发送的动态更新请求,所述动态更新请求中包括所述app的当前安装包的版本号、编译号和分支标签;第一处理模块,用于检查所述app的当前安装包的版本号、编译号和分支标签与更新的安装包的版本号、编译号和分支标签是否完全匹配;第二处理模块,用于若完全匹配,将所述更新的安装包中本次动态更新的部分发送给所述app;其中,所述分支标签为渠道分支标签或功能分支标签,所述渠道分支标签包括发布所述app的安装包的渠道标识;所述功能分支标签包括根据业务需求测试所述app的安装包的业务标识。
14.可选的,还包括:第一预处理模块,用于在测试阶段,获取所述app的主分支;第二预处理模块,用于从所述主分支中拉取分支,并命名所述分支,得到分支标签,其中,所述分支是指从所述主分支上分离出来的能够执行特定功能的独立程序;第三预处理模块,用于将所述分支标签写入安装包内部。
15.可选的,还包括:第四预处理模块,用于在发布阶段,获取所述app的主分支;第五预处理模块,用于从所述主分支中拉取分支,并命名所述分支,得到分支标签,其中,所述分支是指从所述主分支上分离出来的针对不同发布渠道发布的独立程序;第六预处理模块,用于将所述分支标签写入安装包内部。
16.第三方面,本发明实施例提供了一种电子设备,包括:处理器、存储器及存储在所述存储器上并可在所述处理器上运行的程序,所述程序被所述处理器执行时实现如上述第一方面所述的app动态更新管理方法的步骤。
17.第四方面,本发明实施例提供了一种计算机可读存储介质,所述计算机可读存储
介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述第一方面所述的app动态更新管理方法的步骤。
18.在本发明实施例中,在接收到app发送的动态更新请求后,将所述app的当前安装包的版本号、编译号和分支标签与更新的安装包的版本号、编译号和分支标签进行匹配,若完全匹配,将所述更新的安装包中本次动态更新的部分发送给所述app,引入分支标签来避免在测试阶段多个功能分支的动态更新验证产生冲突,避免在运维阶段多各渠道的动态更新管理产生冲突,防止在动态更新过程中具有同样版本号和编译号的其他分支丢失自身代码资源,实现各分支、各渠道的相对独立,减少维护成本。
附图说明
19.通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:图1为本发明实施例的app动态更新管理方法的流程示意图;图2为本发明实施例在测试阶段执行app动态更新管理的工作过程示意图;图3为本发明实施例在生产运维阶段执行app动态更新管理的工作过程示意图;图4a为现有技术在多分支并行开发场景中a分支执行app动态更新管理的工作过程示意图;图4b为现有技术在多分支并行开发场景中b分支执行app动态更新管理的工作过程示意图;图4c为现有技术在多分支并行开发场景中c分支执行app动态更新管理的工作过程示意图;图5a为本发明实施例在多分支并行开发场景中a分支执行app动态更新管理的工作过程示意图;图5b为本发明实施例在多分支并行开发场景中b分支执行app动态更新管理的工作过程示意图;图5c为本发明实施例在多分支并行开发场景中c分支执行app动态更新管理的工作过程示意图;图6a为现有技术在多渠道并行发布场景中a分支执行app动态更新管理的工作过程示意图;图6b为现有技术在多渠道并行发布场景中b分支执行app动态更新管理的工作过程示意图;图6c为现有技术在多渠道并行发布场景中c分支执行app动态更新管理的工作过程示意图;图7a为本发明实施例在多渠道并行发布场景中a分支执行app动态更新管理的工作过程示意图;图7b为本发明实施例在多渠道并行发布场景中b分支执行app动态更新管理的工作过程示意图;图7c为本发明实施例在多渠道并行发布场景中c分支执行app动态更新管理的工
作过程示意图;图8为本发明实施例的app动态更新管理系统的结构示意图;图9为本发明实施例的电子设备的结构示意图。
具体实施方式
20.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
21.请参考图1、图2和图3,本发明实施例提供一种app动态更新管理方法,包括:步骤11:接收app发送的动态更新请求,所述动态更新请求中包括所述app的当前安装包的版本号、编译号和分支标签;步骤12:检查所述app的当前安装包的版本号、编译号和分支标签与更新的安装包的版本号、编译号和分支标签是否完全匹配;步骤13:若完全匹配,将所述更新的安装包中本次动态更新的部分发送给所述app;其中,所述分支标签为渠道分支标签或功能分支标签,所述渠道分支标签包括发布所述app的安装包的渠道标识;所述功能分支标签包括根据业务需求测试所述app的安装包的业务标识;所述渠道是指app发布在的平台,举例来说,小米商店,华为应用市场,苹果应用商店或应用宝。
22.请参考图2和图3,所述步骤可以由动更配置平台执行,在接收到app发送的动态更新请求,由所述动更配置平台检查所述app的当前安装包的版本号、编译号和分支标签与更新的安装包的版本号、编译号和分支标签是否完全匹配,若完全匹配,则下发更新资源,即将所述更新的安装包中本次动态更新的部分发送给所述app;若不完全匹配,则不允许更新。
23.在本发明实施例中,在接收到app发送的动态更新请求后,将所述app的当前安装包的版本号、编译号和分支标签与更新的安装包的版本号、编译号和分支标签进行匹配,若完全匹配,将所述更新的安装包中本次动态更新的部分发送给所述app,引入分支标签来避免在测试阶段多个功能分支的动态更新验证产生冲突,避免在运维阶段多各渠道的动态更新管理产生冲突,防止在动态更新过程中具有同样版本号和编译号的其他分支丢失自身代码资源,实现各分支、各渠道的相对独立,减少维护成本。
24.图2是在测试阶段执行app动态更新管理的工作过程,用于实现多分支动态更新管理优化;图3是在生产运维阶段执行app动态更新管理的工作过程,用于实现渠道动态更新管理优化。
25.本发明实施例中,可选的,还包括:在测试阶段,获取所述app的主分支;从所述主分支中拉取分支,并命名所述分支,得到分支标签,其中,所述分支是指从所述主分支上分离出来的能够执行特定功能的独立程序;
将所述分支标签写入安装包内部。
26.请参考图2,所述拉取分支可以由版本管理平台执行,所述版本管理平台包括以下至少之一:git版本管理平台和svn版本管理平台。
27.请参考图2,所述将所述分支标签写入安装包内部可以由配置平台执行,将功能分支标签作为参数写入安装包,所述配置平台包括以下至少之一:ci配置平台和cd配置平台。
28.本发明实施例中,可选的,还包括:在发布阶段,获取所述app的主分支;从所述主分支中拉取分支,并命名所述分支,得到分支标签,其中,所述分支是指从所述主分支上分离出来的针对不同发布渠道发布的独立程序;将所述分支标签写入安装包内部。
29.请参考图3,所述拉取分支可以由版本管理平台执行,所述版本管理平台包括以下至少之一:git版本管理平台和svn版本管理平台。
30.请参考图3,所述将所述分支标签写入安装包内部可以由配置平台执行,将渠道分支标签作为参数写入安装包,所述配置平台包括以下至少之一:ci配置平台和cd配置平台。
31.所述测试阶段主分支通常与发布阶段主分支为同一分支。
32.可选的,所述分支标签还包括:通用标识和版本号,所述通用标识指用来区分不同类型的分支的标识。
33.举例来说,在测试阶段,分支标签可以命名为通用标识-版本号-业务标识,如dev-1.0.0-fe1;在发布阶段,分支标签可以命名为通用标识-版本号-渠道标识,如dev-1.0.0-sto1。
34.可选的。检查所述app的当前安装包的版本号、编译号和分支标签与更新的安装包的版本号、编译号和分支标签是否完全匹配还包括:在发布上线阶段,若未完全匹配,向所述app发送所述更新的安装包为非法包的提示。
35.所述提示可以通过在所述app弹出提示框告知为非法包。
36.本发明实施例中,与传统的针对版本和编译号的更新不同的是,增加了分支标签来避免不需更新的安装包更新对齐,举例来说:比如在开发测试过程中,同时存在a、b、c三个功能分支,均为针对版本号1.0.0的功能更新,并需要同时于1.0.0版本编译号2进行发布。那么在a功能分支、b功能分支、c功能分支并行测试过程中,如果a功能分支功能需要先进行动态更新验证,现有技术中,请参考图4a、图4b和图4c,在根据1.0.0版本号和编译号2进行更新配置之后,b功能分支、c功能分支的测试包由于同样匹配版本号1.0.0和编译号2,相关代码资源被更新到a功能分支对齐,丢失原先的b功能分支、c自身代码资源。
37.本发明实施例中,请参考图5a、图5b和图5c,根据分支的功能将分支标签写入安装包,测试x1测试的功能为a,写入功能分支标签a;测试y1测试的功能为b,写入功能分支标签b;测试z1测试的功能为c,写入功能分支标签c。在进行测试验证时,当且仅当,版本号、编译号和功能分支标签均匹配成功,那么测试功能才会自动更新,每个功能分支的代码资源各自更新,不会丢失自身代码资源。
38.比如在生产运维过程中,同时发布了a、b、c三个渠道分支,现在需要对a渠道分支
进行动态更新以确保更新功能生产环境正常,或仅需要对a渠道分支进行特定更新运营需求,现有技术中,请参考图6a、图6b和图6c,在根据1.0.0版本号和编译号2进行更新配置之后,b渠道分支、c渠道分支的应用商店渠道包由于同样匹配版本号1.0.0和编译号2,则相关代码资源被强制更新到a渠道分支对齐。
39.本发明实施例中,请参考图7a、图7b和图7c,根据分支的发布渠道将渠道分支标签写入安装包,a渠道写入渠道分支标签a;b渠道写入渠道分支标签b;c渠道写入渠道分支标签c。用户x1下载a渠道的安装包a进行安装使用;用户y1下载b渠道的安装包b进行安装使用;用户z1下载c渠道的安装包c进行安装使用。在进行更新时,当且仅当,版本号、编译号和渠道分支标签均匹配成功,各个渠道的用户的安装包才会自动更新,每个渠道分支的代码资源各自更新,不会丢失自身代码资源。
40.请参考图8,本发明还提供app动态更新管理系统80,包括:接收模块81,用于接收app发送的动态更新请求,所述动态更新请求中包括所述app的当前安装包的版本号、编译号和分支标签;第一处理模块82,用于检查所述app的当前安装包的版本号、编译号和分支标签与更新的安装包的版本号、编译号和分支标签是否完全匹配;第二处理模块83,用于若完全匹配,将所述更新的安装包中本次动态更新的部分发送给所述app。
41.可选的,app动态更新管理系统80还包括:第一预处理模块,用于在测试阶段,获取所述app的主分支;第二预处理模块,用于从所述主分支中拉取分支,并命名所述分支,得到分支标签,其中,所述分支是指从所述主分支上分离出来的能够执行特定功能的独立程序;第三预处理模块,用于将所述分支标签写入安装包内部。
42.可选的,app动态更新管理系统80还包括:第四预处理模块,用于在发布阶段,获取所述app的主分支;第五预处理模块,用于从所述主分支中拉取分支,并命名所述分支,得到分支标签,其中,所述分支是指从所述主分支上分离出来的针对不同发布渠道发布的独立程序;第六预处理模块,用于将所述分支标签写入安装包内部。
43.可选的,所述分支标签还包括:通用标识和版本号,所述通用标识指用来区分不同类型的分支的标识。
44.可选的,app动态更新管理系统80还包括:第三处理模块84,用于在发布上线阶段,若未完全匹配,向所述app发送所述更新的安装包为非法包的提示。
45.请参考图9,本发明实施例还提供一种电子设备90,包括处理器91,存储器92,存储在存储器92上并可在所述处理器91上运行的计算机程序,该计算机程序被处理器91执行时实现上述多级消息队列实现方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
46.本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现上述多级消息队列实现方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。其中,所述的计算机可读存
储介质,如只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等。
47.需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
48.通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
49.上面结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,均属于本发明的保护之内。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献