CN109189442B - 更新方法、***和电子设备 - Google Patents
更新方法、***和电子设备 Download PDFInfo
- Publication number
- CN109189442B CN109189442B CN201811156178.XA CN201811156178A CN109189442B CN 109189442 B CN109189442 B CN 109189442B CN 201811156178 A CN201811156178 A CN 201811156178A CN 109189442 B CN109189442 B CN 109189442B
- Authority
- CN
- China
- Prior art keywords
- data
- update
- updating
- version
- target software
- 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.)
- Active
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
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
本公开提供了一种更新方法,包括在目标软件处于第一版本时,获取至少两个第一更新数据,其中,在所述第一版本的目标软件有序安装所述至少两个第一更新数据后,所述目标软件能够被更新至第二版本,处理所述至少两个第一更新数据,生成至少一个第二更新数据,其中,所述第二更新数据的数量少于第一更新数据的数量,以及基于所述至少一个第二更新数据,将所述目标软件更新至所述第二版本。本公开还提供了一种更新***以及一种电子设备。
Description
技术领域
本公开涉及一种更新方法、***和电子设备。
背景技术
随着信息化和智能化的发展,智能终端设备为人们的生活提供了巨大的便利。目前的智能终端设备通常安装有大量目标软件,包括***目标软件和具有各种各样功能的应用目标软件,为用户提供着便捷的服务。随着时间的迁移和技术的发展,这些目标软件也面临更新的问题。在一些情况下,由于用户一段时间未使用该电子设备或者该电子设备中的某一应用目标软件,将可能出现电子设备的***目标软件或者某一应用目标软件连续的多次更新,导致用户体验不佳。尤其在是一些更新需要重新启动电子设备的情况下,严重影响了用户体验。
发明内容
本公开的一个方面提供了一种更新方法,包括在目标软件处于第一版本时,获取至少两个第一更新数据,其中,在所述第一版本的目标软件有序安装所述至少两个第一更新数据后,所述目标软件能够被更新至第二版本,处理所述至少两个第一更新数据,生成至少一个第二更新数据,其中,所述第二更新数据的数量少于第一更新数据的数量,以及基于所述至少一个第二更新数据,将所述目标软件更新至所述第二版本。
可选地,所述第一更新数据是更新目标软件后,需要目标软件重新启动的数据。
可选地,所述目标软件的数据分为多个能够独立更新的数据块,所述处理所述至少两个第一更新数据,生成至少一个第二更新数据包括,处理多个所述第一更新数据中对应于一个数据块的更新部分,生成第二更新数据中对应于所述数据块的更新部分,以及合并对应于各个数据块的更新部分,获得至少一个第二更新数据。
可选地,所述处理多个所述第一更新数据中对应于一个数据块的更新部分,生成第二更新数据中对应于所述数据块的更新部分包括,在数据块为第一类数据块的情况下,获取最新的第一更新数据中对应于所述数据块的更新部分,作为第二更新数据中对应于所述数据块的更新部分,其中,所述第一更新数据对应于所述第一类数据块的更新部分在更新时用于覆盖所述第一类数据块中的全部数据。
可选地,所述处理多个所述第一更新数据中对应于一个数据块的更新部分,生成第二更新数据中对应于所述数据块的更新部分包括,在数据块为不同于第一类数据块的第二类数据块的情况下,基于各个第一更新数据中对应于所述数据块的更新部分,确定第二更新数据中对应于所述数据块的更新部分。
可选地,所述基于各个第一更新数据中对应于所述数据块的更新部分,确定第二更新数据中对应于所述数据块的更新部分包括,在各个第一更新数据中对应于所述数据块的更新部分中,若存在相互抵消的更新部分,则基于除相互抵消的更新部分以外的其他更新部分,确定第二更新数据中对应于所述数据块的更新部分。
可选地,所述在目标软件处于第一版本时,获取多个第一更新数据包括循环执行以下操作,直至无法获取更多的第一更新数据:基于当前版本标识,获取一个第一更新数据,确定在安装所述第一更新数据后的版本信息,以及基于在安装所述第一更新数据后的版本信息修改版本标识,作为用于获取第一更新数据的当前版本标识。
可选地,所述基于当前版本标识,获取一个第一更新数据包括发送获取请求以及接收一个第一更新数据,其中,所述获取请求包括可用于表示电子设备的存储空间的信息,所述无法获取更多的第一更新数据包括接收第一响应信息,所述第一响应信息表明所述电子设备的存储空间不适合接收更多的第一更新数据。
可选地,所述无法获取更多的第一更新数据包括接收第二响应信息,所述第二响应信息表明已经获得了最新的第一更新数据。
本公开的另一个方面提供了一种更新***,包括获取模块、处理模块以及更新模块。获取模块,用于在目标软件处于第一版本时,获取至少两个第一更新数据,其中,在所述第一版本的目标软件有序安装所述至少两个第一更新数据后,所述目标软件能够被更新至第二版本。处理模块,用于处理所述至少两个第一更新数据,生成至少一个第二更新数据,其中,所述第二更新数据的数量少于第一更新数据的数量。更新模块,用于基于所述至少一个第二更新数据,将所述目标软件更新至所述第二版本。
可选地,所述第一更新数据是更新目标软件后,需要目标软件重新启动的数据。
可选地,所述目标软件的数据分为多个能够独立更新的数据块,所述处理模块包括处理子模块以及合并子模块。处理子模块,用于处理多个所述第一更新数据中对应于一个数据块的更新部分,生成第二更新数据中对应于所述数据块的更新部分。合并子模块,用于合并对应于各个数据块的更新部分,获得至少一个第二更新数据。
可选地,所述处理子模块包括第一处理单元,用于在数据块为第一类数据块的情况下,获取最新的第一更新数据中对应于所述数据块的更新部分,作为第二更新数据中对应于所述数据块的更新部分,其中,所述第一更新数据对应于所述第一类数据块的更新部分在更新时用于覆盖所述第一类数据块中的全部数据。
可选地,所述处理子模块包括第二处理单元,用于在数据块为不同于第一类数据块的第二类数据块的情况下,基于各个第一更新数据中对应于所述数据块的更新部分,确定第二更新数据中对应于所述数据块的更新部分。
可选地,所述第二处理单元用于在各个第一更新数据中对应于所述数据块的更新部分中,若存在相互抵消的更新部分,则基于除相互抵消的更新部分以外的其他更新部分,确定第二更新数据中对应于所述数据块的更新部分。
可选地,所述获取模块用于循环执行以下操作,直至无法获取更多的第一更新数据:基于当前版本标识,获取一个第一更新数据,确定在安装所述第一更新数据后的版本信息,以及基于在安装所述第一更新数据后的版本信息修改版本标识,作为用于获取第一更新数据的当前版本标识。
可选地,所述基于当前版本标识,获取一个第一更新数据包括发送获取请求以及接收一个第一更新数据,其中,所述获取请求包括可用于表示电子设备的存储空间的信息,所述无法获取更多的第一更新数据包括接收第一响应信息,所述第一响应信息表明所述电子设备的存储空间不适合接收更多的第一更新数据。
可选地,所述无法获取更多的第一更新数据包括接收第二响应信息,所述第二响应信息表明已经获得了最新的第一更新数据。
本公开的另一个方面提供了一种电子设备,包括处理器以及存储器。所述存储器上存储有计算机程序,所述计算机程序被处理器执行时使得处理器执行如上所述的方法。
本公开的另一方面提供了一种计算机可读存储介质,存储有计算机可执行指令,所述指令在被执行时用于实现如上所述的方法。
本公开的另一方面提供了一种计算机程序,所述计算机程序包括计算机可执行指令,所述指令在被执行时用于实现如上所述的方法。
附图说明
为了更完整地理解本公开及其优势,现在将参考结合附图的以下描述,其中:
图1示意性示出了根据本公开实施例的更新方法的应用场景;
图2示意性示出了根据本公开实施例的更新方法的流程图;
图3A示意性示出了根据本公开实施例的处理所述至少两个第一更新数据,生成至少一个第二更新数据的流程图;
图3B示意性示出了根据本公开实施例的获取多个第一更新数据的流程图;
图4示意性示出了根据本公开实施例的更新***的框图;以及
图5示意性示出了根据本公开实施例的电子设备的框图。
具体实施方式
以下,将参照附图来描述本公开的实施例。但是应该理解,这些描述只是示例性的,而并非要限制本公开的范围。在下面的详细描述中,为便于解释,阐述了许多具体的细节以提供对本公开实施例的全面理解。然而,明显地,一个或多个实施例在没有这些具体细节的情况下也可以被实施。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本公开的概念。
在此使用的术语仅仅是为了描述具体实施例,而并非意在限制本公开。在此使用的术语“包括”、“包含”等表明了所述特征、步骤、操作和/或部件的存在,但是并不排除存在或添加一个或多个其他特征、步骤、操作或部件。
在此使用的所有术语(包括技术和科学术语)具有本领域技术人员通常所理解的含义,除非另外定义。应注意,这里使用的术语应解释为具有与本说明书的上下文相一致的含义,而不应以理想化或过于刻板的方式来解释。
在使用类似于“A、B和C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B和C中至少一个的***”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的***等)。在使用类似于“A、B或C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B或C中至少一个的***”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的***等)。
附图中示出了一些方框图和/或流程图。应理解,方框图和/或流程图中的一些方框或其组合可以由计算机程序指令来实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器,从而这些指令在由该处理器执行时可以创建用于实现这些方框图和/或流程图中所说明的功能/操作的装置。本公开的技术可以硬件和/或软件(包括固件、微代码等)的形式来实现。另外,本公开的技术可以采取存储有指令的计算机可读存储介质上的计算机程序产品的形式,该计算机程序产品可供指令执行***使用或者结合指令执行***使用。
本公开的实施例提供了一种更新方法,包括在目标软件处于第一版本时,获取至少两个第一更新数据,其中,在所述第一版本的目标软件有序安装所述至少两个第一更新数据后,所述目标软件能够被更新至第二版本,处理所述至少两个第一更新数据,生成至少一个第二更新数据,其中,所述第二更新数据的数量少于第一更新数据的数量,以及基于所述至少一个第二更新数据,将所述目标软件更新至所述第二版本。
图1示意性示出了根据本公开实施例的更新方法的应用场景。需要注意的是,图1所示仅为可以应用本公开实施例的场景的示例,以帮助本领域技术人员理解本公开的技术内容,但并不意味着本公开实施例不可以用于其他设备、***、环境或场景。
如图1所示,目标软件处于第一版本,而当前最新的稳定版本是第二版本,此时需要将目标软件从第一版本更新到第二版本。在实际应用中,若用户较长时间未更新过该软件,或用户第一次安装该软件,或软件更新较为频繁,均有可能需要多次更新才能更新到第二版本。例如,在第一版本的基础上,通过第一更新数据1,更新为第一个过渡版本,然后通过第一更新数据2,更新为第二个过渡版本,以此类推,最终通过第一更新数据n-1更新为第二版本。然而,每一次的更新是独立的,可能展示的进度条也仅仅示出了本次更新的进度,用户并不知道后面还有多少次更新,尤其是在一些情况下,每次更新后需要设备或软件重新启动后,过渡版本才能生效,才能执行下一次更新,严重影响了用户体验。
本公开实施例的方法可以将多个第一更新数据合并为第二更新数据,例如,将全部第一更新数据合并为一个第二更新数据,基于第二更新数据,将第一版本更新为第二版本,减少了更新的次数,提高用户体验。
图2示意性示出了根据本公开实施例的更新方法的流程图。
如图2所示,该方法包括操作S210~S230。
在操作S210,在目标软件处于第一版本时,获取至少两个第一更新数据,其中,在所述第一版本的目标软件有序安装所述至少两个第一更新数据后,所述目标软件能够被更新至第二版本。
在操作S220,处理所述至少两个第一更新数据,生成至少一个第二更新数据,其中,所述第二更新数据的数量少于第一更新数据的数量。
在操作S230,基于所述至少一个第二更新数据,将所述目标软件更新至所述第二版本。
该方法能够通过整合多个第一更新数据获得第二更新数据,通过第二更新数据对目标软件进行更新,减少了更新次数,提高用户体验。
根据本公开实施例,所述第一更新数据是更新目标软件后,需要目标软件重新启动的数据,即,安装每个所述第一更新数据后需要目标软件重新启动。此外,安装每个第二更新数据一般也需要目标软件重新启动,但是由于第二更新数据的数量小于第一更新数据的数量,所以本公开实施例的方法至少降低了重新启动的次数。可选的,可以将所有第一更新数据处理为一个第二更新数据,而只需要一次重新启动。
在一些实施例中,目标软件可能是***软件,目标软件的重新启动可能导致***的重新启动,在另一些实施例中,目标软件的启动虽不需要***重新启动,但过渡版本的生效需要***重新启动,在这些情况下,本公开实施例的方法可以减少***重新启动的次数,提高用户体验。
根据本公开实施例,在目标软件的数据分为多个能够独立更新的数据块的情况下,处理所述至少两个第一更新数据,生成至少一个第二更新数据可以通过如图3A所示的方法实现。
图3A示意性示出了根据本公开实施例的处理所述至少两个第一更新数据,生成至少一个第二更新数据的流程图。
在操作S310,处理多个所述第一更新数据中对应于一个数据块的更新部分,生成第二更新数据中对应于所述数据块的更新部分。
在操作S320,合并对应于各个数据块的更新部分,获得至少一个第二更新数据。
例如,目标软件包括数据块M和数据块N,各个第一更新数据包括用于更新数据块M的更新部分x和用于更新数据块N的更新部分y。对多个更新部分x进行处理,得到更新部分X,其中,依次使用各个更新部分x对数据块M更新的更新结果与使用X对数据块M更新的更新结果相同。同理,处理多个更新部分y得到更新部分Y。将更新部分X与更新部分Y合并,即可得到第二更新数据。应当了解的是,目标软件的数据块数量并不限于两个,可以有任意数量的数据块。该方法针对目标软件中划分的数据块,针对性的整合,提高***效率。
根据本公开实施例,所述处理多个所述第一更新数据中对应于一个数据块的更新部分,生成第二更新数据中对应于所述数据块的更新部分包括,在数据块为第一类数据块的情况下,获取最新的第一更新数据中对应于所述数据块的更新部分,作为第二更新数据中对应于所述数据块的更新部分,其中,所述第一更新数据对应于所述第一类数据块的更新部分在更新时用于覆盖所述第一类数据块中的全部数据。
根据本公开实施例,第一类数据块在使用第一更新数据更新时,直接使用第一更新数据中的数据覆盖该第一类数据块中的数据,而与该第一类数据块中原有的数据无关。因此,当存在多个第一更新数据时,仅需要使用最后一个第一更新数据对该第一类数据块进行更新。通过本公开实施例的方法,在处理第一类数据块时,由于获得了多个第一更新数据,可以减少无效更新的次数,提高更新效率。
根据本公开实施例,所述处理多个所述第一更新数据中对应于一个数据块的更新部分,生成第二更新数据中对应于所述数据块的更新部分包括,在数据块为不同于第一类数据块的第二类数据块的情况下,基于各个第一更新数据中对应于所述数据块的更新部分,确定第二更新数据中对应于所述数据块的更新部分。
根据本公开实施例,第二类数据块在使用第一更新数据更新时,直接使用第一更新数据中的数据处理该第二类数据块中的数据,因而更新结果与该第二类数据块中原有的数据相关。因此,当存在多个第一更新数据时,需要依次使用各个第一更新数据对该第二类数据块进行更新。
根据本公开实施例,所述基于各个第一更新数据中对应于所述数据块的更新部分,确定第二更新数据中对应于所述数据块的更新部分包括,在各个第一更新数据中对应于所述数据块的更新部分中,若存在相互抵消的更新部分,则基于除相互抵消的更新部分以外的其他更新部分,确定第二更新数据中对应于所述数据块的更新部分。例如,若存在四个第一更新数据A、B、C、D,其对应于某一第二类数据块的更新部分分别为A1、B1、C1、D1,其中,B1和C1是相反的更新数据,在依次使用B1和C1更新后,该第二类数据块并不会发生变化,因此,可以仅使用A1和D1进行更新。通过本公开实施例的方法,在处理第二类数据块时,由于获得了多个第一更新数据,可以减少无效更新的次数,提高更新效率。
本公开实施例的方法区别第一类数据块和第二类数据块分别处理,可以有效地提高更新效率。
根据本公开实施例,所述在目标软件处于第一版本时,获取多个第一更新数据包括循环执行以下操作,直至无法获取更多的第一更新数据:基于当前版本标识,获取一个第一更新数据,确定在安装所述第一更新数据后的版本信息,以及基于在安装所述第一更新数据后的版本信息修改版本标识,作为用于获取第一更新数据的当前版本标识。下面结合图3B进行说明。
图3B示意性示出了根据本公开实施例的获取多个第一更新数据的流程图。
如图3B所示,该方法开始于操作S330。
在操作S330,基于当前版本标识,获取一个第一更新数据。
在操作S340,确定在安装所述第一更新数据后的版本信息。
在操作S350,基于在安装所述第一更新数据后的版本信息修改版本标识,作为用于获取第一更新数据的当前版本标识。
在操作S360,判断是否无法获得更多的第一更新数据,若无法获得更多的第一更新数据,则流程结束,否则返回操作S330,继续获得其他的第一更新数据。
在一些实施例中,目标软件在更新到下一版本时才能够获得下一个第一更新数据,在另一些实施例中,电子设备在启动时请求才请求获得第一更新数据,因此,每次启动只能获取一个第一更新数据,更新并重启后才能获得下一个第一更新数据。该方法将安装所述第一更新数据后的版本信息作为用于获取下一个第一更新数据的当前版本信息,使得能够一次性获取多个第一更新数据。
根据本公开实施例,所述基于当前版本标识,获取一个第一更新数据包括发送获取请求以及接收一个第一更新数据,其中,所述获取请求包括可用于表示电子设备的存储空间的信息,所述无法获取更多的第一更新数据包括接收第一响应信息,所述第一响应信息表明所述电子设备的存储空间不适合接收更多的第一更新数据。例如,在获得第i个第一更新数据后,可用存储空间剩余10M,然而若获得下一个第一更新数据,需要至少50M的可用存储空间,此时判定无法获得更多的第一更新数据。该方法能够预先判断剩余存储空间,避免了接收第一更新数据的过程中出现存储空间不足的情况。
根据本公开实施例,所述无法获取更多的第一更新数据包括接收第二响应信息,所述第二响应信息表明已经获得了最新的第一更新数据。第二响应信息表明已经获取了所有的需要的第一更新数据,因此无法获得更多的第一更新数据。
基于同一构思,本公开还提供了一种更新***,下面参照图4对本公开实施例的更新***进行说明。
图4示意性示出了根据本公开实施例的更新***400的框图。
如图4所示,更新***400包括获取模块410、处理模块420以及更新模块430。该更新***400可以执行上文描述的各种方法。
获取模块410,例如执行参考上文图2描述的操作S210,用于在目标软件处于第一版本时,获取至少两个第一更新数据,其中,在所述第一版本的目标软件有序安装所述至少两个第一更新数据后,所述目标软件能够被更新至第二版本。
处理模块420,例如执行参考上文图2描述的操作S220,用于处理所述至少两个第一更新数据,生成至少一个第二更新数据,其中,所述第二更新数据的数量少于第一更新数据的数量。
更新模块430,例如执行参考上文图2描述的操作S230,用于基于所述至少一个第二更新数据,将所述目标软件更新至所述第二版本。
根据本公开实施例,所述第一更新数据是更新目标软件后,需要目标软件重新启动的数据。
根据本公开实施例,所述目标软件的数据分为多个能够独立更新的数据块,所述处理模块包括处理子模块以及合并子模块。处理子模块,用于处理多个所述第一更新数据中对应于一个数据块的更新部分,生成第二更新数据中对应于所述数据块的更新部分。合并子模块,用于合并对应于各个数据块的更新部分,获得至少一个第二更新数据。
根据本公开实施例,所述处理子模块包括第一处理单元,用于在数据块为第一类数据块的情况下,获取最新的第一更新数据中对应于所述数据块的更新部分,作为第二更新数据中对应于所述数据块的更新部分,其中,所述第一更新数据对应于所述第一类数据块的更新部分在更新时用于覆盖所述第一类数据块中的全部数据。
根据本公开实施例,所述处理子模块包括第二处理单元,用于在数据块为不同于第一类数据块的第二类数据块的情况下,基于各个第一更新数据中对应于所述数据块的更新部分,确定第二更新数据中对应于所述数据块的更新部分。
根据本公开实施例,所述第二处理单元用于在各个第一更新数据中对应于所述数据块的更新部分中,若存在相互抵消的更新部分,则基于除相互抵消的更新部分以外的其他更新部分,确定第二更新数据中对应于所述数据块的更新部分。
根据本公开实施例,所述获取模块用于循环执行以下操作,直至无法获取更多的第一更新数据:基于当前版本标识,获取一个第一更新数据,确定在安装所述第一更新数据后的版本信息,以及基于在安装所述第一更新数据后的版本信息修改版本标识,作为用于获取第一更新数据的当前版本标识。
根据本公开实施例,所述基于当前版本标识,获取一个第一更新数据包括发送获取请求以及接收一个第一更新数据,其中,所述获取请求包括可用于表示电子设备的存储空间的信息,所述无法获取更多的第一更新数据包括接收第一响应信息,所述第一响应信息表明所述电子设备的存储空间不适合接收更多的第一更新数据。
根据本公开实施例,所述无法获取更多的第一更新数据包括接收第二响应信息,所述第二响应信息表明已经获得了最新的第一更新数据。
根据本公开的实施例的模块、子模块、单元、子单元中的任意多个、或其中任意多个的至少部分功能可以在一个模块中实现。根据本公开实施例的模块、子模块、单元、子单元中的任意一个或多个可以被拆分成多个模块来实现。根据本公开实施例的模块、子模块、单元、子单元中的任意一个或多个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上***、基板上的***、封装上的***、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式的硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,根据本公开实施例的模块、子模块、单元、子单元中的一个或多个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
例如,获取模块410、处理模块420、更新模块430、处理子模块、合并子模块、第一处理单元以及第二处理单元中的任意多个可以合并在一个模块中实现,或者其中的任意一个模块可以被拆分成多个模块。或者,这些模块中的一个或多个模块的至少部分功能可以与其他模块的至少部分功能相结合,并在一个模块中实现。根据本公开的实施例,获取模块410、处理模块420、更新模块430、处理子模块、合并子模块、第一处理单元以及第二处理单元中的至少一个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上***、基板上的***、封装上的***、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,获取模块410、处理模块420、更新模块430、处理子模块、合并子模块、第一处理单元以及第二处理单元中的至少一个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
图5示意性示出了根据本公开实施例的电子设备500的框图。图5示出的计算机***仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图5所示,电子设备500包括处理器510和计算机可读存储介质520。该电子设备500可以执行根据本公开实施例的方法。
具体地,处理器510例如可以包括通用微处理器、指令集处理器和/或相关芯片组和/或专用微处理器(例如,专用集成电路(ASIC)),等等。处理器510还可以包括用于缓存用途的板载存储器。处理器510可以是用于执行根据本公开实施例的方法流程的不同动作的单一处理单元或者是多个处理单元。
计算机可读存储介质520,例如可以是非易失性的计算机可读存储介质,具体示例包括但不限于:磁存储装置,如磁带或硬盘(HDD);光存储装置,如光盘(CD-ROM);存储器,如随机存取存储器(RAM)或闪存;等等。
计算机可读存储介质520可以包括计算机程序521,该计算机程序521可以包括代码/计算机可执行指令,其在由处理器510执行时使得处理器510执行根据本公开实施例的方法或其任何变形。
计算机程序521可被配置为具有例如包括计算机程序模块的计算机程序代码。例如,在示例实施例中,计算机程序521中的代码可以包括一个或多个程序模块,例如包括521A、模块521B、……。应当注意,模块的划分方式和个数并不是固定的,本领域技术人员可以根据实际情况使用合适的程序模块或程序模块组合,当这些程序模块组合被处理器510执行时,使得处理器510可以执行根据本公开实施例的方法或其任何变形。
根据本公开的实施例,获取模块410、处理模块420、更新模块430、处理子模块、合并子模块、第一处理单元以及第二处理单元中的至少一个可以实现为参考图5描述的计算机程序模块,其在被处理器510执行时,可以实现上面描述的相应操作。
本公开还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中描述的设备/装置/***中所包含的;也可以是单独存在,而未装配入该设备/装置/***中。上述计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被执行时,实现根据本公开实施例的方法。
根据本公开的实施例,计算机可读存储介质可以是非易失性的计算机可读存储介质,例如可以包括但不限于:便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行***、装置或者器件使用或者与其结合使用。
附图中的流程图和框图,图示了按照本公开各种实施例的***、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的***来实现,或者可以用专用硬件与计算机指令的组合来实现。
本领域技术人员可以理解,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合,即使这样的组合或结合没有明确记载于本公开中。特别地,在不脱离本公开精神和教导的情况下,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合。所有这些组合和/或结合均落入本公开的范围。
尽管已经参照本公开的特定示例性实施例示出并描述了本公开,但是本领域技术人员应该理解,在不背离所附权利要求及其等同物限定的本公开的精神和范围的情况下,可以对本公开进行形式和细节上的多种改变。因此,本公开的范围不应该限于上述实施例,而是应该不仅由所附权利要求来进行确定,还由所附权利要求的等同物来进行限定。
Claims (9)
1.一种更新方法,包括:
在目标软件处于第一版本时,获取至少两个第一更新数据,其中,在所述第一版本的目标软件有序安装所述至少两个第一更新数据后,所述目标软件能够被更新至第二版本,所述目标软件的数据包括多个能够独立更新的数据块;
处理所述至少两个第一更新数据,生成至少一个第二更新数据,其中,所述第二更新数据的数量少于第一更新数据的数量;以及
基于所述至少一个第二更新数据,将所述目标软件更新至所述第二版本;
其中,所述处理所述至少两个第一更新数据,生成至少一个第二更新数据包括:处理多个所述第一更新数据中对应于一个数据块的更新部分,生成第二更新数据中对应于所述数据块的更新部分;合并对应于各个数据块的更新部分,获得至少一个第二更新数据。
2.根据权利要求1所述的方法,其中,所述第一更新数据是更新目标软件后,需要目标软件重新启动的数据。
3.根据权利要求2所述的方法,其中,所述处理多个所述第一更新数据中对应于一个数据块的更新部分,生成第二更新数据中对应于所述数据块的更新部分包括以下至少一种:
在数据块为第一类数据块的情况下,获取最新的第一更新数据中对应于所述数据块的更新部分,作为第二更新数据中对应于所述数据块的更新部分,其中,所述第一更新数据对应于所述第一类数据块的更新部分在更新时用于覆盖所述第一类数据块中的全部数据;或者
在数据块为不同于第一类数据块的第二类数据块的情况下,基于各个第一更新数据中对应于所述数据块的更新部分,确定第二更新数据中对应于所述数据块的更新部分。
4.根据权利要求3所述的方法,其中,所述基于各个第一更新数据中对应于所述数据块的更新部分,确定第二更新数据中对应于所述数据块的更新部分包括:
在各个第一更新数据中对应于所述数据块的更新部分中,若存在相互抵消的更新部分,则基于除相互抵消的更新部分以外的其他更新部分,确定第二更新数据中对应于所述数据块的更新部分。
5.根据权利要求1所述的方法,其中,所述在目标软件处于第一版本时,获取多个第一更新数据包括循环执行以下操作,直至无法获取更多的第一更新数据:
基于当前版本标识,获取一个第一更新数据;
确定在安装所述第一更新数据后的版本信息;以及
基于在安装所述第一更新数据后的版本信息修改版本标识,作为用于获取第一更新数据的当前版本标识。
6.根据权利要求5所述的方法,其中:
所述基于当前版本标识,获取一个第一更新数据包括发送获取请求以及接收一个第一更新数据,其中,所述获取请求包括可用于表示电子设备的存储空间的信息;
所述无法获取更多的第一更新数据包括接收第一响应信息,所述第一响应信息表明所述电子设备的存储空间不适合接收更多的第一更新数据。
7.根据权利要求5所述的方法,其中,所述无法获取更多的第一更新数据包括:
接收第二响应信息,所述第二响应信息表明已经获得了最新的第一更新数据。
8.一种更新***,包括:
获取模块,用于在目标软件处于第一版本时,获取至少两个第一更新数据,其中,在所述第一版本的目标软件有序安装所述至少两个第一更新数据后,所述目标软件能够被更新至第二版本,所述目标软件的数据包括多个能够独立更新的数据块;
处理模块,用于处理所述至少两个第一更新数据,生成至少一个第二更新数据,其中,所述第二更新数据的数量少于第一更新数据的数量;以及
更新模块,用于基于所述至少一个第二更新数据,将所述目标软件更新至所述第二版本;
其中,所述处理所述至少两个第一更新数据,生成至少一个第二更新数据包括:处理多个所述第一更新数据中对应于一个数据块的更新部分,生成第二更新数据中对应于所述数据块的更新部分;合并对应于各个数据块的更新部分,获得至少一个第二更新数据。
9.一种电子设备,包括:
处理器;以及
存储器,其上存储有计算机可读指令,所述指令被处理器执行时,使得处理器:
在目标软件处于第一版本时,获取至少两个第一更新数据,其中,在所述第一版本的目标软件有序安装所述至少两个第一更新数据后,所述目标软件能够被更新至第二版本,所述目标软件的数据包括多个能够独立更新的数据块;
处理所述至少两个第一更新数据,生成至少一个第二更新数据,其中,所述第二更新数据的数量少于第一更新数据的数量;以及
基于所述至少一个第二更新数据,将所述目标软件更新至所述第二版本;
其中,所述处理所述至少两个第一更新数据,生成至少一个第二更新数据包括:处理多个所述第一更新数据中对应于一个数据块的更新部分,生成第二更新数据中对应于所述数据块的更新部分;合并对应于各个数据块的更新部分,获得至少一个第二更新数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811156178.XA CN109189442B (zh) | 2018-09-30 | 2018-09-30 | 更新方法、***和电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811156178.XA CN109189442B (zh) | 2018-09-30 | 2018-09-30 | 更新方法、***和电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109189442A CN109189442A (zh) | 2019-01-11 |
CN109189442B true CN109189442B (zh) | 2022-03-25 |
Family
ID=64908085
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811156178.XA Active CN109189442B (zh) | 2018-09-30 | 2018-09-30 | 更新方法、***和电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109189442B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111475185A (zh) * | 2020-03-11 | 2020-07-31 | 苏州浪潮智能科技有限公司 | 一种跨大版本稳定升级bmc镜像的方法及*** |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102081536A (zh) * | 2010-12-30 | 2011-06-01 | 华为终端有限公司 | 一种增量升级方法及服务器 |
CN103927201A (zh) * | 2014-03-25 | 2014-07-16 | 优视科技有限公司 | 一种游戏文件的更新方法及装置 |
CN106708537A (zh) * | 2017-01-22 | 2017-05-24 | 百度在线网络技术(北京)有限公司 | 应用更新方法和装置 |
CN108183960A (zh) * | 2017-12-29 | 2018-06-19 | 中国平安人寿保险股份有限公司 | 基于cdn的文件更新方法、服务器、存储介质及装置 |
CN108228216A (zh) * | 2018-01-02 | 2018-06-29 | 联想(北京)有限公司 | 更新方法、信息处理***和电子设备 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003256228A (ja) * | 2002-02-28 | 2003-09-10 | Denso Corp | プログラム書換装置 |
-
2018
- 2018-09-30 CN CN201811156178.XA patent/CN109189442B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102081536A (zh) * | 2010-12-30 | 2011-06-01 | 华为终端有限公司 | 一种增量升级方法及服务器 |
CN103927201A (zh) * | 2014-03-25 | 2014-07-16 | 优视科技有限公司 | 一种游戏文件的更新方法及装置 |
CN106708537A (zh) * | 2017-01-22 | 2017-05-24 | 百度在线网络技术(北京)有限公司 | 应用更新方法和装置 |
CN108183960A (zh) * | 2017-12-29 | 2018-06-19 | 中国平安人寿保险股份有限公司 | 基于cdn的文件更新方法、服务器、存储介质及装置 |
CN108228216A (zh) * | 2018-01-02 | 2018-06-29 | 联想(北京)有限公司 | 更新方法、信息处理***和电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN109189442A (zh) | 2019-01-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109117169B (zh) | 用于修复内核漏洞的方法和装置 | |
US10831751B2 (en) | Query parallelism method | |
US9727327B1 (en) | Software distribution framework | |
US9110709B2 (en) | Preserving changes to a configuration of a running virtual machine | |
US20170322796A1 (en) | Device and method for updating firmware and firmware update system | |
US20140033189A1 (en) | Providing virtual appliance system firmware images | |
US20150242201A1 (en) | Method for updating firmware and electronic device thereof | |
CN105138352B (zh) | 一种用于安装应用插件的方法和装置 | |
KR101748833B1 (ko) | 소프트웨어 고장의 위치 확정 방법, 장치 및 설비 | |
US20120047337A1 (en) | Systems and methods for initializing a memory system | |
CN109189442B (zh) | 更新方法、***和电子设备 | |
US10277667B2 (en) | Method and apparatus for executing application based on open computing language | |
US9652245B2 (en) | Branch prediction for indirect jumps by hashing current and previous branch instruction addresses | |
CN111142975B (zh) | 状态机持久化方法及状态机持久化*** | |
CN113515448A (zh) | 应用程序启动时间信息的获取方法及装置 | |
CN110162423B (zh) | 资源检查方法和资源检查装置 | |
CN109582386B (zh) | 服务启动处理方法、装置、电子设备及可读存储介质 | |
US10430173B2 (en) | Techniques for updating components of a computer device while enabling components for availability | |
CN113127082A (zh) | 数据处理方法、服务器、服务节点、***和存储介质 | |
CN110532099B (zh) | 资源隔离方法和装置以及电子设备和介质 | |
CN112882921B (zh) | 故障模拟方法和装置 | |
US9477448B2 (en) | Screen-oriented computing program refactoring | |
US8561027B2 (en) | Reflection capability in static programming languages | |
CN109255641B (zh) | 业务对象的处理方法及装置 | |
US9880904B2 (en) | Supporting multiple backup applications using a single change tracker |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |