CN113961220A - 程序自动更新方法及装置 - Google Patents
程序自动更新方法及装置 Download PDFInfo
- Publication number
- CN113961220A CN113961220A CN202111214804.8A CN202111214804A CN113961220A CN 113961220 A CN113961220 A CN 113961220A CN 202111214804 A CN202111214804 A CN 202111214804A CN 113961220 A CN113961220 A CN 113961220A
- Authority
- CN
- China
- Prior art keywords
- program
- file
- version number
- package
- packaging
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本公开涉及一种程序自动更新方法及装置。所述方法包括:获取程序更新文件;将所述程序更新文件进行打包,获得第一程序打包文件;将所述第一程序打包文件发送至包管理平台;根据所述第一程序打包文件的第一标识信息获取应用管理平台中对应的第二程序打包文件,并将所述第二程序打包文件的版本号更新为所述第一版本号;根据所述第一版本号从所述包管理平台获取所述第一程序打包文件,并将所述第二程序打包文件替换为所述第一程序打包文件;将所述应用管理平台中包含所述第一程序打包文件的应用程序进行打包,获得第一应用程序打包文件。本公开的程序自动更新方法及装置可以实现SDK及与其具有关联关系的应用程序的联动升级。
Description
技术领域
本公开一般地涉及计算机技术领域。更具体地,本公开涉及一种程序自动更新方法及装置。
背景技术
目前,为了实现程序代码的高复用率以及低耦合率,应用程序(Application,简称APP)中通常将一个功能模块的代码逻辑封装为一个软件开发工具包(SoftwareDevelopment Kit,SDK)。通常情况下,应用程序的功能受SDK版本的影响,不同版本SDK的业务逻辑可能不同。而从软件开发的角度,SDK升级,需将具有依赖关系的应用程序进行同步升级,进而将涉及该SDK和/或该应用程序的Android主工程和/或iOS主工程进行同步升级,然后将升级后的Android主工程和/或iOS主工程打包获得可供客户端升级使用的应用程序包。
现有技术中,由于与同一SDK具有依赖关系的应用程序有多个,而不同的应用程序可能采用不同的打包工具,如此需要打包人员手动进行打包,即在程序升级并完成升级版SDK打包后,手动更新与该升级版SDK具有依赖关系的各个应用程序,然后再手动更新包含该升级版SDK或升级版应用程序的主工程,最后对更新后的主工程进行打包,获得可供客户端安装的应用程序安装包。此外,对于Android和iOS系统,需打包人员分别手动进行上述更新/升级。然而,依赖人工处理,耗时较久,且处理不够及时,尤其在跨团队合作时尤为突出,且人工处理容易产生不必要的错误,甚至引发漏洞的产生。
因此如何获得一种优化的程序自动更新方法为现有技术中需要解决的问题。
发明内容
为了至少部分地解决背景技术中提到的技术问题,本公开的方案提供了一种程序自动更新方法及装置。
根据本公开的第一方面,本公开提供了程序自动更新方法,其中,所述方法包括:获取程序更新文件;将所述程序更新文件进行打包,获得第一程序打包文件;其中,所述第一程序打包文件的版本号为第一版本号;将所述第一程序打包文件发送至包管理平台;根据所述第一程序打包文件的第一标识信息获取应用管理平台中对应的第二程序打包文件,并将所述第二程序打包文件的版本号更新为所述第一版本号;根据所述第一版本号从所述包管理平台获取所述第一程序打包文件,并将所述第二程序打包文件替换为所述第一程序打包文件;将所述应用管理平台中包含所述第一程序打包文件的应用程序进行打包,获得第一应用程序打包文件。
可选的,所述程序自动更新方法还包括:根据所述第一版本号及预设规则生成第二版本号,所述第二版本号作为所述第一应用程序打包文件的版本号。
可选地,所述程序自动更新方法还包括:根据所述第一程序打包文件的所述第一标识信息获取主工程中对应的第三程序打包文件,并将所述第三程序打包文件的版本号更新为所述第一版本号;根据所述第一版本号从所述包管理平台获取所述第一程序打包文件,并将所述第三程序打包文件替换为所述第一程序打包文件;和/或,根据所述第一应用程序打包文件的第二标识信息获取主工程中对应的第二应用程序打包文件,并将所述第二应用程序打包文件的版本号更新为所述第二版本号;根据所述第二版本号从所述应用管理平台获取所述第一应用程序打包文件,并将所述第二应用程序打包文件替换为所述第一应用程序打包文件。
可选地,所述程序自动更新方法还包括:将所述主工程的程序进行打包,获得系统程序包文件;其中,所述系统程序包文件包括所述第一程序打包文件和/或第一应用程序打包文件。
可选地,所述程序自动更新方法还包括:根据所述第一版本号和/或所述第二版本号及预设规则生成第三版本号,所述第三版本号作为所述系统程序包文件的版本号。
可选地,所述第一版本号采用语义化版本管理方法自动生成。
可选地,所述第一版本号包括主版本号、次版本号、修订号。
根据本公开的第二方面,本公开提供了一种程序自动更新装置,其中,所述装置包括:程序获取模块,其配置为用于获取程序更新文件;程序打包模块,其配置为用于将所述程序更新文件进行打包,获得第一程序打包文件;发送模块,其配置为用于将所述第一程序打包文件发送至包管理平台;更新模块,其配置为用于根据所述第一程序打包文件的第一标识信息获取应用管理平台中对应的第二程序打包文件,并将所述第二程序打包文件的版本号更新为所述第一版本号;替换模块,其配置为用于根据所述第一版本号从所述包管理平台获取所述第一程序打包文件,并将所述第二程序打包文件替换为所述第一程序打包文件;应用打包模块,其配置为用于将所述应用管理平台中包含所述第一程序打包文件的应用程序进行打包,获得第一应用程序打包文件。
可选地,所述更新模块还用于根据所述第一版本号及预设规则生成第二版本号,所述第二版本号作为所述第一应用程序打包文件的版本号。
可选地,所述更新模块还用于根据所述第一程序打包文件的所述第一标识信息获取主工程中对应的第三程序打包文件,并将所述第三程序打包文件的版本号更新为所述第一版本号,和/或根据所述第一应用程序打包文件的第二标识信息获取主工程中对应的第二应用程序打包文件,并将所述第二应用程序打包文件的版本号更新为所述第二版本号;所述替换模块还用于根据所述第一版本号从所述包管理平台获取所述第一程序打包文件,并将所述第三程序打包文件替换为所述第一程序打包文件,和/或根据所述第二版本号从所述应用管理平台获取所述第一应用程序打包文件,并将所述第二应用程序打包文件替换为所述第一应用程序打包文件。
可选地,所述应用打包模块还用于将所述主工程的程序进行打包,获得系统程序包文件。
可选地,所述更新模块还用于根据所述第一版本号和/或所述第二版本号及预设规则生成第三版本号,所述第三版本号作为所述系统程序包文件的版本号。
可选地,所述程序自动更新装置还包括:语义化版本管理模块,其配置为用于采用语义化版本管理方法自动生成所述第一版本号。
可选地,所述第一版本号包括主版本号、次版本号、修订号。
根据本公开的第三方面,本公开提供了一种电子装置,其中,所述电子装置包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器执行所述计算机程序时,实现上述本公开的第一方面的方法。
根据本公开的第四方面,本公开提供了一种计算机可读存储介质,其中,所述存储介质存储有计算机程序,所述计算机程序被执行时,实现上述本公开的第一方面的方法。
通过本公开的程序自动更新方法和装置,可以实现SDK及与其具有关联关系的应用程序的联动升级,进而实现包含该SDK和/或应用程序的主工程的联动升级,有效提高了程序自动升级的效率,节约了人力成本,且避免了不必要的错误或漏洞。
附图说明
通过参考附图阅读下文的详细描述,本公开示例性实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本公开的若干实施方式,并且相同或对应的标号表示相同或对应的部分其中:
图1是示出根据本公开的一个实施例的程序自动更新方法的流程图;
图2是示出根据本公开的一个实施例的程序自动更新装置的示意性框图。
具体实施方式
下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本公开一部分实施例,而不是全部的实施例。基于本公开中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。
下面结合附图来详细描述本公开的具体实施方式。
本公开提供一种程序自动更新方法。参照图1,图1是示出根据本公开的一个实施例的程序自动更新方法的流程图。如图1中所示,所述方法包括以下步骤S101-S106。步骤S101:获取程序更新文件。步骤S102:将所述程序更新文件进行打包,获得第一程序打包文件;其中,所述第一程序打包文件的版本号为第一版本号。步骤S103:将所述第一程序打包文件发送至包管理平台。步骤S104:根据所述第一程序打包文件的第一标识信息获取应用管理平台中对应的第二程序打包文件,并将所述第二程序打包文件的版本号更新为所述第一版本号。步骤S105:根据所述第一版本号从所述包管理平台获取所述第一程序打包文件,并将所述第二程序打包文件替换为所述第一程序打包文件;步骤S106:将所述应用管理平台中包含所述第一程序打包文件的应用程序进行打包,获得第一应用程序打包文件。
通过本公开的程序自动更新方法,可以实现SDK及与其具有关联关系的应用程序的联动升级,有效提高了程序自动升级的效率,节约了人力成本,且避免了不必要的错误或漏洞。
在步骤S101中,可以获取程序更新文件。
根据本公开的实施例,为了实现程序自动更新,首先应获取程序更新文件。该程序更新文件可以是通过任何适当途径获取到的,例如可以由程序开发人员上传,或者由持续集成工具(例如Jenkins)自动获取等等。程序更新文件可以是某一功能模块的程序代码,例如可以是SDK(Software Development Kit,软件开发工具包)。
在步骤S102中,可以将所述程序更新文件进行打包,获得第一程序打包文件;其中,所述第一程序打包文件的版本号为第一版本号。
根据本公开的实施例,程序集成工具(例如Jenkins)获取程序更新文件后,需将该程序更新文件进行打包。
具体地,Jenkins构建脚本Jenkinsfile,调用SDK打包脚本,以实现对SDK的打包。打包获得的第一程序打包文件可以有两种格式:*.jar和*.aar,简单地理解,前者只包含代码文件,后者包含图片、布局等资源文件。程序打包文件均具有版本号,以识别其版本类型和/或版本级别。该第一程序打包文件的版本号为第一版本号。
作为一种优选的实施例,该第一版本号采用语义化版本管理方法自动生成,包括:主版本号、次版本号、修订号,即该第一版本号的格式为:主版本号.次版本号.修订号。其中,主版本号(MAJOR)代表不兼容的接口修改;次版本号(MINOR)代表向下兼容的功能性新增;修订号(PATCH)代表向下兼容的功能性修改。版本号生成规则可以根据实际需要设定,例如可以设定为主版本号、次版本号、修订号均为十进制数字,且无大小上限,根据不同的程序更新方式,相应的版本号依次递增;和/或,根据不同版本类型,在版本号后增加一位;和/或,根据不同版本类型,在版本号后增加版本类型后缀,包括但不限于:α(Alpha,内部测试版),β(Beta,公开测试版),r(Release,发行版)等等。
具体地,采用语义化版本管理方法自动生成第一版本号可以包括以下步骤:获取版本号生成请求,其中,该版本号生成请求包括程序名称(发布对象)、版本类型(发布类型)、程序更新方式等;根据程序名称获取该程序的所有已知版本号;根据预设算法获取该程序的最新(最大)版本号,其中,预设算法可以根据实际需要设置,例如可以是任选两个已知版本号逐位对比对比,然后将其中较大的版本号与第三个已知版本号对比,直至所有已知版本号对比完毕;最后根据版本类型及程序更新方式生成第一版本号。
以已知版本中最新版本为“Release包2.1.5版”为例,若程序更新文件针对该最新版本做了不兼容的接口修改,且第一程序打包文件为Beta包,则第一版本号为3.0.0.1;若程序更新文件针对该最新版本做了向下兼容的功能性新增,且第一程序打包文件为Beta包,则第一版本号为2.2.0.1;若程序更新文件针对该最新版本做了向下兼容的功能性修改,且第一程序打包文件为Beta包,则第一版本号为2.1.6.1;若程序更新文件针对该最新版本做了不兼容的接口修改,且第一程序打包文件为Release包,则第一版本号为3.0.0;若程序更新文件针对该最新版本做了向下兼容的功能性新增,且第一程序打包文件为Release包,则第一版本号为2.2.0;若程序更新文件针对该最新版本做了向下兼容的功能性修改,且第一程序打包文件为Release包,则第一版本号为2.1.6。
在步骤S103中,可以将所述第一程序打包文件发送至包管理平台。
根据本公开的实施例,第一程序打包文件发送至包管理平台进行存储。
具体地,SDK打包脚本将第一程序打包文件上传至包管理平台,例如,可以根据不同操作系统选择不同的包管理平台,例如可以是本地Maven仓库或者Cocopods仓库。包管理平台存储有相关程序的所有版本的所有文件。
在步骤S104中,可以根据所述第一程序打包文件的第一标识信息获取应用管理平台中对应的第二程序打包文件,并将所述第二程序打包文件的版本号更新为所述第一版本号。
根据本公开的实施例,为实现对与程序更新文件具有关联关系的应用程序的联动更新或升级,首先对该应用程序中与程序更新文件相对应的第二程序打包文件的版本号进行更新。
具体地,第一程序打包文件的第一标识信息可以是任何可以用于唯一定义或识别程序打包文件的信息,例如可以包括:程序/软件名称、识别码/ID(IDentity)、密码等。实际应用中,可以根据需要对程序的标识信息进行自定义,以实现对程序的准确管理,通过标识信息可以唯一确定该软件工具包,与其版本号无关。应用管理平台用于管理各种应用程序,例如可以是Flutter仓库。本实施例中,SDK脚本更新Flutter仓库中与第一程序打包文件相对应的第二程序打包文件的版本号,其中,第一程序打包文件与第二程序打包文件属于同一程序的不同版本的打包文件。
在步骤S105中,可以根据所述第一版本号从所述包管理平台获取所述第一程序打包文件,并将所述第二程序打包文件替换为所述第一程序打包文件。
根据本公开的实施例,可以根据版本号自动获取相应的程序打包文件,以进一步更新与该程序打包文件相关联的应用程序。
具体地,通过SDK打包脚本调用teamcity API,进而对teamcity进行操作,实现应用程序的联动更新/升级。其中,teamcity是一款功能强大的持续集成(ContinueIntegration)工具,包括服务器端和客户端。本实施例中,通过teamcity获取第一程序打包文件,并将第二程序打包文件替换为第一程序打包文件,实现应用程序中相应程序的联动更新/升级。
在步骤S106中,可以将所述应用管理平台中包含所述第一程序打包文件的应用程序进行打包,获得第一应用程序打包文件。
根据本公开的实施例,在对应用程序中相应程序打包文件进行更新之后,将该应用程序进行打包,获得第一应用程序打包文件。
具体地,由SDK打包脚本调用teamcity API,对teamcity进行操作,实现teamcity上打包任务的触发、打包任务状态的跟踪等功能。本实施例中,teamcity对包含该第一程序打包文件的应用程序进行包括,获得第一应用程序打包文件,实现了应用程序的更新打包。
优选地,第一应用程序打包文件可以上传本地Maven仓库进行存储备份。
作为一种优选的实施例,本公开的程序自动更新方法还包括:根据所述第一版本号及预设规则生成第二版本号,所述第二版本号作为所述第一应用程序打包文件的版本号。
具体地,本公开的程序自动更新方法可以用于实现与该程序相关联的应用程序的自动更新/升级,即可以自动触发依赖方的更新与打包。而不同应用程序(或依赖方)的命名规则不同,为了便于应用程序管理,可结合第一版本号对更新后的应用程序的版本号进行更新,例如,可以在应用程序的版本号中包含第一版本号,或者结合第一程序打包文件的更新类型、更新次数、和/或更新时间等生成第二版本号。实际应用中,可根据需要自定义应用程序的版本号生成规则。
另一种优选的实施例,本公开的程序自动更新方法还包括:根据所述第一程序打包文件的所述第一标识信息获取主工程中对应的第三程序打包文件,并将所述第三程序打包文件的版本号更新为所述第一版本号;根据所述第一版本号从所述包管理平台获取所述第一程序打包文件,并将所述第三程序打包文件替换为所述第一程序打包文件;和/或,根据所述第一应用程序打包文件的第二标识信息获取主工程中对应的第二应用程序打包文件,并将所述第二应用程序打包文件的版本号更新为所述第二版本号;根据所述第二版本号从所述应用管理平台获取所述第一应用程序打包文件,并将所述第二应用程序打包文件替换为所述第一应用程序打包文件。
根据本优选实施例,在实现应用程序的联动更新/升级后,对与该程序更新文件具有关联关系的主工程程序进行自动更新。其中,主工程指相应SDK服务的主要客户端,该客户端使用的底层能力由该SDK提供,主工程根据不同的操作系统可以分为Android主工程和iOS主工程。
具体地,SDK打包脚本调用teamcity API,通过teamcity实现对主工程程序的更新与打包。具体更新与打包的方式与前述对应用程序的更新与打包的方式类似,即,先进行主工程程序中对应的程序打包文件和/或应用程序打包文件的版本号的更新,然后对程序打包文件和/或应用程序打包文件进行更新替换,在此不再展开阐述。
优选地,对主工程程序中对应的程序打包文件和/或应用程序打包文件更新后,将所述主工程的程序进行打包,获得系统程序包文件;其中,所述系统程序包文件包括所述第一程序打包文件和/或第一应用程序打包文件,系统程序包文件可以是供客户端软件更新/升级使用的安装包,其根据不同操作系统具有不同的格式,例如,Android主工程的程序经打包获得的系统程序包文件可以是APK(Android application package)安装包,iOS主工程的程序经打包获得的系统程序包文件可以是IPA(iPhone Application)安装包。
优选地,可以根据所述第一版本号和/或所述第二版本号及预设规则生成第三版本号,所述第三版本号作为所述系统程序包文件的版本号。
根据本公开的实施例,为了更好地对系统程序包文件进行管理,可以通过对其版本号的管理实现对其文件的管理。具体地,可以在系统程序包文件的版本号中包含第一版本号和/或第二版本号,或者,结合程序打包文件或应用程序打包文件的更新类型、更新次数、和/或更新时间等生成对应的系统程序包文件的版本号。实际应用中,可根据需要自定义应用程序的版本号生成规则。
本公开的程序自动更新方法,不仅可以实现与程序更新文件具有关联关系的应用程序的自动更新与打包,而且可以实现关联主工程的自动更新与打包。即,本公开的程序自动更新方法实现了跨打包工具的联动,自动触发依赖方的打包及联动升级,有效提高了程序自动升级的效率,节约了人力成本。
本公开还提供了一种程序自动更新装置。该装置用于执行以上结合图1所描述的程序自动更新方法实施例中的步骤。
参照图2,图2是示出根据本公开的一个实施例的程序自动更新装置100的示意性框图。该装置100包括程序获取模块101、程序打包模块102、发送模块103、更新模块104、替换模块105、应用打包模块106。该程序获取模块101配置为用于获取程序更新文件。该程序打包模块102配置为用于将所述程序更新文件进行打包,获得第一程序打包文件。该发送模块103配置为用于将所述第一程序打包文件发送至包管理平台。该更新模块104配置为用于根据所述第一程序打包文件的第一标识信息获取应用管理平台中对应的第二程序打包文件,并将所述第二程序打包文件的版本号更新为所述第一版本号。该替换模块105配置为用于根据所述第一版本号从所述包管理平台获取所述第一程序打包文件,并将所述第二程序打包文件替换为所述第一程序打包文件。该应用打包模块106配置为用于将所述应用管理平台中包含所述第一程序打包文件的应用程序进行打包,获得第一应用程序打包文件。
优选地,所述程序自动更新装置还包括语义化版本管理模块,其配置为用于采用语义化版本管理方法自动生成所述第一版本号。优选地,所述第一版本号包括主版本号、次版本号、修订号。
作为一种优选的实施例,所述更新模块104还用于根据所述第一版本号及预设规则生成第二版本号,所述第二版本号作为所述第一应用程序打包文件的版本号。
另一种优选的实施例,所述更新模块104还用于根据所述第一程序打包文件的所述第一标识信息获取主工程中对应的第三程序打包文件,并将所述第三程序打包文件的版本号更新为所述第一版本号,和/或根据所述第一应用程序打包文件的第二标识信息获取主工程中对应的第二应用程序打包文件,并将所述第二应用程序打包文件的版本号更新为所述第二版本号;所述替换模块105还用于根据所述第一版本号从所述包管理平台获取所述第一程序打包文件,并将所述第三程序打包文件替换为所述第一程序打包文件,和/或根据所述第二版本号从所述应用管理平台获取所述第一应用程序打包文件,并将所述第二应用程序打包文件替换为所述第一应用程序打包文件。
优选地,所述应用打包模块106还用于将所述主工程的程序进行打包,获得系统程序包文件。
优选地,所述更新模块104还用于根据所述第一版本号和/或所述第二版本号及预设规则生成第三版本号,所述第三版本号作为所述系统程序包文件的版本号。
作为一种可选的实施例,本公开的程序自动更新装置可以包括程序更新子装置和联动更新子装置,其中,程序更新子装置可以配置为用于实现程序更新文件的获取、打包、上传,其可以包括程序获取模块101、程序打包模块102、发送模块103;联动更新子装置可以配置为用于实现应用程序和/或主工程的联动更新、打包等,其可以包括更新模块104、替换模块105、应用打包模块106。此外,程序更新子装置还可以包括程序存储模块,其可以配置为用于存储相关程序的所有版本的所有文件,其例如可以是包管理平台;联动更新子装置还可以包括应用存储模块,其可以配置为用于存储应用程序打包文件和/或系统程序包文件,其例如可以包括应用管理平台。
可以理解的是,关于以上参照图2描述的实施例中的程序自动更新装置,其中各个模块执行操作的具体方式已经在结合图1所描述的程序自动更新方法的实施例中进行了详细描述,此处将不做详细阐述说明。
本公开实施例还提供一种电子装置,其中,所述电子装置包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器执行所述计算机程序时,实现如下步骤:获取程序更新文件;将所述程序更新文件进行打包,获得第一程序打包文件;其中,所述第一程序打包文件的版本号为第一版本号;将所述第一程序打包文件发送至包管理平台;根据所述第一程序打包文件的第一标识信息获取应用管理平台中对应的第二程序打包文件,并将所述第二程序打包文件的版本号更新为所述第一版本号;根据所述第一版本号从所述包管理平台获取所述第一程序打包文件,并将所述第二程序打包文件替换为所述第一程序打包文件;将所述应用管理平台中包含所述第一程序打包文件的应用程序进行打包,获得第一应用程序打包文件。
可以理解的是,所述处理器执行所述计算机程序时实现的步骤与上述方法中的各个步骤的实现方式基本一致,具体方式已经在有关程序自动更新方法的实施例中进行了详细描述,此处将不做详细阐述说明。
在另一方面中,本公开提供一种计算机可读存储介质,其中,所述存储介质存储有计算机程序,所述计算机程序被执行时,实现如下步骤:获取程序更新文件;将所述程序更新文件进行打包,获得第一程序打包文件;其中,所述第一程序打包文件的版本号为第一版本号;将所述第一程序打包文件发送至包管理平台;根据所述第一程序打包文件的第一标识信息获取应用管理平台中对应的第二程序打包文件,并将所述第二程序打包文件的版本号更新为所述第一版本号;根据所述第一版本号从所述包管理平台获取所述第一程序打包文件,并将所述第二程序打包文件替换为所述第一程序打包文件;将所述应用管理平台中包含所述第一程序打包文件的应用程序进行打包,获得第一应用程序打包文件。
可以理解的是,所述处理器执行所述计算机程序时实现的步骤与上述方法中的各个步骤的实现方式基本一致,具体方式已经在有关程序自动更新方法的实施例中进行了详细描述,此处将不做详细阐述说明。
以上对本公开实施例进行了详细介绍,本文中应用了具体个例对本公开的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本公开的方法及其核心思想;同时,对于本领域的一般技术人员,依据本公开的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本公开的限制。
应当理解,本公开的权利要求、说明书及附图中的术语“第一”和“第二”、等是用于区别不同对象,而不是用于描述特定顺序。本公开的说明书和权利要求书中使用的术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在此本公开说明书中所使用的术语仅仅是出于描述特定实施例的目的,而并不意在限定本公开。如在本公开说明书和权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。还应当进一步理解,在本公开说明书和权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
以上对本公开实施例进行了详细介绍,本文中应用了具体个例对本公开的原理及实施方式进行了阐述,以上实施例的说明仅用于帮助理解本公开的方法及其核心思想。同时,本领域技术人员依据本公开的思想,基于本公开的具体实施方式及应用范围上做出的改变或变形之处,都属于本公开保护的范围。综上所述,本说明书内容不应理解为对本公开的限制。
Claims (14)
1.一种程序自动更新方法,其中,所述方法包括:
获取程序更新文件;
将所述程序更新文件进行打包,获得第一程序打包文件;其中,所述第一程序打包文件的版本号为第一版本号;
将所述第一程序打包文件发送至包管理平台;
根据所述第一程序打包文件的第一标识信息获取应用管理平台中对应的第二程序打包文件,并将所述第二程序打包文件的版本号更新为所述第一版本号;
根据所述第一版本号从所述包管理平台获取所述第一程序打包文件,并将所述第二程序打包文件替换为所述第一程序打包文件;
将所述应用管理平台中包含所述第一程序打包文件的应用程序进行打包,获得第一应用程序打包文件。
2.根据权利要求1所述的程序自动更新方法,其中,所述方法还包括:
根据所述第一版本号及预设规则生成第二版本号,所述第二版本号作为所述第一应用程序打包文件的版本号。
3.根据权利要求2所述的程序自动更新方法,其中,所述方法还包括:
根据所述第一程序打包文件的所述第一标识信息获取主工程中对应的第三程序打包文件,并将所述第三程序打包文件的版本号更新为所述第一版本号;根据所述第一版本号从所述包管理平台获取所述第一程序打包文件,并将所述第三程序打包文件替换为所述第一程序打包文件;
和/或,
根据所述第一应用程序打包文件的第二标识信息获取主工程中对应的第二应用程序打包文件,并将所述第二应用程序打包文件的版本号更新为所述第二版本号;根据所述第二版本号从所述应用管理平台获取所述第一应用程序打包文件,并将所述第二应用程序打包文件替换为所述第一应用程序打包文件。
4.根据权利要求3所述的程序自动更新方法,其中,所述方法还包括:
将所述主工程的程序进行打包,获得系统程序包文件;其中,所述系统程序包文件包括所述第一程序打包文件和/或第一应用程序打包文件。
5.根据权利要求1至4中任一项所述的程序自动更新方法,其中,所述第一版本号采用语义化版本管理方法自动生成。
6.根据权利要求5所述的程序自动更新方法,其中,所述第一版本号包括主版本号、次版本号、修订号。
7.一种程序自动更新装置,其中,所述装置包括:
程序获取模块,其配置为用于获取程序更新文件;
程序打包模块,其配置为用于将所述程序更新文件进行打包,获得第一程序打包文件;
发送模块,其配置为用于将所述第一程序打包文件发送至包管理平台;
更新模块,其配置为用于根据所述第一程序打包文件的第一标识信息获取应用管理平台中对应的第二程序打包文件,并将所述第二程序打包文件的版本号更新为所述第一版本号;
替换模块,其配置为用于根据所述第一版本号从所述包管理平台获取所述第一程序打包文件,并将所述第二程序打包文件替换为所述第一程序打包文件;
应用打包模块,其配置为用于将所述应用管理平台中包含所述第一程序打包文件的应用程序进行打包,获得第一应用程序打包文件。
8.根据权利要求7所述的程序自动更新装置,其中,所述更新模块还用于根据所述第一版本号及预设规则生成第二版本号,所述第二版本号作为所述第一应用程序打包文件的版本号。
9.根据权利要求8所述的程序自动更新装置,其中,所述更新模块还用于根据所述第一程序打包文件的所述第一标识信息获取主工程中对应的第三程序打包文件,并将所述第三程序打包文件的版本号更新为所述第一版本号,和/或根据所述第一应用程序打包文件的第二标识信息获取主工程中对应的第二应用程序打包文件,并将所述第二应用程序打包文件的版本号更新为所述第二版本号;所述替换模块还用于根据所述第一版本号从所述包管理平台获取所述第一程序打包文件,并将所述第三程序打包文件替换为所述第一程序打包文件,和/或根据所述第二版本号从所述应用管理平台获取所述第一应用程序打包文件,并将所述第二应用程序打包文件替换为所述第一应用程序打包文件。
10.根据权利要求9所述的程序自动更新装置,其中,所述应用打包模块还用于将所述主工程的程序进行打包,获得系统程序包文件。
11.根据权利要求7至10中任一项所述的程序自动更新装置,其中,所述装置还包括:
语义化版本管理模块,其配置为用于采用语义化版本管理方法自动生成所述第一版本号。
12.根据权利要求11所述的程序自动更新装置,其中,所述第一版本号包括主版本号、次版本号、修订号。
13.一种电子装置,其中,所述电子装置包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器执行所述计算机程序时,实现如权利要求1至6中任一项所述的方法。
14.一种计算机可读存储介质,其中,所述存储介质存储有计算机程序,所述计算机程序被执行时,实现如权利要求1至6中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111214804.8A CN113961220A (zh) | 2021-10-19 | 2021-10-19 | 程序自动更新方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111214804.8A CN113961220A (zh) | 2021-10-19 | 2021-10-19 | 程序自动更新方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113961220A true CN113961220A (zh) | 2022-01-21 |
Family
ID=79465259
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111214804.8A Pending CN113961220A (zh) | 2021-10-19 | 2021-10-19 | 程序自动更新方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113961220A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117270896A (zh) * | 2023-11-15 | 2023-12-22 | 中孚安全技术有限公司 | 一种应用程序自动识别安装方法、系统、装置及存储介质 |
-
2021
- 2021-10-19 CN CN202111214804.8A patent/CN113961220A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117270896A (zh) * | 2023-11-15 | 2023-12-22 | 中孚安全技术有限公司 | 一种应用程序自动识别安装方法、系统、装置及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7313577B2 (en) | Generating difference files using module information of embedded software components | |
CN102195802B (zh) | 一种终端软件下发方法、服务器和终端 | |
CN107870771B (zh) | 应用程序构建与升级方法及系统 | |
CN103699408A (zh) | 一种软件升级的方法和设备 | |
JP5542796B2 (ja) | モバイル・デバイス・ソフトウェアの管理方法及び装置 | |
US8782636B2 (en) | Information processing apparatus, control method thereof, and program | |
CN102567053A (zh) | 一种软件版本回退的方法及装置 | |
CN103995721A (zh) | 一种应用程序的升级方法、装置及系统 | |
CN105302563A (zh) | 移动应用服务的插件化方法及系统 | |
CN106951284B (zh) | 基于安卓系统应用的用户界面升级方法、装置及智能终端 | |
TW201621647A (zh) | 作業系統更新方法 | |
CN106569863B (zh) | 基于资源和代码模块化的安卓app资源更新和修复的方法 | |
CN111949276B (zh) | 一种基于容器方式自动部署应用程序的系统及方法 | |
CN113961220A (zh) | 程序自动更新方法及装置 | |
CN113645308B (zh) | 移动终端tcp通信、装置、设备及存储介质 | |
CN112286543B (zh) | 一种应用服务部署方法及装置 | |
CN114024951A (zh) | 一种基于云边协同的电力边缘异构部署方法 | |
EP3260981B1 (en) | Information processing apparatus, information processing system, and information processing method for updating firmware | |
CN111782251B (zh) | 一种软件功能模块的更新方法、装置及计算机设备 | |
GB2454583A (en) | Remote management of mobile devices | |
US20230239212A1 (en) | Stable References for Network Function Life Cycle Management Automation | |
CN110221855B (zh) | 一种app与服务器协同更新和离线运行的方法 | |
CN112631646A (zh) | App版本降级的数据兼容方法、装置、设备及存储介质 | |
WO2017036197A1 (zh) | 一种网元模型管理方法及装置 | |
CN115543429A (zh) | 项目环境的搭建方法、电子设备及计算机可读存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |