CN105045631A - 一种升级客户端侧应用程序的方法和装置 - Google Patents
一种升级客户端侧应用程序的方法和装置 Download PDFInfo
- Publication number
- CN105045631A CN105045631A CN201510460285.1A CN201510460285A CN105045631A CN 105045631 A CN105045631 A CN 105045631A CN 201510460285 A CN201510460285 A CN 201510460285A CN 105045631 A CN105045631 A CN 105045631A
- Authority
- CN
- China
- Prior art keywords
- file
- version
- scale
- client
- delta
- 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
Landscapes
- Stored Programmes (AREA)
Abstract
本发明公开了一种升级客户端侧应用程序的方法和装置。所述方法包括:将指定应用程序的一个高版本文件与该指定应用程序的客户端侧的一个低版本文件精确到二进制进行对比,得到二进制差异信息;将所述二进制差异信息保存到增量文件中;将所述增量文件下发给客户端,以使得客户端将该指定应用程序从所述低版本升级到所述高版本。对比高版本和低版本产生的二进制差异信息远远小于现有技术中增量升级数据的大小,故本发明中应用程序升级所需的增量文件要远远小于现有增量升级技术中增量文件的大小,在下载时可以节省数据流量,安装时也可以节约用户的时间和设备资源。
Description
技术领域
本发明涉及网络通信领域,具体涉及一种升级客户端侧应用程序的方法和装置。
背景技术
随着计算机技术的发展,开发者所开发出的应用程序并不能一直满足用户的需求,几乎每一款应用程序都需要开发者进行维护和升级。因此客户端侧也需要不断地升级应用程序。升级应用程序的方法有全量升级方法和增量升级方法。全量升级是指下载应用程序的新版本的全部文件来进行升级操作,这种升级方式流量耗费巨大。而增量升级是指在进行更新操作时,只下载新版本中相对于旧版本有改变的文件。例如旧版本包含文件A、B和C,新版本包含文件A、B’、C和D,文件B’是对文件B的改进,文件D是新增的文件,则现有的增量升级方法中会下载文件B’和文件D。因此增量升级会大大节省下载流量。
然而,随着各种各样的应用程序的层出不穷,以及每种应用程序都需要不断的进行改进升级,现在有的这种增量升级方式仍耗费大量的数据流量。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的升级客户端侧应用程序的方法和装置。
依据本发明的一个方面,提供了一种升级客户端侧应用程序的方法,包括:
将指定应用程序的一个高版本文件与该指定应用程序的客户端侧的一个低版本文件精确到二进制进行对比,得到二进制差异信息;
将所述二进制差异信息保存到增量文件中;
将所述增量文件下发给客户端,以使得客户端将该指定应用程序从所述低版本升级到所述高版本。
可选地,将指定应用程序的一个高版本文件与该指定应用程序的客户端侧的一个低版本文件精确到二进制进行对比,得到二进制差异信息包括:
如果高版本文件相对于低版本文件有新增的部分,则生成一条增加指令,该增加指令包括:该新增部分的二进制序列,以及新增部分的位置;
如果高版本文件相对于低版本文件有部分的修改,则生成一条修改指令,该修改指令包括:所述有修改部分的二进制替换序列,以及该有修改部分的起始位置和终止位置;
如果高版本文件相对于低版本文件有删除的部分,则生成一条删除指令,该删除指令包括:待删除部分的起始位置和终止位置。
可选地,将指定应用程序的一个高版本文件与该指定应用程序的客户端侧的一个低版本文件精确到二进制进行对比,得到二进制差异信息还进一步包括:
将所述高版本文件和所述低版本文件,按照所包含的相应子文件进行对比;
如果高版本文件相对于低版本文件增加了新的子文件,则生成一条增加指令,该增加指令包括:该新增子文件的二进制序列,以及该新增子文件的位置;
如果高版本文件中的一个子文件相对低版本文件的相应子文件有部分修改,则生成一条修改指令,该修改指令包括:所述子文件中的有修改部分的二进制替换序列,以及该有修改部分的起始位置和终止位置;
如果高版本文件相对于低版本文件删除了一个子文件,则生成一条删除指令,该删除指令包括:待删除子文件的起始位置和终止位置。
可选地,将所述二进制差异信息保存到增量文件中包括:
将生成的增加指令、修改指令和删除指令保存到增量文件中。
可选地,所述将指定应用程序的一个高版本文件与该指定应用程序的客户端侧的一个低版本文件精确到二进制进行对比,得到二进制差异信息;以及将所述二进制差异信息保存到增量文件中包括:
每次发布指定应用程序的最新版本文件时,将该最新版本文件与该指定应用程序的每个低版本文件,都分别精确到二进制进行对比,得到各低版本文件对应的二进制差异信息;
将各低版本文件对应的二进制差异信息分别对应保存到相应的各增量文件中;
将各增量文件保存到增量文件库中。
可选地,将所述增量文件下发给客户端包括:
接收客户端的升级指定应用程序的请求;其中,所述请求中包含了客户端侧已存在的低版本文件的升级起始版本信息,以及想要升级到的升级目标版本信息;
根据升级起始版本信息和升级目标版本信息,从增量文件库中查找出相应的增量文件;
将查找出的相应增量文件下发给所述发送请求的客户端。
依据本发明的另一方面,提供了一种升级客户端侧应用程序的装置,其中,该装置包括:
差异比较单元,适于将指定应用程序的一个高版本文件与该指定应用程序的客户端侧的一个低版本文件精确到二进制进行对比,得到二进制差异信息;
增量文件生成单元,适于将所述二进制差异信息保存到增量文件中;
升级处理单元,适于将所述增量文件下发给客户端,以使得客户端将该指定应用程序从所述低版本升级到所述高版本。
可选地,所述差异比较单元,适于在高版本文件相对于低版本文件有新增的部分时,生成一条增加指令,该增加指令包括:该新增部分的二进制序列,以及新增部分的位置;适于在高版本文件相对于低版本文件有部分的修改时,生成一条修改指令,该修改指令包括:所述有修改部分的二进制替换序列,以及该有修改部分的起始位置和终止位置;以及适于在高版本文件相对于低版本文件有删除的部分时,生成一条删除指令,该删除指令包括:待删除部分的起始位置和终止位置。
可选地,所述差异比较单元,具体适于在将所述高版本文件和所述低版本文件,按照所包含的相应子文件进行对比;适于在高版本文件相对于低版本文件增加了新的子文件时,生成一条增加指令,该增加指令包括:该新增子文件的二进制序列,以及该新增子文件的位置;适于在高版本文件中的一个子文件相对低版本文件的相应子文件有部分修改时,生成一条修改指令,该修改指令包括:所述子文件中的有修改部分的二进制替换序列,以及该有修改部分的起始位置和终止位置;以及适于在高版本文件相对于低版本文件删除了一个子文件时,生成一条删除指令,该删除指令包括:待删除子文件的起始位置和终止位置。
可选地,所述增量文件生成单元,适于将所述生成的增加指令、修改指令和删除指令保存到增量文件中。
可选地,该装置进一步包括:存储单元;
差异比较单元,适于在每次发布指定应用程序的最新版本文件时,将该最新版本文件与该指定应用程序的每个低版本文件,都分别精确到二进制进行对比,得到各低版本文件对应的二进制差异信息;
所述增量文件生成单元,适于将各低版本文件对应的二进制差异信息分别对应保存到相应的各增量文件中,并将各增量文件保存到存储单元中的增量文件库中;
所述存储单元,适于保存增量文件库。
可选地,所述升级处理单元,适于接收客户端的升级指定应用程序的请求;其中,所述请求中包含了客户端侧已存在的低版本文件的升级起始版本信息,以及想要升级到的升级目标版本信息;适于根据升级起始版本信息和升级目标版本信息,从增量文件库中查找出相应的增量文件,将查找出的相应增量文件下发给所述发送请求的客户端。
根据本发明的技术方案对客户端侧的应用程序进行升级,可以将指定应用程序的一个高版本文件与该指定应用程序的客户端侧的一个低版本文件精确到二进制进行对比,得到二进制差异信息,并将其保存到增量文件中,再将所述增量文件下发给客户端,从而使得客户端可以将该指定应用程序从现有低版本升级为需求的高版本。对比高版本和低版本产生的二进制差异信息远远小于现有技术中增量升级数据的大小,故本发明中应用程序升级所需的增量文件要远远小于现有增量升级技术中增量文件的大小,在下载时可以节省数据流量,安装时也可以节约用户的时间和设备资源。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了本发明一个实施例提供的一种升级客户端侧应用程序的方法的流程图;
图2示出了本发明一个实施例提供的一种升级客户端侧应用程序的装置的结构图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
图1示出了本发明一个实施例提供的一种升级客户端侧应用程序的方法的流程图,如图1所示,该方法包括:
步骤S110,将指定应用程序的一个高版本文件与该指定应用程序的客户端侧的一个低版本文件精确到二进制进行对比,得到二进制差异信息。
步骤S120,将该二进制差异信息保存到增量文件中。
增量文件是应用程序采用增量更新方式所需的文件,包含新文件与旧文件之间的差异信息,需要增加、删除和修改的内容。
步骤S130,将该增量文件下发给客户端,以使得客户端将该指定应用程序从低版本升级到高版本。
图1所示的方法,采取二进制信息对比的方式对比指定应用程序的高版本文件和低版本文件,将产生的二进制差异信息保存到增量文件中提供给客户端进行下载,使得客户端升级指定应用程序到高版本,属于增量升级的方式。现有技术中增量升级针对文件本身,如低版本的应用程序和高版本的应用程序都包含A文件,但是存在差异,那么在应用程序升级时会在增量文件中提供高版本应用程序中的A文件来替换低版本应用程序中的A文件,而图1所示的方法会对比两个A文件的二进制信息,由于高版本的应用程序和低版本应用程序中的同一名称文件的基本功能一般相同,虽有改动,但高版本应用程序中的文件仍保留了低版本应用程序中该文件很大部分的原有功能,在二进制信息的对比上,会有很大一部分的二进制信息相同,则只需将二进制差异信息保存到增量文件。A文件整体替换可能需要500bit,但其中二进制信息差异可能仅有20bit,相比于A文件整体的替换会减少极大的数据流量。
在本发明的又一个实施例中,图1所示的方法中,将指定应用程序的一个高版本文件与该指定应用程序的客户端侧的一个低版本文件精确到二进制进行对比,得到二进制差异信息包括:
如果高版本文件相对于低版本文件有新增的部分,则生成一条增加指令,该增加指令包括:该新增部分的二进制序列,以及新增部分的位置;
如果高版本文件相对于低版本文件有部分的修改,则生成一条修改指令,该修改指令包括:所述有修改部分的二进制替换序列,以及该有修改部分的起始位置和终止位置;
如果高版本文件相对于低版本文件有删除的部分,则生成一条删除指令,该删除指令包括:待删除部分的起始位置和终止位置。
例如,对指定应用程序来说,高版本应用程序中包含的A文件和低版本应用程序中包含的A文件不同,对比二者的二进制信息发现,高版本的A文件相对于低版本的A文件,在低版本二进制信息的a1段和a2段之间增加了字符串a3,将低版本二进制信息b1段和b3段之间的字符串b2修改为b4,删除了低版本二进制信息c1段和c3段之间的字符串c2,则基于以上信息分别生成增加指令、修改指令和删除指令,如adda3,modifyb2,deletec2。该实施例说明了二进制差异信息包含的内容,可以清楚的看出此种应用程序的升级方式中不存在冗余和疏漏,最大化地减少了增量升级的数据量。
在本发明的又一个实施例中,上述方法中,将指定应用程序的一个高版本文件与该指定应用程序的客户端侧的一个低版本文件精确到二进制进行对比,得到二进制差异信息还进一步包括:
将所述高版本文件和所述低版本文件,按照所包含的相应子文件进行对比;
如果高版本文件相对于低版本文件增加了新的子文件,则生成一条增加指令,该增加指令包括:该新增子文件的二进制序列,以及该新增子文件的位置;
如果高版本文件中的一个子文件相对低版本文件的相应子文件有部分修改,则生成一条修改指令,该修改指令包括:所述子文件中的有修改部分的二进制替换序列,以及该有修改部分的起始位置和终止位置;
如果高版本文件相对于低版本文件删除了一个子文件,则生成一条删除指令,该删除指令包括:待删除子文件的起始位置和终止位置。
例如,指定应用程序的高版本对低版本中的文件A进行了升级,具体而言,对文件A删除了其子文件A1,修改了其子文件A2,增加了新子文件A3,则需要生成删除指令,包括A1的起始位置和终止位置;依据前述方法对比A2有修改部分的二进制替换序列,以及该有修改部分的起始位置和终止位置,从而生成修改指令;生成增加指令,同样依前述方法得到新增子文件A3的二进制序列,以及A3的位置。
在文件包含子文件的情况下,对比其子文件可以进一步减少不必要的对比,节约了数据检索及对比的时间和资源。
在本发明的又一个实施例中,上述方法中,将所述二进制差异信息保存到增量文件中包括:
将生成的增加指令、修改指令和删除指令保存到增量文件中。
将对指定应用程序进行升级操作所需的指令统一保存到增量文件中,便于应用程序需要升级时统一向用户提供,在进行升级时统一进行操作,更有效率。
在本发明的一个实施例中,图1所示的方法中,所述将指定应用程序的一个高版本文件与该指定应用程序的客户端侧的一个低版本文件精确到二进制进行对比,得到二进制差异信息;以及将所述二进制差异信息保存到增量文件中包括:
每次发布指定应用程序的最新版本文件时,将该最新版本文件与该指定应用程序的每个低版本文件,都分别精确到二进制进行对比,得到各低版本文件对应的二进制差异信息;
将各低版本文件对应的二进制差异信息分别对应保存到相应的各增量文件中;
将各增量文件保存到增量文件库中。
对于该指定应用程序,用户正在使用的版本可能并不统一,但都是曾经发布过的版本。将最新版本文件与各个曾经发布过的低版本进行对比,生成与各个低版本对应的增量文件并保存到增量文件库中,保证了使用任一低版本应用程序的用户,都可以在需要对应用程序进行升级时从增量文件库中获取与其版本相对应的增量文件,升级为最新版本的应用程序,而不产生现有技术中增量升级的数据过大甚至大于全新安装包的弊端。
在本发明的又一个实施例中,上述方法中,将所述增量文件下发给客户端包括:
接收客户端的升级指定应用程序的请求;其中,所述请求中包含了客户端侧已存在的低版本文件的升级起始版本信息,以及想要升级到的升级目标版本信息;
根据升级起始版本信息和升级目标版本信息,从增量文件库中查找出相应的增量文件;
将查找出的相应增量文件下发给所述发送请求的客户端。
例如,应用程序最新的版本号为2.5,用户正在使用的版本为2.1,期间应用程序开发者还提供过版本号为2.3的应用程序。当用户请求升级应用程序时,客户端先通过与服务器端进行版本号的对比,在客户端发送的升级指定应用程序的请求中写明已存在的低版本文件的升级起始版本信息2.1,以及想要升级到的升级目标版本信息2.5,则服务器端从增量文件库中查找出版本2.1-2.5的增量文件,再将其下发给发送请求的客户端,用户便可以对应用程序进行升级,方便快捷且节省资源。
图2示出了本发明一个实施例提供的一种升级客户端侧应用程序的装置的结构图,如图2所示,该装置200包括:
差异比较单元210,适于将指定应用程序的一个高版本文件与该指定应用程序的客户端侧的一个低版本文件精确到二进制进行对比,得到二进制差异信息。
增量文件生成单元220,适于将该二进制差异信息保存到增量文件中。
升级处理单元230,适于将该增量文件下发给客户端,以使得客户端将该指定应用程序从低版本升级到高版本。
采取二进制信息对比的方式对比指定应用程序的高版本文件和低版本文件,将产生的二进制差异信息保存到增量文件中提供给客户端进行下载,使得客户端升级指定应用程序到高版本,属于增量升级的方式。现有技术中增量升级针对文件本身,如低版本的应用程序和高版本的应用程序都包含A文件,但是存在,那么在应用程序升级时会在增量文件中提供高版本应用程序中的A文件,而图2所示装置利用差异比较单元210对比两个A文件的二进制信息,由于高版本的应用程序和低版本的应用程序的同一名称文件的基本功能一般相同,虽有改动,但高版本应用程序中的文件仍保留了低版本应用程序中文件很大部分的原有功能,在二进制信息的对比上,会有很大一部分的二进制信息相同。A文件整体替换可能需要500bit,但其中二进制信息差异可能仅有20bit,则只需利用增量文件生成单元220将二进制差异信息保存到增量文件,相比于A文件整体的替换会减少极大的数据流量。
在本发明的又一个实施例中,图2所示的装置中,差异比较单元210,适于在高版本文件相对于低版本文件有新增的部分时,生成一条增加指令,该增加指令包括:该新增部分的二进制序列,以及新增部分的位置;适于在高版本文件相对于低版本文件有部分的修改时,生成一条修改指令,该修改指令包括:所述有修改部分的二进制替换序列,以及该有修改部分的起始位置和终止位置;以及适于在高版本文件相对于低版本文件有删除的部分时,生成一条删除指令,该删除指令包括:待删除部分的起始位置和终止位置。
例如,对指定应用程序来说,高版本应用程序中包含的A文件和低版本应用程序中包含的A文件不同,对比二者的二进制信息发现,高版本的A.exe文件相对于低版本的A文件,在低版本二进制信息的a1段和a2段之间增加了字符串a3,将低版本二进制信息b1段和b3段之间的字符串b2修改为b4,删除了低版本二进制信息c1段和c3段之间的字符串c2,则差异比较单元210基于以上信息分别生成增加指令、修改指令和删除指令,如adda3,modifyb2,deletec2。该实施例说明了二进制差异信息包含的内容,可以清楚的看出此种应用程序的升级方式中不存在冗余和疏漏,最大化地减少了增量升级的数据量。
本发明的又一个实施例中,上述装置中,差异比较单元210,具体适于在将所述高版本文件和所述低版本文件,按照所包含的相应子文件进行对比;适于在高版本文件相对于低版本文件增加了新的子文件时,生成一条增加指令,该增加指令包括:该新增子文件的二进制序列,以及该新增子文件的位置;适于在高版本文件中的一个子文件相对低版本文件的相应子文件有部分修改时,生成一条修改指令,该修改指令包括:所述子文件中的有修改部分的二进制替换序列,以及该有修改部分的起始位置和终止位置;以及适于在高版本文件相对于低版本文件删除了一个子文件时,生成一条删除指令,该删除指令包括:待删除子文件的起始位置和终止位置。
例如,指定应用程序的高版本对低版本中的文件A进行了升级,具体而言,对文件A删除了其子文件A1,修改了其子文件A2,增加了新子文件A3,则差异比较单元210需要生成删除指令,包括A1的起始位置和终止位置;对比A2有修改部分的二进制替换序列,以及该有修改部分的起始位置和终止位置,从而生成修改指令;生成增加指令,同样依前述方法得到新增子文件A3的二进制序列,以及A3的位置。
在文件包含子文件的情况下,对比其子文件可以进一步减少不必要的对比,节约了数据检索及对比的时间和资源。
在本发明的又一个实施例中,上述装置中,增量文件生成单元220,适于将所述生成的增加指令、修改指令和删除指令保存到增量文件中。
增量文件生成单元220将对指定应用程序进行升级操作所需的指令统一保存到增量文件中,便于应用程序需要升级时统一向用户提供,在进行升级时统一进行操作,更有效率。
在本发明的又一个实施例中,上述装置进一步包括:存储单元240;
差异比较单元210,适于在每次发布指定应用程序的最新版本文件时,将该最新版本文件与该指定应用程序的每个低版本文件,都分别精确到二进制进行对比,得到各低版本文件对应的二进制差异信息;
增量文件生成单元220,适于将各低版本文件对应的二进制差异信息分别对应保存到相应的各增量文件中,并将各增量文件保存到存储单元中的增量文件库中;
存储单元240,适于保存增量文件库。
对于该指定应用程序,用户正在使用的版本可能并不统一,但都是曾经发布过的版本。将最新版本文件与各个曾经发布过的低版本进行对比,生成与各个低版本对应的增量文件并保存到增量文件库中,保证了使用任一低版本应用程序的用户,都可以在需要对应用程序进行升级时从增量文件库中获取与其版本相对应的增量文件,升级为最新版本的应用程序,而不产生现有技术中增量升级的数据过大甚至大于全新安装包的弊端。
在本发明的又一个实施例中,上述装置中,升级处理单元230,适于接收客户端的升级指定应用程序的请求;其中,所述请求中包含了客户端侧已存在的低版本文件的升级起始版本信息,以及想要升级到的升级目标版本信息;适于根据升级起始版本信息和升级目标版本信息,从增量文件库中查找出相应的增量文件,将查找出的相应增量文件下发给所述发送请求的客户端。
例如,应用程序最新的版本号为2.5,用户正在使用的版本为2.1,期间应用程序开发者还提供过版本号为2.3的应用程序。当用户请求升级应用程序时,客户端先通过与服务器端进行版本号的对比,在客户端发送的升级指定应用程序的请求中写明已存在的低版本文件的升级起始版本信息2.1,以及想要升级到的升级目标版本信息2.5,则服务器端从增量文件库中查找出版本2.1-2.5的增量文件,再将其下发给发送请求的客户端,用户便可以对应用程序进行升级,方便快捷且节省资源。
需要说明的是:
在此提供的算法和显示不与任何特定计算机、虚拟装置或者其它设备固有相关。各种通用装置也可以与基于在此的示教一起使用。根据上面的描述,构造这类装置所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的升级客户端侧应用程序的装置中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
Claims (12)
1.一种升级客户端侧应用程序的方法,其中,该方法包括:
将指定应用程序的一个高版本文件与该指定应用程序的客户端侧的一个低版本文件精确到二进制进行对比,得到二进制差异信息;
将所述二进制差异信息保存到增量文件中;
将所述增量文件下发给客户端,以使得客户端将该指定应用程序从所述低版本升级到所述高版本。
2.如权利要求1所述的方法,其中,将指定应用程序的一个高版本文件与该指定应用程序的客户端侧的一个低版本文件精确到二进制进行对比,得到二进制差异信息包括:
如果高版本文件相对于低版本文件有新增的部分,则生成一条增加指令,该增加指令包括:该新增部分的二进制序列,以及新增部分的位置;
如果高版本文件相对于低版本文件有部分的修改,则生成一条修改指令,该修改指令包括:所述有修改部分的二进制替换序列,以及该有修改部分的起始位置和终止位置;
如果高版本文件相对于低版本文件有删除的部分,则生成一条删除指令,该删除指令包括:待删除部分的起始位置和终止位置。
3.如权利要求2所述的方法,其中,将指定应用程序的一个高版本文件与该指定应用程序的客户端侧的一个低版本文件精确到二进制进行对比,得到二进制差异信息还进一步包括:
将所述高版本文件和所述低版本文件,按照所包含的相应子文件进行对比;
如果高版本文件相对于低版本文件增加了新的子文件,则生成一条增加指令,该增加指令包括:该新增子文件的二进制序列,以及该新增子文件的位置;
如果高版本文件中的一个子文件相对低版本文件的相应子文件有部分修改,则生成一条修改指令,该修改指令包括:所述子文件中的有修改部分的二进制替换序列,以及该有修改部分的起始位置和终止位置;
如果高版本文件相对于低版本文件删除了一个子文件,则生成一条删除指令,该删除指令包括:待删除子文件的起始位置和终止位置。
4.如权利要求2或3所述的方法,其中,将所述二进制差异信息保存到增量文件中包括:
将生成的增加指令、修改指令和删除指令保存到增量文件中。
5.如权利要求1所述的方法,其中,所述将指定应用程序的一个高版本文件与该指定应用程序的客户端侧的一个低版本文件精确到二进制进行对比,得到二进制差异信息;以及将所述二进制差异信息保存到增量文件中包括:
每次发布指定应用程序的最新版本文件时,将该最新版本文件与该指定应用程序的每个低版本文件,都分别精确到二进制进行对比,得到各低版本文件对应的二进制差异信息;
将各低版本文件对应的二进制差异信息分别对应保存到相应的各增量文件中;
将各增量文件保存到增量文件库中。
6.如权利要求5所述的方法,其中,将所述增量文件下发给客户端包括:
接收客户端的升级指定应用程序的请求;其中,所述请求中包含了客户端侧已存在的低版本文件的升级起始版本信息,以及想要升级到的升级目标版本信息;
根据升级起始版本信息和升级目标版本信息,从增量文件库中查找出相应的增量文件;
将查找出的相应增量文件下发给所述发送请求的客户端。
7.一种升级客户端侧应用程序的装置,其中,该装置包括:
差异比较单元,适于将指定应用程序的一个高版本文件与该指定应用程序的客户端侧的一个低版本文件精确到二进制进行对比,得到二进制差异信息;
增量文件生成单元,适于将所述二进制差异信息保存到增量文件中;
升级处理单元,适于将所述增量文件下发给客户端,以使得客户端将该指定应用程序从所述低版本升级到所述高版本。
8.如权利要求7所述的装置,其中,
所述差异比较单元,适于在高版本文件相对于低版本文件有新增的部分时,生成一条增加指令,该增加指令包括:该新增部分的二进制序列,以及新增部分的位置;适于在高版本文件相对于低版本文件有部分的修改时,生成一条修改指令,该修改指令包括:所述有修改部分的二进制替换序列,以及该有修改部分的起始位置和终止位置;以及适于在高版本文件相对于低版本文件有删除的部分时,生成一条删除指令,该删除指令包括:待删除部分的起始位置和终止位置。
9.如权利要求8所述的装置,其中,
所述差异比较单元,具体适于在将所述高版本文件和所述低版本文件,按照所包含的相应子文件进行对比;适于在高版本文件相对于低版本文件增加了新的子文件时,生成一条增加指令,该增加指令包括:该新增子文件的二进制序列,以及该新增子文件的位置;适于在高版本文件中的一个子文件相对低版本文件的相应子文件有部分修改时,生成一条修改指令,该修改指令包括:所述子文件中的有修改部分的二进制替换序列,以及该有修改部分的起始位置和终止位置;以及适于在高版本文件相对于低版本文件删除了一个子文件时,生成一条删除指令,该删除指令包括:待删除子文件的起始位置和终止位置。
10.如权利要求8或9所述的装置,其中,
所述增量文件生成单元,适于将所述生成的增加指令、修改指令和删除指令保存到增量文件中。
11.如权利要求7所述的装置,其中,该装置进一步包括:存储单元;
差异比较单元,适于在每次发布指定应用程序的最新版本文件时,将该最新版本文件与该指定应用程序的每个低版本文件,都分别精确到二进制进行对比,得到各低版本文件对应的二进制差异信息;
所述增量文件生成单元,适于将各低版本文件对应的二进制差异信息分别对应保存到相应的各增量文件中,并将各增量文件保存到存储单元中的增量文件库中;
所述存储单元,适于保存增量文件库。
12.如权利要求11所述的装置,其中,
所述升级处理单元,适于接收客户端的升级指定应用程序的请求;其中,所述请求中包含了客户端侧已存在的低版本文件的升级起始版本信息,以及想要升级到的升级目标版本信息;适于根据升级起始版本信息和升级目标版本信息,从增量文件库中查找出相应的增量文件,将查找出的相应增量文件下发给所述发送请求的客户端。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510460285.1A CN105045631A (zh) | 2015-07-30 | 2015-07-30 | 一种升级客户端侧应用程序的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510460285.1A CN105045631A (zh) | 2015-07-30 | 2015-07-30 | 一种升级客户端侧应用程序的方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105045631A true CN105045631A (zh) | 2015-11-11 |
Family
ID=54452195
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510460285.1A Pending CN105045631A (zh) | 2015-07-30 | 2015-07-30 | 一种升级客户端侧应用程序的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105045631A (zh) |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106095455A (zh) * | 2016-06-17 | 2016-11-09 | 北京小米移动软件有限公司 | 一种应用更新方法及装置 |
CN106202275A (zh) * | 2016-06-30 | 2016-12-07 | 乐视控股(北京)有限公司 | 对象文件的追加、截断方法及装置 |
CN106547651A (zh) * | 2016-10-27 | 2017-03-29 | 广州视源电子科技股份有限公司 | 一种软件版本还原的方法和装置 |
CN106598659A (zh) * | 2016-12-08 | 2017-04-26 | 浪潮(苏州)金融技术服务有限公司 | 数据文件的构建方法、更新应用程序的方法及装置 |
CN106657361A (zh) * | 2016-12-30 | 2017-05-10 | 歌尔科技有限公司 | 一种代码添加混淆的安卓安装包ota升级方法 |
CN106708581A (zh) * | 2016-12-27 | 2017-05-24 | 北京奇虎科技有限公司 | 应用的更新包生成方法、装置和应用的更新方法、装置 |
CN106897260A (zh) * | 2017-03-21 | 2017-06-27 | 广州视源电子科技股份有限公司 | 还原复合文档历史版本的系统及方法、存储介质和处理器 |
CN108156015A (zh) * | 2016-12-06 | 2018-06-12 | 阿里巴巴集团控股有限公司 | 数据的更新方法和装置 |
CN109960498A (zh) * | 2017-12-26 | 2019-07-02 | 深圳联友科技有限公司 | 一种基于c++的html编辑器编辑及升级方法及装置 |
CN110018994A (zh) * | 2017-11-02 | 2019-07-16 | 华为终端有限公司 | 更新文件系统的方法、网络设备及计算机可读存储介质 |
CN110083381A (zh) * | 2018-01-26 | 2019-08-02 | 启碁科技股份有限公司 | 增量升级的方法及装置 |
CN110231947A (zh) * | 2019-05-21 | 2019-09-13 | 深圳壹账通智能科技有限公司 | 一种应用程序的插件更新方法、设备、服务器及存储介质 |
CN110995524A (zh) * | 2019-10-28 | 2020-04-10 | 北京三快在线科技有限公司 | 流量数据监控方法、装置、电子设备和计算机可读介质 |
CN112433750A (zh) * | 2020-12-17 | 2021-03-02 | 潍柴动力股份有限公司 | 车载终端应用程序升级方法、装置、设备、介质及产品 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1906574A (zh) * | 2003-11-19 | 2007-01-31 | 艾利森电话股份有限公司 | 更新移动终端中的数据 |
CN102193803A (zh) * | 2010-03-03 | 2011-09-21 | 上海三旗通信科技有限公司 | 一种手机软件快速更新下载的方法 |
CN102799445A (zh) * | 2012-05-03 | 2012-11-28 | 陈昊 | 一种基于Android平台的应用升级方法及系统 |
CN103136013A (zh) * | 2011-12-01 | 2013-06-05 | 腾讯科技(深圳)有限公司 | 软件升级方法和系统 |
CN103428188A (zh) * | 2012-05-25 | 2013-12-04 | 北京小米科技有限责任公司 | 一种文件更新方法、装置及相关设备 |
CN103973475A (zh) * | 2013-02-05 | 2014-08-06 | 腾讯科技(深圳)有限公司 | 差异补丁包生成方法及下载方法、服务器、客户端 |
-
2015
- 2015-07-30 CN CN201510460285.1A patent/CN105045631A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1906574A (zh) * | 2003-11-19 | 2007-01-31 | 艾利森电话股份有限公司 | 更新移动终端中的数据 |
CN102193803A (zh) * | 2010-03-03 | 2011-09-21 | 上海三旗通信科技有限公司 | 一种手机软件快速更新下载的方法 |
CN103136013A (zh) * | 2011-12-01 | 2013-06-05 | 腾讯科技(深圳)有限公司 | 软件升级方法和系统 |
CN102799445A (zh) * | 2012-05-03 | 2012-11-28 | 陈昊 | 一种基于Android平台的应用升级方法及系统 |
CN103428188A (zh) * | 2012-05-25 | 2013-12-04 | 北京小米科技有限责任公司 | 一种文件更新方法、装置及相关设备 |
CN103973475A (zh) * | 2013-02-05 | 2014-08-06 | 腾讯科技(深圳)有限公司 | 差异补丁包生成方法及下载方法、服务器、客户端 |
Cited By (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106095455A (zh) * | 2016-06-17 | 2016-11-09 | 北京小米移动软件有限公司 | 一种应用更新方法及装置 |
CN106202275A (zh) * | 2016-06-30 | 2016-12-07 | 乐视控股(北京)有限公司 | 对象文件的追加、截断方法及装置 |
CN106547651A (zh) * | 2016-10-27 | 2017-03-29 | 广州视源电子科技股份有限公司 | 一种软件版本还原的方法和装置 |
CN108156015A (zh) * | 2016-12-06 | 2018-06-12 | 阿里巴巴集团控股有限公司 | 数据的更新方法和装置 |
CN108156015B (zh) * | 2016-12-06 | 2021-01-22 | 阿里巴巴集团控股有限公司 | 数据的更新方法和装置 |
CN106598659A (zh) * | 2016-12-08 | 2017-04-26 | 浪潮(苏州)金融技术服务有限公司 | 数据文件的构建方法、更新应用程序的方法及装置 |
CN106708581A (zh) * | 2016-12-27 | 2017-05-24 | 北京奇虎科技有限公司 | 应用的更新包生成方法、装置和应用的更新方法、装置 |
CN106657361A (zh) * | 2016-12-30 | 2017-05-10 | 歌尔科技有限公司 | 一种代码添加混淆的安卓安装包ota升级方法 |
CN106657361B (zh) * | 2016-12-30 | 2019-09-13 | 歌尔科技有限公司 | 一种代码添加混淆的安卓安装包ota升级方法 |
CN106897260A (zh) * | 2017-03-21 | 2017-06-27 | 广州视源电子科技股份有限公司 | 还原复合文档历史版本的系统及方法、存储介质和处理器 |
CN110018994A (zh) * | 2017-11-02 | 2019-07-16 | 华为终端有限公司 | 更新文件系统的方法、网络设备及计算机可读存储介质 |
CN110018994B (zh) * | 2017-11-02 | 2021-02-09 | 华为终端有限公司 | 更新文件系统的方法、网络设备及计算机可读存储介质 |
CN109960498A (zh) * | 2017-12-26 | 2019-07-02 | 深圳联友科技有限公司 | 一种基于c++的html编辑器编辑及升级方法及装置 |
CN110083381A (zh) * | 2018-01-26 | 2019-08-02 | 启碁科技股份有限公司 | 增量升级的方法及装置 |
CN110083381B (zh) * | 2018-01-26 | 2023-04-28 | 启碁科技股份有限公司 | 增量升级的方法及装置 |
WO2020233045A1 (zh) * | 2019-05-21 | 2020-11-26 | 深圳壹账通智能科技有限公司 | 一种插件更新方法、设备、服务器及计算机可读存储介质 |
CN110231947A (zh) * | 2019-05-21 | 2019-09-13 | 深圳壹账通智能科技有限公司 | 一种应用程序的插件更新方法、设备、服务器及存储介质 |
CN110995524A (zh) * | 2019-10-28 | 2020-04-10 | 北京三快在线科技有限公司 | 流量数据监控方法、装置、电子设备和计算机可读介质 |
CN110995524B (zh) * | 2019-10-28 | 2022-06-14 | 北京三快在线科技有限公司 | 流量数据监控方法、装置、电子设备和计算机可读介质 |
CN112433750A (zh) * | 2020-12-17 | 2021-03-02 | 潍柴动力股份有限公司 | 车载终端应用程序升级方法、装置、设备、介质及产品 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105045631A (zh) | 一种升级客户端侧应用程序的方法和装置 | |
EP3488337B1 (en) | Shared software libraries for computing devices | |
CN105389191A (zh) | 一种基于局域网的软件升级方法、装置和系统 | |
US11979300B2 (en) | Standardized format for containerized applications | |
CN103699410A (zh) | 一种应用程序的更新方法和装置 | |
CN103647816A (zh) | 一种应用软件升级的方法及装置 | |
CN104899025A (zh) | 一种生成渠道包的方法和装置 | |
CN105049514A (zh) | 一种文件下载方法和装置 | |
US20180329725A1 (en) | Method and apparatus for loading application | |
US11640441B2 (en) | Page displaying method and device, computer-readable storage medium and electronic device | |
CN111459511B (zh) | 应用程序的下载方法、装置及电子设备 | |
CN104754062A (zh) | 基于互联网的信息推广方法、服务器及用户终端 | |
CN104038520A (zh) | 一种多版本分布式资源管理方法和系统 | |
CN106775781B (zh) | 减小应用安装包的方法、装置及电子设备 | |
CN110765187A (zh) | 一种数据源路由管理方法和装置 | |
CN105577813A (zh) | 一种web混合应用的更新方法和系统 | |
CN111176717A (zh) | 生成安装包的方法、装置及电子设备 | |
CN112395253A (zh) | 索引文件生成方法、终端设备、电子设备及介质 | |
CN107391507B (zh) | 移动端页面的更新方法和装置 | |
CN109145236A (zh) | 页面文件处理方法、装置及系统 | |
CN110532016B (zh) | 版本管理方法、版本更新方法和版本管理系统 | |
US8719812B1 (en) | Methods, systems, and computer readable media for dynamically modifying and utilizing a software package description for software installation | |
CN108845864B (zh) | 一种基于spring框架的JVM垃圾回收方法和装置 | |
CN108694049B (zh) | 一种更新软件的方法和设备 | |
CN103500099A (zh) | 一种通过扩展点和扩展实现软件快速二次开发的方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20151111 |
|
RJ01 | Rejection of invention patent application after publication |