CN111736863A - 一种软件升级方法、装置及电子设备 - Google Patents
一种软件升级方法、装置及电子设备 Download PDFInfo
- Publication number
- CN111736863A CN111736863A CN202010442671.9A CN202010442671A CN111736863A CN 111736863 A CN111736863 A CN 111736863A CN 202010442671 A CN202010442671 A CN 202010442671A CN 111736863 A CN111736863 A CN 111736863A
- Authority
- CN
- China
- Prior art keywords
- file
- software
- updated
- update
- public
- 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
- 238000000034 method Methods 0.000 title claims abstract description 62
- 238000009434 installation Methods 0.000 claims description 26
- 238000004904 shortening Methods 0.000 abstract 1
- 230000006870 function Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 4
- 238000011900 installation process Methods 0.000 description 4
- 238000004806 packaging method and process Methods 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 235000019800 disodium phosphate Nutrition 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
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
Abstract
本申请提供一种软件升级方法、装置及电子设备,涉及数据处理技术领域。该方法包括:判断所述软件是否需要更新,所述软件包括自身文件及公共文件,所述自身文件为所述软件的程序组件中用于自身调用的文件,所述公共文件为所述软件中用于公共调用的文件;当确定所述软件需要更新时,获取所述软件的更新包,所述更新包至少包括所述自身文件的更新包,和/或所述公共文件的更新包;通过所述更新包对所述软件进行更新。本申请更新方式不仅可以避免每次更新均需要下载完整的软件家族的更新包,且无需要求连续版本号,可以大大缩短软件家族更新时长,便于用户更新。
Description
技术领域
本申请涉及数据处理技术领域,具体而言,涉及一种软件升级方法、 装置及电子设备。
背景技术
软件的更新一般采用两种方式,一种是全部更新,对于部分小软件来 讲每个版本更新均在更新服务器上放置软件运行的全部文件的更新包。另 外一种方式增量更新,只更新软件有变动的部分,更新包只放置变动和增 加的文件,其他文件不动,安装更新的时候替换旧文件即可。
但是,全部更新不适用于文件数量较多、更新包体积较大的软件,尤 其是包含多个程序组件的软件家族,因存在系统库的原因,每次更新需要 下载整个软件家族的软件更新包进行更新。而增量更新的差异比较又基于 上一个版本,用户必须从低版本一个个的增量到最新版本。
因此,软件家族在应用现有的软件更新方案时,均存在更新耗时较长、 更新不方便的问题。
发明内容
本申请的目的在于,针对上述现有技术中的不足,提供一种软件升级 方法、装置及电子设备,以解决现有技术中软件家族更新耗时较长的问题。
为实现上述目的,本申请实施例采用的技术方案如下:
第一方面,本申请提供了一种软件更新方法,应用于软件的更新,所 述软件包括多个程序组件,所述方法包括:
判断所述软件是否需要更新,所述软件包括自身文件及公共文件,所 述自身文件为所述软件的程序组件中用于自身调用的文件,所述公共文件 为所述软件中用于公共调用的文件;
当确定所述软件需要更新时,获取所述软件的更新包,所述更新包至 少包括所述自身文件的更新包,和/或所述公共文件的更新包;
通过所述更新包对所述软件进行更新。
可选的,通过所述更新包对所述软件进行更新,包括:
确定所述软件中待更新文件的文件安装主目录,在所述文件安装主目 录下创建与所述待更新文件的原文件目录平行的更新文件目录;
将所述更新包安装在所述更新文件目录中;
将更新后的文件的启动入口地址修改至所述更新文件目录。
可选的,所述判断所述软件是否需要更新,包括:
通过壳程序调用所述软件的更新模块;
运行所述更新模块,以向服务器查询所述软件的最新版本号,所述软 件的最新版本号包括所述自身文件的最新版本号,和/或所述公共文件的最 新版本号;
若所述软件的最新版本号较所述软件的当前版本号新,则确定所述软 件需要更新。
可选的,所述自身文件和/或所述公共文件的当前版本号通过注册表信 息进行确定。
可选的,在所述判断所述软件是否需要更新之前,还包括:
将所述软件中各程序组件的自身文件分别与其运行所需的公共文件进 行关联;
将关联后的信息保存在注册表中。
可选的,所述当确定所述软件需要更新时,获取所述软件的更新包, 包括:
当所述软件的自身文件需要更新,且所述公共文件不需要更新时,单 独获取所述自身文件的更新包;或者
当所述软件的自身文件及所述公共文件均需要更新时,同时获取所述 自身文件及公共文件的更新包;或者
当所述软件的自身文件不需要更新,且所述公共文件需要更新时,单 独获取所述公共文件的更新包。
可选的,所述将所述更新包安装在所述更新文件目录中,包括:
将公共文件的更新包安装在相应的更新文件目录中;
当所述公共文件的更新包安装完毕后,再将所述自身文件的更新包安 装在相应的更新文件目录;
所述将更新后的文件的启动入口地址修改至所述更新文件目录,包括:
修改所述更新后的文件的快捷方式在注册表中对应的文件路径及更新 后的公共文件的当前版本号;
将所述注册表中的文件路径与所述公共文件的当前版本号关联。
可选的,所述公共文件为多个程序组件共用的系统库、多媒体数据库、 开发平台库或公共信息库的至少一种。
第二方面,本申请还提供了一种软件更新装置,应用于软件的更新, 所述软件包括多个程序组件,包括:
更新判断模块,用于判断所述软件是否需要更新,所述软件包括自身 文件及公共文件,所述公共文件为所述软件中用于公共调用的文件,所述 自身文件为所述软件的程序组件中用于自身调用的文件;
更新包获取模块,用于当确定所述软件需要更新时,获取所述软件的 更新包,所述更新包至少包括所述自身文件的更新包,和/或所述公共文件 的更新包;
更新模块,用于通过所述更新包对所述软件进行更新。
第三方面,本申请还提供了一种电子设备,所述电子设备包括:
处理器及与所述处理器电连接的存储器;
所述存储器存储有所述处理器可执行的机器可读指令,所述处理器执行所 述机器可读指令,以执行如上任一项所述的软件更新方法。
本申请实施例的有益效果在于:
本申请实施例通过将软件中的文件分为自身文件及公共文件,当确定 软件需要更新时,获取该软件的更新包,该更新包可以包括自身文件的更 新包和/或公共文件的更新包,并通过更新包对软件进行更新。本申请通过 分别对软件的自身文件及公共文件进行区分、更新,以减小更新包的体积, 该更新方式不仅可以避免每次更新均需要下载完整的软件家族的更新包, 且无需要求连续版本号,可以大大缩短软件家族更新时长,便于用户更新。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需 要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些 实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲, 在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请实施例所提供的软件家族的组成示意图;
图2为本申请实施例所提供的软件升级方法的实现流程图;
图3为本申请实施例所提供的软件更新方法的应用场景。
图4为本申请实施例所提供的确定软件是否需要更新的实现流程图;
图5为本申请实施例所提供的安装更新包的实现流程图;
图6为本申请实施例所提供的软件更新装置的结构示意图;
图7为本申请实施例所提供的电子设备的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本 申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描 述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。
软件的更新一般采用两种方式,一种是全部更新,对于部分小软件来 讲每个版本更新均在更新服务器上放置软件运行的全部文件的更新包。另 外一种方式增量更新,只更新软件有变动的部分,更新包只放置变动和增 加的文件,其他文件不动,安装更新的时候替换旧文件即可。
但是,全部更新不适用于文件数量较多、更新包体积较大的软件,尤 其是包含多个软件的软件家族,因存在系统库的原因,每次更新需要下载 整个家族的软件更新包进行更新。
在一实施例中,结合图1,图中示出了本申请实施例提供的软件家族的 组成示意图。该软件家族可以包括多个程序组件,以实现不同的应用场景。
在现有技术中,一般当软件家族需要更新时,为了确保软件的完整性, 需要将所有软件运行所需的文件组合成一个安装包后进行下载,例如将程 序组件A、程序组件B及程序组件C,以及其他程序关联文件等。由此产 生更新包较大使得容易出现更新耗时的问题。
而在增量更新方式中,其依赖检测当前版本与最新版本之间的差异性 来确定软件的增量,若当前版本与最新版本之间不连续,用户必须从低版 本一个个的增量到最新版本。
因此,本申请用于解决上述问题提供以下技术方案,下面将结合具体 实施例对本申请的技术方案加以解释。
参见图2,图中示出了本申请实施例所提供的一种软件更新方法的实现 流程。
该软件更新方法可以应用于电子设备上,例如个人电脑、平板电脑、 智能手机或服务器等可用于安装、更新软件的设备,本申请对此不作限定。
如图2所示,该软件更新方法包括:
101、判断所述软件是否需要更新,该软件包括自身文件及公共文件。
其中,所述软件包括多个程序组件,该自身文件为软件的程序组件中 用于自身调用的文件,该公共文件为软件中用于公共调用的文件。
结合图3,图中示出了本申请实施例所提供的软件更新方法的应用场景。
如图3所示,可知自身文件为程序组件仅用于自身调用的文件。例如, 若程序组件A为该软件家族中的“课堂视频”程序,则可用于执行该“课堂视 频”功能的、具有和其他软件特异性的文件可以作为该软件的自身文件,如 视频控件、视频界面显示文件等。
而对于该“课堂视频”所调用的数据库,如视频库等,其不仅用于“课堂 视频”该软件,还可以作为其他软件的数据进行调用,则可以将此类文件定 义为公共文件。
除此之外,公共文件可以为多个程序组件共用的系统库、多媒体数据 库、开发平台库或公共信息库的至少一种。
进一步的,该自身文件及公共文件可以在软件开发的时候厂家自行定 义,具体的归类方式可以根据实际情况而定。
另外,该自身文件及公共文件之间的关联信息,可以在文件安装的时 候,将多个软件的自身文件分别与其运行所需的公共文件进行关联,并将 关联后的信息保存在注册表中,以使系统可以通过该注册表查找到该软件 对应的公共文件的版本号信息及文件地址等,便于后续的版本号查询、更 新。
可以理解的,该自身文件及公共文件的具体类型及关联方式可以根据 实际情况而定,本申请在此不作限定。
在一实施例中,判断软件是否需要更新,可以通过查询注册表中的自 身文件的版本号和/或公共文件的版本号,再从所连接的服务器端获取最新 的文件版本号进行比对确定。
具体的,该判断软件是否需要更新的步骤,可以通过壳程序启动该软 件的更新模块后进行触发。其中,该壳程序为操作系统与用户界面之间的 接口。
当然,除了上述判断方式,还可以采用其他对版本号是否为最新的查 验方式来确定,例如通过服务器直接发送携带有最新文件版本号的更新指 令,再将其与注册表中的文件版本号进行比对等。
102、当确定软件需要更新时,获取软件的更新包,该更新包至少包括 自身文件的更新包和/或公共文件的更新包。
其中,该更新包可以包括该更新部分的全部安装数据。
在一实施例中,若自身文件需要更新,则获取的更新包至少包括该自 身文件的所有安装数据。而若此时公共文件无需更新,则无需获取该公共 文件的更新包。
当然,若自身文件及公共文件均需要更新,此时则需要同时获取该自 身文件及公共文件的更新包进行更新。
确定软件是否需要更新,可以对自身文件及公共文件分别进行单独确 定,以使后续可以便于单独更新自身文件部分或者公共文件部分,从而便 于软件家族中自身文件部分或公共文件部分的频繁更新。
在具体的实现过程中,当软件的自身文件需要更新,且公共文件不需 要更新时,单独获取自身文件的更新包;或者当软件的自身文件及公共文 件均需要更新时,同时获取自身文件及公共文件的更新包;或者当软件的 自身文件不需要更新,且公共文件需要更新时,单独获取公共文件的更新 包。
通过上述手段可以确保自身文件及公共文件的单独更新功能,尽可能 减小更新包体积,提高更新效率。
在一实施例中,在获取该更新包之前,可以对软件家族中各个程序组 件的自身文件及其对应的公共文件分别进行单独打包,并进行关联,以便 于后续更新管理。
具体的打包方式可以基于现有的更新技术,对于具体所采用的打包方 式本申请不作限定。
103、通过更新包对软件进行更新。
其中,该更新包的更新过程可以使用本领域技术人员常用的更新方式, 例如覆盖/替换原文件,或者将文件安装到其他文件目录。
在一些实施例中,通过更新包对软件进行更新,可以包括以下步骤: 确定软件中待更新文件的文件安装主目录,在文件安装主目录下创建与待 更新文件的原文件目录平行的更新文件目录;将更新包安装在更新文件目 录中;将更新后的文件的启动入口地址修改至更新文件目录。
其中,软件家族中的各个程序组件一般安装在同一文件夹中,并且将 多个程序组件所共同安装的目录地址作为文件安装主目录。该更新文件目 录用于存放更新包所执行安装的文件。
当软件的更新包需要进行安装时,可以通过注册表获知该软件的文件 安装主目录,再通过自定义程序在文件安装主目录下创建与需更新程序组 件的与原文件目录平行的更新文件目录,从而避免因安装更新包造成程序 的退出或影响用户对该软件的正常使用。
具体的,用户可以直接以版本号为后缀创建新的更新文件目录,把更 新包安装在该更新文件目录,然后修改系统的壳程序对应的配置文件实现 启动时对更新文件目录中的启动程序进行直接调用,而不是将其替换旧的 文件。
更新包的安装过程可以根据软件开发商的需要进行设计,其具体的实 现方式不影响本申请的实施。
该程序组件可以具有相应的快捷方式以及软件列表中相应的启动地址。 该程序组件的启动入口地址可以为在操作系统中该软件的程序组件的快捷 方式所对应的启动地址,或者是该操作系统的软件列表中相应的启动程序 所对应的启动地址(如exe后缀文件)。
在一实施例中,可以将该启动入口地址修改至更新文件目录中的启动 文件,以使当用户启动该快捷方式时,即可启动安装在更新文件目录中已 更新的文件,而跳过该软件的旧版本文件。
上述方式可以使得在安装更新包时,无需用户提前关闭该应用程序, 降低对用户的影响,且该方式在当前软件版本较旧时,可以避免增量更新 带来的多次更新操作,降低更新过程的耗时,进而提高软件的更新效率。
在一实施例中,当软件更新完毕后,在该软件下一次启动后可以删除 原有的旧版本文件,以在避免影响用户使用的前提下合理释放硬件空间。
本申请实施例通过将软件中的文件分为自身文件及公共文件,当确定 软件需要更新时,获取该软件的更新包,该更新包可以包括自身文件的更 新包和/或公共文件的更新包,并通过更新包对软件进行更新。本申请通过 分别对软件的自身文件及公共文件进行区分、更新,以减小更新包的体积, 该更新方式不仅可以避免每次更新均需要下载完整的软件家族的更新包, 且无需要求连续版本号,可以大大缩短软件家族更新时长,便于用户更新。
请参阅图4,图中示出了本申请实施例提供的确定软件是否需要更新的 实现流程。
如图4所示,该判断软件是否需要更新,可以包括以下实现步骤:
201、通过壳程序调用软件的更新模块。
其中,该壳程序为操作系统与用户界面之间的接口。
例如,操作系统中的exe后缀的启动文件,通过该启动文件可以实现软 件中更新模块的启动。
202、运行更新模块,以向服务器查询软件的最新版本号。
其中,软件的最新版本号包括自身文件的最新版本号,和/或公共文件 的最新版本号。
在一实施例中,该软件的最新版本号,可以是软件的某个或多个程序 组件的自身文件的最新版本号,或者是该程序组件相应的公共文件的最新 版本号。
服务器可以接收更新模块的查询信息,并基于查询信息通过网络向当 前设备发送该软件的最新版本号。
其中,该对应的公共文件的最新版本号可以在服务器端与该自身文件 进行关联,从而无需在查找到自身文件的最新版本号以后,再单独查找相 应的公共文件的最新版本号。
203、若软件的最新版本号较软件的当前版本号新,则确定软件需要更 新。
软件的自身文件和/或公共文件的当前版本号可以通过查询操作系统的 注册表信息进行确定。
具体的,该注册表中可以分别存储有该软件的各个程序组件的自身文 件及所关联的公共文件的当前版本号,以便于系统的调用。
在一实施例中,若自身文件的更新较为频繁,而该公共文件更新不频 繁时,可以先单独查找自身文件是否需要更新,若确定该自身文件需要更 新时,再查询与之关联的公共文件是否需要更新,进而减少查询的次数, 提高查询效率。
由上可知,通过将软件中程序组件的自身文件及公共文件进行关联, 并分别查询自身文件及公共文件是否需要更新,从而有针对性的分别单独 对自身文件和/或公共文件进行更新,可以提高软件的更新效率。
请参阅图5,图中示出了本申请实施例提供的安装更新包的实现流程。
如图5所示,所述将所述更新包安装在所述更新文件目录中,包括:
301、将公共文件的更新包安装在相应的更新文件目录中。
302、当所述公共文件的更新包安装完毕后,再将自身文件的更新包安 装在相应的更新文件目录。
若公共文件包含有开发平台库时,将公共文件优先安装于更新文件目 录中,可以确保自身文件的正常更新、运行,以避免更新出错,进而提高 更新过程的成功率。
将更新后的文件的启动入口地址修改至更新文件目录,包括:
303、修改更新后的文件的快捷方式在注册表中对应的文件路径及更新 后的公共文件的当前版本号。
304、将注册表中的文件路径与公共文件的当前版本号关联。
通过上述方式,不仅可以确保软件在更新完成后,能在下一次启动时 顺利执行已更新的文件,并且可以确保软件在下次更新时,能够便于获取 到自身文件及对应公共文件的当前版本号,提高更新效率。
请参阅图6,图中示出了本申请实施例提供的软件更新装置的结构。
如图6所示,该软件更新装置4包括更新判断模块41、更新包获取模 块42、更新模块43。
更新判断模块41,用于判断所述软件是否需要更新,所述软件包括自 身文件及公共文件,所述公共文件为所述软件中用于公共调用的文件,所 述自身文件为所述软件的程序组件中用于自身调用的文件;
结合图3,图中示出了本申请实施例所提供的软件更新方法的应用场景。
如图3所示,可知自身文件为程序组件仅用于自身调用的文件。例如, 若程序组件A为该软件家族中的“课堂视频”程序,则可用于执行该“课堂视 频”功能的、具有和其他软件特异性的文件可以作为该软件的自身文件,如 视频控件、视频界面显示文件等。
而对于该“课堂视频”所调用的数据库,如视频库等,其不仅用于“课堂 视频”该软件,还可以作为其他软件的数据进行调用,则可以将此类文件定 义为公共文件。
除此之外,公共文件可以为多个程序组件共用的系统库、多媒体数据 库、开发平台库或公共信息库的至少一种。
进一步的,该自身文件及公共文件可以在软件开发的时候厂家自行定 义,具体的归类方式可以根据实际情况而定。
另外,该自身文件及公共文件之间的关联信息,可以在文件安装的时 候,将多个软件的自身文件分别与其运行所需的公共文件进行关联,并将 关联后的信息保存在注册表中,以使系统可以通过该注册表查找到该软件 对应的公共文件的版本号信息及文件地址等,便于后续的版本号查询、更 新。
可以理解的,该自身文件及公共文件的具体类型及关联方式可以根据 实际情况而定,本申请在此不作限定。
在一实施例中,判断软件是否需要更新,可以通过查询注册表中的自 身文件的版本号和/或公共文件的版本号,再从所连接的服务器端获取最新 的文件版本号进行比对确定。
具体的,该判断软件是否需要更新的步骤,可以通过壳程序启动该软 件的更新模块后进行触发。其中,该壳程序为操作系统与用户界面之间的 接口。
当然,除了上述判断方式,还可以采用其他对版本号是否为最新的查 验方式来确定,例如通过服务器直接发送携带有最新文件版本号的更新指 令,再将其与注册表中的文件版本号进行比对等。
更新包获取模块42,用于当确定所述软件需要更新时,获取所述软件 的更新包,所述更新包至少包括所述自身文件的更新包,和/或所述公共文 件的更新包。
其中,该更新包可以包括该更新部分的全部安装数据。
在一实施例中,若自身文件需要更新,则获取的更新包至少包括该自 身文件的所有安装数据。而若此时公共文件无需更新,则无需获取该公共 文件的更新包。
当然,若自身文件及公共文件均需要更新,此时则需要同时获取该自 身文件及公共文件的更新包进行更新。
确定软件是否需要更新,可以对自身文件及公共文件分别进行单独确 定,以使后续可以便于单独更新自身文件部分或者公共文件部分,从而便 于软件家族中自身文件部分或公共文件部分的频繁更新。
在具体的实现过程中,当软件的自身文件需要更新,且公共文件不需 要更新时,单独获取自身文件的更新包;或者当软件的自身文件及公共文 件均需要更新时,同时获取自身文件及公共文件的更新包;或者当软件的 自身文件不需要更新,且公共文件需要更新时,单独获取公共文件的更新 包。
通过上述手段可以确保自身文件及公共文件的单独更新功能,尽可能 减小更新包体积,提高更新效率。
在一实施例中,在获取该更新包之前,可以对软件家族中各个程序组 件的自身文件及其对应的公共文件分别进行单独打包,并进行关联,以便 于后续更新管理。
具体的打包方式可以基于现有的更新技术,对于具体所采用的打包方 式本申请不作限定。
更新模块43,用于通过更新包对软件进行更新。
其中,该更新包的更新过程可以使用本领域技术人员常用的更新方式, 例如覆盖/替换原文件,或者将文件安装到其他文件目录。
在一些实施例中,通过更新包对软件进行更新,可以包括以下步骤: 确定软件中待更新文件的文件安装主目录,在文件安装主目录下创建与待 更新文件的原文件目录平行的更新文件目录;将更新包安装在更新文件目 录中;将更新后的文件的启动入口地址修改至更新文件目录。
其中,软件家族中的各个程序组件一般安装在同一文件夹中,并且将 多个程序组件所共同安装的目录地址作为文件安装主目录。该更新文件目 录用于存放更新包所执行安装的文件。
当软件的更新包需要进行安装时,可以通过注册表获知该软件的文件 安装主目录,再通过自定义程序在文件安装主目录下创建与需更新程序组 件的与原文件目录平行的更新文件目录,从而避免因安装更新包造成程序 的退出或影响用户对该软件的正常使用。
具体的,用户可以直接以版本号为后缀创建新的更新文件目录,把更 新包安装在该更新文件目录,然后修改系统的壳程序对应的配置文件实现 启动时对更新文件目录中的启动程序进行直接调用,而不是将其替换旧的 文件。
更新包的安装过程可以根据软件开发商的需要进行设计,其具体的实 现方式不影响本申请的实施。
该程序组件可以具有相应的快捷方式以及软件列表中相应的启动地址。 该程序组件的启动入口地址可以为在操作系统中该软件的程序组件的快捷 方式所对应的启动地址,或者是该操作系统的软件列表中相应的启动程序 所对应的启动地址(如exe后缀文件)。
在一实施例中,可以将该启动入口地址修改至更新文件目录中的启动 文件,以使当用户启动该快捷方式时,即可启动安装在更新文件目录中已 更新的文件,而跳过该软件的旧版本文件。
上述方式可以使得在安装更新包时,无需用户提前关闭该应用程序, 降低对用户的影响,且该方式在当前软件版本较旧时,可以避免增量更新 带来的多次更新操作,降低更新过程的耗时,进而提高软件的更新效率。
在一实施例中,当软件更新完毕后,在该软件下一次启动后可以删除 原有的旧版本文件,以在避免影响用户使用的前提下合理释放硬件空间。
本申请实施例通过将软件中的文件分为自身文件及公共文件,当确定 软件需要更新时,获取该软件的更新包,该更新包可以包括自身文件的更 新包和/或公共文件的更新包,并通过更新包对软件进行更新。本申请通过 分别对软件的自身文件及公共文件进行区分、更新,以减小更新包的体积, 该更新方式不仅可以避免每次更新均需要下载完整的软件家族的更新包, 且无需要求连续版本号,可以大大缩短软件家族更新时长,便于用户更新。
以上这些模块可以是被配置成实施以上方法的一个或多个集成电路, 例如:一个或多个特定集成电路(Application Specific Integrated Circuit,简 称ASIC),或,一个或多个微处理器(digital singnal processor,简称DSP), 或,一个或者多个现场可编程门阵列(Field Programmable Gate Array,简称 FPGA)等。再如,当以上某个模块通过处理元件调度程序代码的形式实现 时,该处理元件可以是通用处理器,例如中央处理器(Central Processing Unit, 简称CPU)或其它可以调用程序代码的处理器。再如,这些模块可以集成 在一起,以片上装置(system-on-a-chip,简称SOC)的形式实现。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法, 可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性 的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以 有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个 装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之 间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的模块可以是或者也可以不是物理上分开的, 作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地 方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的 部分或者全部模块来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能模块可以集成在一个处理模块 中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在 一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用硬 件加软件功能模块的形式实现。
图7为本申请实施例所提供的一种电子设备的结构。
如图7所示,该电子设备5可以用于执行本申请实施例提供的方法。
其中,该电子设备5可以包括:处理器51及存储器52。这些组件通过 一条或多条总线进行通信,本领域技术人员可以理解,图中示出的电子设 备5的结构并不构成对本申请的限定,它既可以是总线形结构,也可以是 星型结构,还可以包括比图示更多或更少的部件,或者组合某些部件,或 者不同的部件布置。
其中,该存储器52可以用于存储处理器51的执行指令,存储器52可 以由任何类型的易失性或非易失性存储电子设备5或者它们的组合实现, 如静态随机存取存储器52(SRAM),电可擦除可编程只读存储器52 (EEPROM),可擦除可编程只读存储器52(EPROM),可编程只读存储器 52(PROM),只读存储器52(ROM),磁存储器52,快闪存储器52,磁盘 或光盘。当存储器52中的执行指令由处理器51执行时,使得电子设备5 能够执行上述方法实施例中的部分或全部步骤。
处理器51为电子设备5的控制中心,利用各种接口和线路连接整个电 子设备5的各个部分,通过运行或执行存储在存储器52内的软件程序和/ 或模块,以及调用存储在存储器52内的数据,以执行电子设备5的各种功 能和/或处理数据。所述处理器51可以由集成电路(Integrated Circuit,简称 IC)组成,例如可以由单颗封装的IC所组成,也可以由连接多颗相同功能 或不同功能的封装IC而组成。举例来说,处理器51可以仅包括中央处理器51(Central Processing Unit,简称CPU)。在本申请实施方式中,CPU可以 是单运算核心,也可以包括多运算核心。
所述存储器52存储有所述处理器51可执行的机器可读指令,所述处 理器51执行所述机器可读指令,以执行如下方法:
判断所述软件是否需要更新,所述软件包括自身文件及公共文件,所 述自身文件为所述软件的程序组件中用于自身调用的文件,所述公共文件 为所述软件中用于公共调用的文件;当确定所述软件需要更新时,获取所 述软件的更新包,所述更新包至少包括所述自身文件的更新包,和/或所述 公共文件的更新包;通过所述更新包对所述软件进行更新。
在一实施例中,该处理器51还用于执行:确定所述软件中待更新文件 的文件安装主目录,在所述文件安装主目录下创建与所述待更新文件的原 文件目录平行的更新文件目录;将所述更新包安装在所述更新文件目录中; 将更新后的文件的启动入口地址修改至所述更新文件目录。
在一实施例中,该处理器51还用于执行:通过壳程序调用所述软件的 更新模块;运行所述更新模块,以向服务器查询所述软件的最新版本号, 所述软件的最新版本号包括所述自身文件的最新版本号,和/或所述公共文 件的最新版本号;若所述软件的最新版本号较所述软件的当前版本号新, 则确定所述软件需要更新。
在一实施例中,该处理器51还用于执行:将所述软件中各程序组件的 自身文件分别与其运行所需的公共文件进行关联;将关联后的信息保存在 注册表中。
在一实施例中,该处理器51还用于执行:当所述软件的自身文件需要 更新,且所述公共文件不需要更新时,单独获取所述自身文件的更新包; 或者当所述软件的自身文件及所述公共文件均需要更新时,同时获取所述 自身文件及公共文件的更新包;或者当所述软件的自身文件不需要更新, 且所述公共文件需要更新时,单独获取所述公共文件的更新包。
在一实施例中,该处理器51还用于执行:将公共文件的更新包安装在 相应的更新文件目录中;当所述公共文件的更新包安装完毕后,再将所述 自身文件的更新包安装在相应的更新文件目录;修改所述更新后的文件的 快捷方式在注册表中对应的文件路径及更新后的公共文件的当前版本号; 将所述注册表中的文件路径与所述公共文件的当前版本号关联。
由上可知,该电子设备通过将软件中的文件分为自身文件及公共文件, 当确定软件需要更新时,获取该软件的更新包,该更新包可以包括自身文 件的更新包和/或公共文件的更新包,并通过更新包对软件进行更新。本申 请通过分别对软件的自身文件及公共文件进行区分、更新,以减小更新包 的体积,该更新方式不仅可以避免每次更新均需要下载完整的软件家族的 更新包,且无需要求连续版本号,可以大大缩短软件家族更新时长,便于 用户更新。
本申请实施例还提供一种计算机存储介质,其中,该计算机存储介质 可存储有程序,该程序执行时可包括本申请提供的各实施例中的部分或全 部步骤。所述的存储介质可为磁碟、光盘、只读存储记忆体(英文:read-only memory,简称:ROM)或随机存储记忆体(英文:random access memory, 简称:RAM)等。
该计算机可读存储介质,其可通过计算机读取存储介质上存储的计算 机程序;
计算机程序被处理器运行时执行如上所述的任意一个实施例的软件更 新方法,例如:
判断所述软件是否需要更新,所述软件包括自身文件及公共文件,所 述自身文件为所述软件的程序组件中用于自身调用的文件,所述公共文件 为所述软件中用于公共调用的文件;当确定所述软件需要更新时,获取所 述软件的更新包,所述更新包至少包括所述自身文件的更新包,和/或所述 公共文件的更新包;通过所述更新包对所述软件进行更新。
上仅为本申请的具体实施方式,但本申请的保护范围并不局限于此, 任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到 变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范 围应以权利要求的保护范围为准。
Claims (10)
1.一种软件更新方法,其特征在于,应用于软件的更新,所述软件包括多个程序组件,所述方法包括:
判断所述软件是否需要更新,所述软件包括自身文件及公共文件,所述自身文件为所述软件的程序组件中用于自身调用的文件,所述公共文件为所述软件中用于公共调用的文件;
当确定所述软件需要更新时,获取所述软件的更新包,所述更新包至少包括所述自身文件的更新包,和/或所述公共文件的更新包;
通过所述更新包对所述软件进行更新。
2.如权利要求1所述的软件更新方法,其特征在于,通过所述更新包对所述软件进行更新,包括:
确定所述软件中待更新文件的文件安装主目录,在所述文件安装主目录下创建与所述待更新文件的原文件目录平行的更新文件目录;
将所述更新包安装在所述更新文件目录中;
将更新后的文件的启动入口地址修改至所述更新文件目录。
3.如权利要求1所述的软件更新方法,其特征在于,所述判断所述软件是否需要更新,包括:
通过壳程序调用所述软件的更新模块;
运行所述更新模块,以向服务器查询所述软件的最新版本号,所述软件的最新版本号包括所述自身文件的最新版本号,和/或所述公共文件的最新版本号;
若所述软件的最新版本号较所述软件的当前版本号新,则确定所述软件需要更新。
4.如权利要求3所述的软件更新方法,其特征在于,所述自身文件和/或所述公共文件的当前版本号通过注册表信息进行确定。
5.如权利要求1所述的软件更新方法,其特征在于:
在所述判断所述软件是否需要更新之前,还包括:
将所述软件中各程序组件的自身文件分别与其运行所需的公共文件进行关联;
将关联后的信息保存在注册表中。
6.如权利要求1所述的软件更新方法,其特征在于,所述当确定所述软件需要更新时,获取所述软件的更新包,包括:
当所述软件的自身文件需要更新,且所述公共文件不需要更新时,单独获取所述自身文件的更新包;或者
当所述软件的自身文件及所述公共文件均需要更新时,同时获取所述自身文件及公共文件的更新包;或者
当所述软件的自身文件不需要更新,且所述公共文件需要更新时,单独获取所述公共文件的更新包。
7.如权利要求2所述的软件更新方法,其特征在于,所述将所述更新包安装在所述更新文件目录中,包括:
将公共文件的更新包安装在相应的更新文件目录中;
当所述公共文件的更新包安装完毕后,再将所述自身文件的更新包安装在相应的更新文件目录;
所述将更新后的文件的启动入口地址修改至所述更新文件目录,包括:
修改所述更新后的文件的快捷方式在注册表中对应的文件路径及更新后的公共文件的当前版本号;
将所述注册表中的文件路径与所述公共文件的当前版本号关联。
8.如权利要求1-7任意一项所述的软件更新方法,其特征在于,所述公共文件为多个程序组件共用的系统库、多媒体数据库、开发平台库或公共信息库的至少一种。
9.一种软件更新装置,其特征在于,应用于软件的更新,所述软件包括多个程序组件,包括:
更新判断模块,用于判断所述软件是否需要更新,所述软件包括自身文件及公共文件,所述公共文件为所述软件中用于公共调用的文件,所述自身文件为所述软件的程序组件中用于自身调用的文件;
更新包获取模块,用于当确定所述软件需要更新时,获取所述软件的更新包,所述更新包至少包括所述自身文件的更新包,和/或所述公共文件的更新包;
更新模块,用于通过所述更新包对所述软件进行更新。
10.一种电子设备,其特征在于,所述电子设备包括:
处理器及与所述处理器电连接的存储器;
所述存储器存储有所述处理器可执行的机器可读指令,所述处理器执行所述机器可读指令,以执行如权利要求1-8任一项所述的软件更新方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010442671.9A CN111736863A (zh) | 2020-05-22 | 2020-05-22 | 一种软件升级方法、装置及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010442671.9A CN111736863A (zh) | 2020-05-22 | 2020-05-22 | 一种软件升级方法、装置及电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111736863A true CN111736863A (zh) | 2020-10-02 |
Family
ID=72648159
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010442671.9A Pending CN111736863A (zh) | 2020-05-22 | 2020-05-22 | 一种软件升级方法、装置及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111736863A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112988213A (zh) * | 2021-04-13 | 2021-06-18 | 荣耀终端有限公司 | 一种程序数据更新方法、电子设备及计算机存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102955702A (zh) * | 2011-08-23 | 2013-03-06 | 腾讯科技(深圳)有限公司 | 一种软件安装及升级方法和装置 |
US20140304697A1 (en) * | 2011-12-01 | 2014-10-09 | Tencent Technology (Shenzhen) Company Limited | Method and system for upgrading software |
CN104156244A (zh) * | 2014-08-06 | 2014-11-19 | 北京奇虎科技有限公司 | 一种软件升级的方法和装置 |
CN109819286A (zh) * | 2018-12-28 | 2019-05-28 | 深圳市金锐显数码科技有限公司 | 多机型软件同步升级方法、装置及终端设备 |
-
2020
- 2020-05-22 CN CN202010442671.9A patent/CN111736863A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102955702A (zh) * | 2011-08-23 | 2013-03-06 | 腾讯科技(深圳)有限公司 | 一种软件安装及升级方法和装置 |
US20140304697A1 (en) * | 2011-12-01 | 2014-10-09 | Tencent Technology (Shenzhen) Company Limited | Method and system for upgrading software |
CN104156244A (zh) * | 2014-08-06 | 2014-11-19 | 北京奇虎科技有限公司 | 一种软件升级的方法和装置 |
CN109819286A (zh) * | 2018-12-28 | 2019-05-28 | 深圳市金锐显数码科技有限公司 | 多机型软件同步升级方法、装置及终端设备 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112988213A (zh) * | 2021-04-13 | 2021-06-18 | 荣耀终端有限公司 | 一种程序数据更新方法、电子设备及计算机存储介质 |
CN112988213B (zh) * | 2021-04-13 | 2023-11-14 | 荣耀终端有限公司 | 一种程序数据更新方法、电子设备及计算机存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107729041B (zh) | 应用程序热更新方法、装置、终端和存储介质 | |
CN108540509B (zh) | 一种终端浏览器的处理方法、装置及服务器、智能终端 | |
CN107797818A (zh) | 应用程序升级方法及装置 | |
CN111427596A (zh) | 一种软件升级的方法、装置及终端设备 | |
CN103677937A (zh) | 升级软件和运行软件的方法及装置 | |
CN111221553A (zh) | 一种固件升级的方法及装置 | |
CN114385251A (zh) | 基于存储器的操作系统引导方法、系统、终端及存储介质 | |
CN110851151A (zh) | 预装应用的方法、装置、终端、服务器和存储介质 | |
CN106293790B (zh) | 基于Firefox操作系统的应用程序升级方法和装置 | |
CN111736863A (zh) | 一种软件升级方法、装置及电子设备 | |
CN113094077B (zh) | 一种系统差分升级方法、装置、智能终端及存储介质 | |
CN108536444B (zh) | 插件编译方法、装置、计算机设备和存储介质 | |
CN113791809B (zh) | 应用异常处理方法、装置以及计算机可读存储介质 | |
CN107783837B (zh) | 一种进行存储扩展的方法、装置及电子设备 | |
CN112463262A (zh) | 一种安卓系统gps模块自适应方法及终端 | |
CN112379943A (zh) | Electron应用程序的插件应用方法及装置、存储介质 | |
KR101420026B1 (ko) | 부팅 프로세스 중에 파일들을 로딩하기 위한 방법, 장치 및 컴퓨터 판독가능 저장 매체 | |
CN111949278B (zh) | 一种自动安装mcs系统的方法、系统、终端及存储介质 | |
CN117235023B (zh) | 一种远程仓库缓存管理方法、装置、设备及存储介质 | |
CN110247966B (zh) | 内核创建方法、智能电视及计算机可读存储介质 | |
CN116643778B (zh) | 一种应用程序优化方法及电子设备 | |
CN111813431B (zh) | 一种软件升级方法、智能电视及存储介质 | |
US11847439B2 (en) | Center, management method, and non-transitory storage medium | |
CN112416390B (zh) | 更新npm包的方法、装置、电子设备及可读存储介质 | |
CN116661905B (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 |