CN105893093A - 一种应用程序升级方法及装置 - Google Patents
一种应用程序升级方法及装置 Download PDFInfo
- Publication number
- CN105893093A CN105893093A CN201610201614.5A CN201610201614A CN105893093A CN 105893093 A CN105893093 A CN 105893093A CN 201610201614 A CN201610201614 A CN 201610201614A CN 105893093 A CN105893093 A CN 105893093A
- Authority
- CN
- China
- Prior art keywords
- upgrade package
- target
- codes
- client
- position information
- 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 97
- 230000005540 biological transmission Effects 0.000 claims description 7
- 238000000605 extraction Methods 0.000 claims description 2
- 230000008569 process Effects 0.000 description 6
- 238000009434 installation Methods 0.000 description 5
- 230000006835 compression Effects 0.000 description 4
- 238000007906 compression Methods 0.000 description 4
- 230000006837 decompression Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000006872 improvement Effects 0.000 description 1
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)
- Information Transfer Between Computers (AREA)
Abstract
本发明实施例提供了一种应用程序升级方法和装置。该方法应用于服务器,包括:从数据库中获取第一版本信息;判断第一版本信息与本地保存的第二版本信息是否相同;若不相同,从数据库中获取第一源码;将第一源码与本地保存的第二源码比较,从第一源码中提取不同于第二源码的目标代码以生成升级包,并记录目标代码的目标位置信息;在满足更新信息发送条件时,将升级包连同目标位置信息发送给客户端,以使得客户端在获得升级包和目标位置信息后,根据目标位置信息,使用升级包中的目标代码替换客户端保存的第三源码中对应位置的代码,以升级客户端中的应用程序。综上,该方法实施起来较为方便快捷,并且,其升级效率较高,能更好地满足用户的需求。
Description
技术领域
本发明涉及计算机技术领域,特别是涉及一种应用程序升级方法和装置。
背景技术
对于移动互联网企业来说,为了较好地满足用户的实际需求,其通常需要较为迅速地开发和发布较新版本的产品,例如较新版本的应用程序。这样,当每次有较新版本的应用程序发布之后,若用户想要对其客户端上的应用程序进行升级,用户通常需要下载该应用程序完整的安装包,以替换原有的安装包。一般来说,随着应用程序支持的功能的不断扩展,现有的应用程序的安装包越来越大,而对于较新版本的应用程序来说,其通常只是在原有的安装包中的代码的基础上做了一定的增加或者修改,这些发生改动的代码量相对于安装包中的整个代码量来说其实只是很小的一部分。容易看出,该应用程序的升级操作实施起来非常繁琐,其升级效率低下,给用户带来了非常差的用户体验,故如何提供一种方便快捷的应用程序升级方法是一个亟待解决的问题。
发明内容
本发明实施例的目的在于提供一种应用程序升级方法和装置,以简化应用程序的升级操作。
一方面,本发明实施例提供了一种应用程序升级方法,应用于服务器,所述方法包括如下步骤:
从数据库中获取应用程序的第一版本信息;
判断获取到的所述第一版本信息与本地保存的所述应用程序的第二版本信息是否相同;
若不相同,从所述数据库中获取与所述第一版本信息相对应的第一源码;
将所述第一源码与本地保存的第二源码进行比较,从所述第一源码中提取不同于所述第二源码的目标代码以生成升级包,并记录所述目标代码在所述第一源码中的目标位置信息;
在满足更新信息发送条件时,将所述升级包连同所述目标位置信息发送给客户端,以使得所述客户端在获得所述升级包和所述目标位置信息后,根据所述目标位置信息,使用所述升级包中的目标代码替换所述客户端保存的、通过WEB引擎来解释执行的所述应用程序的第三源码中对应位置的代码,以升级所述客户端中的所述应用程序。
进一步地,上述方法中,所述服务器具有私钥,所述客户端具有公钥;
所述在满足更新信息发送条件时,将所述升级包连同所述目标位置信息发送给客户端之前,所述方法还包括:
通过所述私钥加密所述升级包;
相应的,
所述客户端在获取所述升级包和所述目标位置信息后,通过所述公钥解密所述升级包,并根据所述目标位置信息,使用经解密过的所述升级包中的目标代码替换所述客户端保存的、通过WEB引擎来解释执行的所述应用程序的第三源码中对应位置的代码。
进一步地,上述方法中,所述将所述第一源码与本地保存的第二源码进行比较之前,所述方法还包括:
对所述第一源码进行混淆和压缩;
相应的,
所述客户端在获取所述升级包和所述目标位置信息后,对所述升级包进行解压,并根据所述目标位置信息,使用经解压过的所述升级包中的目标代码替换所述客户端保存的、通过WEB引擎来解释执行的所述应用程序中经混淆过的第三源码中对应位置的代码。
进一步地,上述方法中,所述在满足更新信息发送条件时,将所述升级包连同所述目标位置信息发送给客户端之前,所述方法还包括:
将所述升级包和所述目标位置信息发布到内容分发网络CDN上;
所述在满足更新信息发送条件时,将所述升级包连同所述目标位置信息发送给客户端,包括:
在满足更新信息发送条件时,使所述CDN将所述升级包连同所述目标位置信息发送给客户端。
另一方面,本发明实施例还提供了一种应用程序升级方法,应用于客户端,所述方法包括如下步骤:
获得服务器发送的升级包和目标位置信息,其中,所述升级包和所述目标位置信息为在满足更新信息发送条件时发送的,所述升级包为根据所述服务器从数据库的第一源码中提取的不同于所述服务器保存的第二源码的目标代码生成的,所述目标位置信息用于记录所述目标代码在所述第一源码中的位置;
根据所述目标位置信息,使用所述升级包中的目标代码替换本地保存的、通过WEB引擎来解释执行的第三源码中对应位置的代码,以升级所述应用程序。
进一步地,上述方法中,所述客户端具有公钥,所述服务器具有私钥,其中,
所述获得所述服务器发送的升级包和目标位置信息,包括:
获得所述服务器发送的目标位置信息以及经所述私钥加密过的升级包;
所述根据所述目标位置信息,使用所述升级包中的目标代码替换本地保存的、通过WEB引擎来解释执行的第三源码中对应位置的代码之前,所述方法还包括:
使用所述公钥解密所述升级包;
所述根据所述目标位置信息,使用所述升级包中的目标代码替换本地保存的、通过WEB引擎来解释执行的第三源码中对应位置的代码,包括;
根据所述目标位置信息,使用经解密过的所述升级包中的目标代码替换本地保存的、通过WEB引擎来解释执行的第三源码中对应位置的代码。
进一步地,上述方法中,
所述获得所述服务器发送的升级包和目标位置信息,包括:
获得所述服务器发送的目标位置信息以及经混淆和压缩过的升级包;
所述根据所述目标位置信息,使用所述升级包中的目标代码替换本地保存的、通过WEB引擎来解释执行的第三源码中对应位置的代码之前,所述方法还包括:
对所述升级包进行解压;
所述根据所述目标位置信息,使用所述升级包中的目标代码替换本地保存的、通过WEB引擎来解释执行的第三源码中对应位置的代码,包括:
根据所述目标位置信息,使用所述升级包中的经解压过的目标代码替换本地保存的、通过WEB引擎来解释执行的经混淆过的第三源码中对应位置的代码。
又一方面,本发明实施例还提供了一种应用程序升级装置,应用于服务器,所述装置包括:
版本信息获取模块,用于从数据库中获取应用程序的第一版本信息;
版本信息判断模块,用于判断获取到的所述第一版本信息与本地保存的所述应用程序的第二版本信息是否相同;
源码提取模块,用于在获取到的所述第一版本信息与本地保存的所述应用程序的第二版本信息不相同的情况下,从所述数据库中获取与所述第一版本信息相对应的第一源码;
源码比较模块,用于将所述第一源码与本地保存的第二源码进行比较,从所述第一源码中提取不同于所述第二源码的目标代码以生成升级包,并记录所述目标代码在所述第一源码中的目标位置信息;
第一应用程序升级模块,用于在满足更新信息发送条件时,将所述升级包连同所述目标位置信息发送给客户端,以使得所述客户端在获得所述升级包和所述目标位置信息后,根据所述目标位置信息,使用所述升级包中的目标代码替换所述客户端保存的、通过WEB引擎来解释执行的所述应用程序的第三源码中对应位置的代码,以升级所述客户端中的所述应用程序。
进一步地,上述装置中,所述服务器具有私钥,所述客户端具有公钥,所述装置还包括:加密模块;其中,
所述加密模块用于通过所述私钥加密所述升级包;
相应的,
所述客户端在获取所述升级包和所述目标位置信息后,通过所述公钥解密所述升级包,并根据所述目标位置信息,使用经解密过的所述升级包中的目标代码替换所述客户端保存的、通过WEB引擎来解释执行的所述应用程序的第三源码中对应位置的代码。
进一步地,上述装置还包括:
混淆压缩模块,用于对所述第一源码进行混淆和压缩;
相应的,
所述客户端在获取所述升级包和所述目标位置信息后,对所述升级包进行解压,并根据所述目标位置信息,使用经解压过的所述升级包中的目标代码替换所述客户端保存的、通过WEB引擎来解释执行的所述应用程序中经混淆过的第三源码中对应位置的代码。
进一步地,上述装置还包括:发布模块;其中,
所述发布模块用于将所述升级包和所述目标位置信息发布到内容分发网络CDN上;
所述第一应用程序升级模块具体用于在满足更新信息发送条件时,使所述CDN将所述升级包连同所述目标位置信息发送给客户端。
再一方面,本发明实施例还提供了一种应用程序升级装置,应用于客户端,所述装置包括:
更新信息获得模块,用于获得所述服务器发送的升级包和目标位置信息,其中,所述升级包和所述目标位置信息为在满足更新信息发送条件时发送的,所述升级包为根据所述服务器从数据库的第一源码中提取的不同于所述第二源码的目标代码生成的,所述目标位置信息用于记录所述目标代码在所述第一源码中的位置;
第二应用程序升级模块,用于根据所述目标位置信息,使用所述升级包中的目标代码替换本地保存的、通过WEB引擎来解释执行的第三源码中对应位置的代码,以升级所述应用程序。
进一步地,上述装置中,所述客户端具有公钥,所述服务器具有私钥,所述装置还包括:解密模块;其中,
所述更新信息获得模块具体用于获得所述服务器发送的目标位置信息以及经所述私钥加密过的升级包;
所述解密模块用于使用所述公钥解密所述升级包;
所述第二应用程序升级模块具体用于根据所述目标位置信息,使用经解密过的所述升级包中的目标代码替换本地保存的、通过WEB引擎来解释执行的第三源码中对应位置的代码。
进一步地,上述装置还包括:解压模块;其中,
所述更新信息获得模块具体用于获得所述服务器发送的目标位置信息以及经混淆和压缩过的升级包;
所述解压模块用于对所述升级包进行解压;
所述第二应用程序升级模块具体用于根据所述目标位置信息,使用所述升级包中的经解压过的目标代码替换本地保存的、通过WEB引擎来解释执行的经混淆过的第三源码中对应位置的代码。
本发明实施例提供了一种应用程序升级方法和装置。其中,该方法应用于服务器,该方法包括如下步骤:从数据库中获取应用程序的第一版本信息;判断获取到的第一版本信息与本地保存的应用程序的第二版本信息是否相同;若不相同,从数据库中获取与第一版本信息相对应的第一源码;将第一源码与本地保存的第二源码进行比较,从第一源码中提取不同于第二源码的目标代码以生成升级包,并记录目标代码在第一源码中的目标位置信息;在满足更新信息发送条件时,将升级包连同目标位置信息发送给客户端,以使得客户端在获得升级包和目标位置信息后,根据目标位置信息,使用升级包中的目标代码替换客户端保存的、通过WEB引擎来解释执行的应用程序的第三源码中对应位置的代码,以升级客户端中的应用程序。本实施例中,在满足更新信息发送条件时,服务器就会将升级包连同目标位置信息发送给客户端,这时,客户端仅需要使用升级包中的目标代码来替换第三源码中不同于最新版本的源码中对应位置的代码,即可完成第三源码的更新,而不需要替换第三源码中所有的代码,并且,由于第三源码中需要更新的代码的数量远小于第三源码中所包含的所有代码的数量,故该方法实施起来较为方便快捷,且使用该方法对应用程序进行升级时所需花费的时间要远远少于现有技术中对应用程序进行升级时所需花费的时间,即该方法的升级效率较高,能够更好地满足用户的实际需求。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的应用于服务器的应用程序升级方法的流程图;
图2为本发明实施例提供的应用于服务器的应用程序升级方法的又一流程图;
图3为本发明实施例提供的应用于服务器的应用程序升级方法的又一流程图;
图4为本发明实施例提供的应用于客户端的应用程序升级方法的流程图;
图5为本发明实施例提供的应用于服务器的应用程序升级装置的结构框图;
图6为本发明实施例提供的应用于客户端的应用程序升级装置的结构框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
应用程序升级方法实施例:
参见图1,图中示出了本发明实施例提供的应用程序升级方法的流程图。如图1所示,该方法应用于服务器,该方法包括如下步骤:
S101,从数据库中获取应用程序的第一版本信息。
其中,服务器可以按照设定的第一时间间隔从数据库中获取应用程序的第一版本信息。具体地,第一时间间隔可以为一小时、一天、一周或者一个月,当然,第一时间间隔的时长值并不限于上述情况,具体可以根据实际情况来确定,本实施例对此不做任何限定。
S102,判断获取到的第一版本信息与本地保存的应用程序的第二版本信息是否相同;若不相同,执行S103。
S103,从数据库中获取与第一版本信息相对应的第一源码。
S104,将第一源码与本地保存的第二源码进行比较,从第一源码中提取不同于第二源码的目标代码以生成升级包,并记录目标代码在第一源码中的目标位置信息。
其中,第一版本可以为移动互联网企业提供的该应用程序的最新版本,相应地,第一源码即为移动互联网企业发布的该应用程序的最新版本对应的源码。若第二版本信息与第一版本信息不相同,则说明服务器本地保存的第二源码并不是移动互联网企业发布的该应用程序的最新版本所对应的源码,这时,服务器就会将第二源码与第一源码进行比较,具体地,服务器对第二源码和第一源码的比较可以采用遍历的方式,以从第一源码中提取出所有不同于第二源码的目标代码以生成升级包,并记录目标代码在第一源码中的目标位置信息,最终,服务器本地保存的第二源码将始终为应用程序的最新版本所对应的源码。
S105,在满足更新信息发送条件时,将升级包连同目标位置信息发送给客户端,以使得客户端在获得升级包和目标位置信息后,根据目标位置信息,使用升级包中的目标代码替换客户端保存的、通过WEB引擎来解释执行的应用程序的第三源码中对应位置的代码,以升级客户端中的应用程序。
其中,更新信息发送条件的具体内容可以有多种情况,下面列举更新信息发送条件的具体内容的两种情况。
一种情况下,更新信息发送条件可以为达到预定推送时间,例如服务器可以每隔第二时间间隔向客户端发送升级包连同目标位置信息,具体地,第二时间间隔可以为一小时、一天、一周、一个月或者任意时长,这样,当当前时刻与上一次发送升级包连同目标位置信息的时刻之间的时长差值达到第二时间间隔时,即代表达到预定推送时间,此时服务器会自动地将升级包连同目标位置信息发送给客户端,这样,客户端能够根据目标位置信息,使用升级包中的目标代码来替换第三源码中对应位置的代码,以使第三源码中不同于最新版本的代码均被替换为最新版本的代码,故第三源码得到了更新,此时第三源码被更新为移动互联网企业发布的该应用程序的最新版本所对应的源码。
另一种情况下,更新信息发送条件可以为客户端中的第三源码对应的第三版本信息与第一版本信息不相同。由于服务器本地保存的第二源码始终为应用程序的最新版本所对应的源码,故只要第三版本信息与第二版本信息不相同,则说明客户端中的第三源码不是移动互联网企业发布的该应用程序的最新版本所对应的源码,此时服务器会自动地将升级包连同目标位置信息发送给客户端,这样,客户端能够根据目标位置信息,使用升级包中的目标代码来替换第三源码中对应位置的代码,以使第三源码中不同于最新版本的代码均被替换为最新版本的代码,故第三源码得到了更新,此时第三源码被更新为移动互联网企业发布的该应用程序的最新版本所对应的源码。
需要说明的是,更新信息发送条件的具体内容也可以为其他的情况,具体可以根据实际情况来确定,本实施例对此不做任何限定。
需要说明的是,本实施例中,移动互联网企业在进行最新版本的应用程序的发布时,其向用户的客户端发布的并不是常见的由源码编译而成的二进制代码,而是打包发布的源码和用于对该源码进行解释执行的WEB引擎。这样,当该应用程序在客户端中安装好之后,WEB引擎可以对源码进行解释执行,以使该应用程序能够在客户端上正常运行。
本实施例中,在满足更新信息发送条件时,服务器就会将升级包连同目标位置信息发送给客户端,这时,客户端仅需要使用升级包中的目标代码来替换第三源码中不同于最新版本的源码中对应位置的代码,即可完成第三源码的更新,而不需要替换第三源码中所有的代码,并且,由于第三源码中需要更新的代码的数量远小于第三源码中所包含的所有代码的数量,故本实施例提供的方法实施起来较为方便快捷,且使用该方法对应用程序进行升级时所需花费的时间要远远少于现有技术中对应用程序进行升级时所需花费的时间,即该方法的升级效率较高,能够更好地满足用户的实际需求。
本实施例中,由于网络传输存在一定的不安全性,故客户端最终接收到的升级包有可能是被替换或者被篡改的升级包,这样,客户端根据该升级包很有可能无法将应用程序升级到最新版本,为了保证网络传输的安全性,以使客户端中的应用程序能够成功升级,服务器可以具有私钥,客户端可以具有公钥,此时,
在满足更新信息发送条件时,将升级包连同目标位置信息发送给客户端之前,该方法还可以包括:
通过私钥加密升级包。
相应的,
客户端在获取升级包和目标位置信息后,通过公钥解密升级包,并根据目标位置信息,使用经解密过的升级包中的目标代码替换客户端保存的、通过WEB引擎来解释执行的应用程序的第三源码中对应位置的代码。
可以看出,通过公钥和私钥的配合使用,可以有效地保证升级包传输时的安全性,进而可靠地保证了客户端中应用程序的成功升级。
上述实施例中,将第一源码与本地保存的第二源码进行比较之前,该方法还可以包括:
对第一源码进行混淆和压缩。
其中,第一源码的混淆可以通过一代码混淆器来实现,第一源码的混淆和压缩的具体原理为本领域技术人员所公知,在此不再赘述。
相应的,
客户端在获取升级包和目标位置信息后,对升级包进行解压,并根据目标位置信息,使用经解压过的升级包中的目标代码替换客户端保存的、通过WEB引擎来解释执行的应用程序中经混淆过的第三源码中对应位置的代码。
可以看出,由于第一源码进行了代码混淆,即第一源码被进行了重新组织和处理,进行混淆处理后的第一源码与进行混淆处理前的第一源码可以完成相同的功能,同时,进行混淆处理后的第一源码很难被反编译,即使被反编译也很难得出代码的真正意义,故对第一源码的代码混淆可以有效地避免恶意操作人员对第一源码的反编译操作。此外,由于第一源码进行了代码压缩,故第一源码的体积大大减小,相应地,升级包的体积也会随之减小,这样,服务器将升级包发送给客户端时所需花费的时间也会随之缩短。
上述实施例中,在满足更新信息发送条件时,将升级包连同目标位置信息发送给客户端之前,该方法还可以包括:
将升级包和目标位置信息发布到内容分发网络CDN上。
这时,在满足更新信息发送条件时,将升级包连同目标位置信息发送给客户端,包括:
在满足更新信息发送条件时,使CDN将升级包连同目标位置信息发送给客户端。
本实施例中,由于客户端得到的升级包连同目标位置信息来自于CDN,而CDN能够根据网络流量和其内部的各节点的连接、负载状况以及用户的距离等综合信息将用户的请求重新导向到离用户最近的服务节点上,这样,用户的客户端可以就近取得升级包和目标位置信息,以提高用户获取升级包和目标位置信息的效率。
下面以一个具体的例子说明本发明实施例提供的应用程序升级方法的具体实施过程。
对于数据库来说,其可以预先存储有移动互联网企业发布的应用程序的最新版本,即第一版本所对应的第一源码。本实施例中,服务器可以具有私钥和升级包生成模块,相应地,客户端可以具有公钥和升级包拆包模块。具体实施时,如图2所示,服务器可以先执行S201,以判断是否有新版本,例如按照第一时间间隔从数据库中获取应用程序的第一版本信息,然后将该第一版本信息与本地保存的应用程序的第二版本信息进行比较,以判断两者是否相同。若两者相同,则说明服务器内保存的第二源码已经是当前状态下最新的代码版本了,此时数据库内没有更新版本的源码了,故服务器内的第二源码无需更新,服务器会执行S202以结束整个流程。若两者不相同,则说明服务器内保存的第二源码并不是当前状态下最新的代码版本,故服务器内的第二源码需要进行更新,服务器会执行S203,以从数据库中下载第一源码。实际更新时,服务器会执行S204,以与上一版本的源码进行比较,生成升级包。具体地,服务器中的升级包生成模块可以将第一源码与第二源码一一地进行比较,以从第一源码中提取出不同于第二源码的目标代码以生成升级包,即第一源码中存在改动的代码,同时记录该目标代码在第一源码中的目标位置信息。接下来,服务器可以执行S205,即对升级包中的目标代码进行压缩,并用私钥加密该升级包。具体地,服务器还可以对目标代码进行混淆,并且,对目标代码进行混淆、压缩和加密的操作均可以由升级包生成模块来完成。最后,服务器还可以在满足目标信息发送条件时执行S206,以将目标位置信息和经上述处理后的升级包部署到CDN中。
相应地,如图3所示,对于客户端来说,其会先执行S301,即先对客户端本地保存的第三源码的版本信息进行判断,并确定服务器内是否有更新版本的源码,若没有,则说明客户端当前保存的第三源码即为最新版本的源码,该第三源码无需更新,此时执行S302以结束整个流程;若有,则执行S303,以从客户端中下载升级包,并记录目标位置信息,接下来,可以执行S304和S305,即用公钥解密和解压升级包,以生成最终的升级包,最后,执行S306,以替换执行代码,即使用升级包中的目标代码替换第三源码中对应位置的代码即可实现客户端中应用程序的升级。
综上,本实施例提供的应用程序升级方法实施起来较为方便快捷,并且,使用该方法对应用程序进行升级时所需花费的时间要远远少于现有技术中对应用程序进行升级时所需花费的时间,其升级效率较高,能够更好地满足用户的实际需求。
应用程序升级方法实施例:
参见图4,图中示出了本发明实施例提供的应用程序升级方法的流程图。如图4所示,该方法应用于客户端,该方法包括如下步骤:
S401,获得服务器发送的升级包和目标位置信息,其中,升级包和目标位置信息为在满足更新信息发送条件时发送的,升级包为根据服务器从数据库的第一源码中提取的不同于服务器保存的第二源码的目标代码生成的,目标位置信息用于记录目标代码在第一源码中的位置;
S402,根据目标位置信息,使用升级包中的目标代码替换本地保存的、通过WEB引擎来解释执行的第三源码中对应位置的代码,以升级应用程序。
上述方法中,客户端具有公钥,服务器具有私钥,其中,
获得服务器发送的升级包和目标位置信息,包括:
获得服务器发送的目标位置信息以及经私钥加密过的升级包;
根据目标位置信息,使用升级包中的目标代码替换本地保存的、通过WEB引擎来解释执行的第三源码中对应位置的代码之前,该方法还包括:
使用公钥解密升级包;
根据目标位置信息,使用升级包中的目标代码替换本地保存的、通过WEB引擎来解释执行的第三源码中对应位置的代码,包括;
根据目标位置信息,使用经解密过的升级包中的目标代码替换本地保存的、通过WEB引擎来解释执行的第三源码中对应位置的代码。
上述方法中,
获得服务器发送的升级包和目标位置信息,包括:
获得服务器发送的目标位置信息以及经混淆和压缩过的升级包;
根据目标位置信息,使用升级包中的目标代码替换本地保存的、通过WEB引擎来解释执行的第三源码中对应位置的代码之前,该方法还包括:
对升级包进行解压;
根据目标位置信息,使用升级包中的目标代码替换本地保存的、通过WEB引擎来解释执行的第三源码中对应位置的代码,包括:
根据目标位置信息,使用升级包中的经解压过的目标代码替换本地保存的、通过WEB引擎来解释执行的经混淆过的第三源码中对应位置的代码。
综上,本实施例提供的应用程序升级方法实施起来较为方便快捷,并且,使用该方法对应用程序进行升级时所需花费的时间要远远少于现有技术中对应用程序进行升级时所需花费的时间,其升级效率较高,能够更好地满足用户的实际需求。
软件升级装置实施例:
参见图5,图中示出了本发明实施例提供的应用程序升级装置的结构框图。如图5所示,该装置应用于服务器,该装置包括:
版本信息获取模块51,用于从数据库中获取应用程序的第一版本信息;
版本信息判断模块52,用于判断获取到的第一版本信息与本地保存的应用程序的第二版本信息是否相同;
源码提取模块53,用于在获取到的第一版本信息与本地保存的应用程序的第二版本信息不相同的情况下,从数据库中获取与第一版本信息相对应的第一源码;
源码比较模块54,用于将第一源码与本地保存的第二源码进行比较,从第一源码中提取不同于第二源码的目标代码以生成升级包,并记录目标代码在第一源码中的目标位置信息;
第一应用程序升级模块55,用于在满足更新信息发送条件时,将升级包连同目标位置信息发送给客户端,以使得客户端在获得升级包和目标位置信息后,根据目标位置信息,使用升级包中的目标代码替换客户端保存的、通过WEB引擎来解释执行的应用程序的第三源码中对应位置的代码,以升级客户端中的应用程序。
由于应用于服务器的应用程序升级方法具有上述技术效果,故基于该方法的装置也具有相应的技术效果,在此不再赘述。
上述实施例中,服务器具有私钥,客户端具有公钥,该装置还可以包括:加密模块;其中,
加密模块用于通过私钥加密升级包;
相应的,
客户端在获取升级包和目标位置信息后,通过公钥解密升级包,并根据目标位置信息,使用经解密过的升级包中的目标代码替换客户端保存的、通过WEB引擎来解释执行的应用程序的第三源码中对应位置的代码。
上述实施例中,该装置还包括:
混淆压缩模块,用于对第一源码进行混淆和压缩;
相应的,
客户端在获取升级包和目标位置信息后,对升级包进行解压,并根据目标位置信息,使用经解压过的升级包中的目标代码替换客户端保存的、通过WEB引擎来解释执行的应用程序中经混淆过的第三源码中对应位置的代码。
上述实施例中,该装置还包括:发布模块;其中,
发布模块用于将升级包和目标位置信息发布到内容分发网络CDN上;
第一应用程序升级模块具体用于在满足更新信息发送条件时,使CDN将升级包连同目标位置信息发送给客户端。
综上,本实施例提供的应用程序升级装置可以使应用程序的升级操作实施起来较为方便快捷,并且,使用该装置对应用程序进行升级时所需花费的时间要远远少于现有技术中对应用程序进行升级时所需花费的时间,其升级效率较高,能够更好地满足用户的实际需求。
应用程序升级装置实施例:
参见图6,图中示出了本发明实施例提供的应用程序升级装置的结构框图。如图6所示,该装置应用于客户端,该装置包括:
更新信息获得模块61,用于获得服务器发送的升级包和目标位置信息,其中,升级包和目标位置信息为在满足更新信息发送条件时发送的,升级包为根据服务器从数据库的第一源码中提取的不同于第二源码的目标代码生成的,目标位置信息用于记录目标代码在第一源码中的位置;
第二应用程序升级模块62,用于根据目标位置信息,使用升级包中的目标代码替换本地保存的、通过WEB引擎来解释执行的第三源码中对应位置的代码,以升级应用程序。
由于应用于客户端的应用程序升级方法具有上述技术效果,故基于该方法的装置也具有相应的技术效果,在此不再赘述。
上述实施例中,客户端具有公钥,服务器具有私钥,该装置还包括:解密模块;其中,
更新信息获得模块具体用于获得服务器发送的目标位置信息以及经私钥加密过的升级包;
解密模块用于使用公钥解密升级包;
第二应用程序升级模块具体用于使用经解密过的升级包中的目标代码替换本地保存的、通过WEB引擎来解释执行的第三源码中对应位置的代码。
上述实施例中,该装置还可以包括:解压模块;其中,
更新信息获得模块具体用于获得服务器发送的目标位置信息以及经混淆和压缩过的升级包;
解压模块,用于对升级包进行解压;
第二应用程序升级模块具体用于根据目标位置信息,使用升级包中的经解压过的目标代码替换本地保存的、通过WEB引擎来解释执行的经混淆过的第三源码中对应位置的代码。
综上,本实施例提供的应用程序升级装置可以使应用程序的升级操作实施起来较为方便快捷,并且,使用该装置对应用程序进行升级时所需花费的时间要远远少于现有技术中对应用程序进行升级时所需花费的时间,其升级效率较高,能够更好地满足用户的实际需求。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
Claims (10)
1.一种应用程序升级方法,其特征在于,应用于服务器,所述方法包括如下步骤:
从数据库中获取应用程序的第一版本信息;
判断获取到的所述第一版本信息与本地保存的所述应用程序的第二版本信息是否相同;
若不相同,从所述数据库中获取与所述第一版本信息相对应的第一源码;
将所述第一源码与本地保存的第二源码进行比较,从所述第一源码中提取不同于所述第二源码的目标代码以生成升级包,并记录所述目标代码在所述第一源码中的目标位置信息;
在满足更新信息发送条件时,将所述升级包连同所述目标位置信息发送给客户端,以使得所述客户端在获得所述升级包和所述目标位置信息后,根据所述目标位置信息,使用所述升级包中的目标代码替换所述客户端保存的、通过WEB引擎来解释执行的所述应用程序的第三源码中对应位置的代码,以升级所述客户端中的所述应用程序。
2.如权利要求1所述的方法,其特征在于,所述服务器具有私钥,所述客户端具有公钥;
所述在满足更新信息发送条件时,将所述升级包连同所述目标位置信息发送给客户端之前,所述方法还包括:
通过所述私钥加密所述升级包;
相应的,
所述客户端在获取所述升级包和所述目标位置信息后,通过所述公钥解密所述升级包,并根据所述目标位置信息,使用经解密过的所述升级包中的目标代码替换所述客户端保存的、通过WEB引擎来解释执行的所述应用程序的第三源码中对应位置的代码。
3.如权利要求1所述的方法,其特征在于,所述将所述第一源码与本地保存的第二源码进行比较之前,所述方法还包括:
对所述第一源码进行混淆和压缩;
相应的,
所述客户端在获取所述升级包和所述目标位置信息后,对所述升级包进行解压,并根据所述目标位置信息,使用经解压过的所述升级包中的目标代码替换所述客户端保存的、通过WEB引擎来解释执行的所述应用程序中经混淆过的第三源码中对应位置的代码。
4.如权利要求1所述的方法,其特征在于,所述在满足更新信息发送条件时,将所述升级包连同所述目标位置信息发送给客户端之前,所述方法还包括:
将所述升级包和所述目标位置信息发布到内容分发网络CDN上;
所述在满足更新信息发送条件时,将所述升级包连同所述目标位置信息发送给客户端,包括:
在满足更新信息发送条件时,使所述CDN将所述升级包连同所述目标位置信息发送给客户端。
5.一种应用程序升级方法,其特征在于,应用于客户端,所述方法包括如下步骤:
获得服务器发送的升级包和目标位置信息,其中,所述升级包和所述目标位置信息为在满足更新信息发送条件时发送的,所述升级包为根据所述服务器从数据库的第一源码中提取的不同于所述服务器保存的第二源码的目标代码生成的,所述目标位置信息用于记录所述目标代码在所述第一源码中的位置;
根据所述目标位置信息,使用所述升级包中的目标代码替换本地保存的、通过WEB引擎来解释执行的第三源码中对应位置的代码,以升级所述应用程序。
6.如权利要求5所述的方法,其特征在于,所述客户端具有公钥,所述服务器具有私钥,其中,
所述获得所述服务器发送的升级包和目标位置信息,包括:
获得所述服务器发送的目标位置信息以及经所述私钥加密过的升级包;
所述根据所述目标位置信息,使用所述升级包中的目标代码替换本地保存的、通过WEB引擎来解释执行的第三源码中对应位置的代码之前,所述方法还包括:
使用所述公钥解密所述升级包;
所述根据所述目标位置信息,使用所述升级包中的目标代码替换本地保存的、通过WEB引擎来解释执行的第三源码中对应位置的代码,包括;
根据所述目标位置信息,使用经解密过的所述升级包中的目标代码替换本地保存的、通过WEB引擎来解释执行的第三源码中对应位置的代码。
7.如权利要求5所述的方法,其特征在于,
所述获得所述服务器发送的升级包和目标位置信息,包括:
获得所述服务器发送的目标位置信息以及经混淆和压缩过的升级包;
所述根据所述目标位置信息,使用所述升级包中的目标代码替换本地保存的、通过WEB引擎来解释执行的第三源码中对应位置的代码之前,所述方法还包括:
对所述升级包进行解压;
所述根据所述目标位置信息,使用所述升级包中的目标代码替换本地保存的、通过WEB引擎来解释执行的第三源码中对应位置的代码,包括:
根据所述目标位置信息,使用所述升级包中的经解压过的目标代码替换本地保存的、通过WEB引擎来解释执行的经混淆过的第三源码中对应位置的代码。
8.一种应用程序升级装置,其特征在于,应用于服务器,所述装置包括:
版本信息获取模块,用于从数据库中获取应用程序的第一版本信息;
版本信息判断模块,用于判断获取到的所述第一版本信息与本地保存的所述应用程序的第二版本信息是否相同;
源码提取模块,用于在获取到的所述第一版本信息与本地保存的所述应用程序的第二版本信息不相同的情况下,从所述数据库中获取与所述第一版本信息相对应的第一源码;
源码比较模块,用于将所述第一源码与本地保存的第二源码进行比较,从所述第一源码中提取不同于所述第二源码的目标代码以生成升级包,并记录所述目标代码在所述第一源码中的目标位置信息;
第一应用程序升级模块,用于在满足更新信息发送条件时,将所述升级包连同所述目标位置信息发送给客户端,以使得所述客户端在获得所述升级包和所述目标位置信息后,根据所述目标位置信息,使用所述升级包中的目标代码替换所述客户端保存的、通过WEB引擎来解释执行的所述应用程序的第三源码中对应位置的代码,以升级所述客户端中的所述应用程序。
9.如权利要求8所述的装置,其特征在于,所述服务器具有私钥,所述客户端具有公钥,所述装置还包括:加密模块;其中,
所述加密模块用于通过私钥加密升级包;
相应的,
所述客户端在获取所述升级包和所述目标位置信息后,通过所述公钥解密所述升级包,并根据所述目标位置信息,使用经解密过的所述升级包中的目标代码替换所述客户端保存的、通过WEB引擎来解释执行的所述应用程序的第三源码中对应位置的代码。
10.一种应用程序升级装置,其特征在于,应用于客户端,所述装置包括:
更新信息获得模块,用于获得所述服务器发送的升级包和目标位置信息,其中,所述升级包和所述目标位置信息为在满足更新信息发送条件时发送的,所述升级包为根据所述服务器从数据库的第一源码中提取的不同于所述第二源码的目标代码生成的,所述目标位置信息用于记录所述目标代码在所述第一源码中的位置;
第二应用程序升级模块,用于根据所述目标位置信息,使用所述升级包中的目标代码替换本地保存的、通过WEB引擎来解释执行的第三源码中对应位置的代码,以升级所述应用程序。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610201614.5A CN105893093A (zh) | 2016-03-31 | 2016-03-31 | 一种应用程序升级方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610201614.5A CN105893093A (zh) | 2016-03-31 | 2016-03-31 | 一种应用程序升级方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105893093A true CN105893093A (zh) | 2016-08-24 |
Family
ID=57012138
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610201614.5A Pending CN105893093A (zh) | 2016-03-31 | 2016-03-31 | 一种应用程序升级方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105893093A (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106657361A (zh) * | 2016-12-30 | 2017-05-10 | 歌尔科技有限公司 | 一种代码添加混淆的安卓安装包ota升级方法 |
CN106648765A (zh) * | 2016-12-07 | 2017-05-10 | 京信通信系统(中国)有限公司 | 嵌入式设备固件补丁包生成及固件差分升级方法和装置 |
CN107797819A (zh) * | 2017-06-12 | 2018-03-13 | 平安普惠企业管理有限公司 | 增量包生成方法、计算机可读存储介质及服务器 |
CN108958771A (zh) * | 2018-07-03 | 2018-12-07 | 百度在线网络技术(北京)有限公司 | 应用程序的更新方法、装置、服务器及存储介质 |
CN109413127A (zh) * | 2017-08-18 | 2019-03-01 | 北京京东尚科信息技术有限公司 | 一种数据同步方法和装置 |
CN109992286A (zh) * | 2019-04-02 | 2019-07-09 | 深圳创维数字技术有限公司 | 设备升级方法、服务器及计算机可读存储介质 |
CN111506330A (zh) * | 2020-04-23 | 2020-08-07 | 北京微纳星空科技有限公司 | 一种程序更新方法、装置、星务计算机及存储介质 |
CN112073994A (zh) * | 2020-09-03 | 2020-12-11 | 百度在线网络技术(北京)有限公司 | 用于空中升级的方法、装置、电子设备及可读存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1691282A1 (en) * | 2005-02-11 | 2006-08-16 | Biftone Corporation | Build optimizer tool for efficient management of software builds for mobile devices |
CN102025708A (zh) * | 2009-09-22 | 2011-04-20 | 华为技术有限公司 | 一种升级方法、装置和系统 |
CN103701930A (zh) * | 2014-01-07 | 2014-04-02 | 浙江大学 | 一种移动应用程序的实时更新方法及系统 |
CN104702631A (zh) * | 2013-12-04 | 2015-06-10 | 航天信息股份有限公司 | 一种客户端软件的升级方法和系统 |
-
2016
- 2016-03-31 CN CN201610201614.5A patent/CN105893093A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1691282A1 (en) * | 2005-02-11 | 2006-08-16 | Biftone Corporation | Build optimizer tool for efficient management of software builds for mobile devices |
CN102025708A (zh) * | 2009-09-22 | 2011-04-20 | 华为技术有限公司 | 一种升级方法、装置和系统 |
CN104702631A (zh) * | 2013-12-04 | 2015-06-10 | 航天信息股份有限公司 | 一种客户端软件的升级方法和系统 |
CN103701930A (zh) * | 2014-01-07 | 2014-04-02 | 浙江大学 | 一种移动应用程序的实时更新方法及系统 |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106648765A (zh) * | 2016-12-07 | 2017-05-10 | 京信通信系统(中国)有限公司 | 嵌入式设备固件补丁包生成及固件差分升级方法和装置 |
CN106657361A (zh) * | 2016-12-30 | 2017-05-10 | 歌尔科技有限公司 | 一种代码添加混淆的安卓安装包ota升级方法 |
CN106657361B (zh) * | 2016-12-30 | 2019-09-13 | 歌尔科技有限公司 | 一种代码添加混淆的安卓安装包ota升级方法 |
CN107797819A (zh) * | 2017-06-12 | 2018-03-13 | 平安普惠企业管理有限公司 | 增量包生成方法、计算机可读存储介质及服务器 |
CN109413127A (zh) * | 2017-08-18 | 2019-03-01 | 北京京东尚科信息技术有限公司 | 一种数据同步方法和装置 |
CN108958771A (zh) * | 2018-07-03 | 2018-12-07 | 百度在线网络技术(北京)有限公司 | 应用程序的更新方法、装置、服务器及存储介质 |
CN108958771B (zh) * | 2018-07-03 | 2022-05-20 | 百度在线网络技术(北京)有限公司 | 应用程序的更新方法、装置、服务器及存储介质 |
CN109992286A (zh) * | 2019-04-02 | 2019-07-09 | 深圳创维数字技术有限公司 | 设备升级方法、服务器及计算机可读存储介质 |
CN111506330A (zh) * | 2020-04-23 | 2020-08-07 | 北京微纳星空科技有限公司 | 一种程序更新方法、装置、星务计算机及存储介质 |
CN112073994A (zh) * | 2020-09-03 | 2020-12-11 | 百度在线网络技术(北京)有限公司 | 用于空中升级的方法、装置、电子设备及可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105893093A (zh) | 一种应用程序升级方法及装置 | |
CN109194625B (zh) | 一种基于云端服务器的客户端应用保护方法、装置及存储介质 | |
CN111143869B (zh) | 应用程序包处理方法、装置、电子设备及存储介质 | |
CN105554091A (zh) | 一种移动终端中web应用来源安全的保障方法 | |
CN111008034B (zh) | 一种补丁生成方法及装置 | |
CN104680039A (zh) | 一种应用程序安装包的数据保护方法及装置 | |
JP2022506633A (ja) | 無線アップグレード方法および関連装置 | |
KR20160122254A (ko) | 소프트웨어 애플리케이션의 세트의 구축 방법 | |
CN107239299B (zh) | 插件升级方法及装置 | |
JP2015176601A (ja) | ソフトウェアアップデートの方法、ソフトウェアアップデートシステム及びモバイル機器 | |
US20180067777A1 (en) | Application protection method, server, and terminal | |
CN106055375B (zh) | 应用程序安装方法及装置 | |
CN105320535A (zh) | 一种安装包的校验方法、客户端、服务器及系统 | |
CN103605551A (zh) | 一种基于ios程序的插件更新方法、系统及相关设备 | |
CN112417484A (zh) | 资源文件保护方法、装置、计算机设备和存储介质 | |
CN111737718A (zh) | 一种jar包的加解密方法、装置、终端设备和存储介质 | |
CN113961226B (zh) | 一种软件开发工具包修复方法、终端、服务器及设备 | |
CN111382447B (zh) | 安装包的加密方法、存储介质及计算机设备 | |
KR20170069337A (ko) | 애플리케이션 보호를 위한 암호화 처리 방법, 이에 의해 생성된 프로그램 및 이를 위한 장치 | |
CN107682335B (zh) | 数据传输方法、服务端以及计算机可读存储介质 | |
CN114143197A (zh) | 物联网设备ota升级方法、装置、设备及可读存储介质 | |
CN114115903A (zh) | 一种对小程序的加固、小程序运行方法及装置 | |
CN111399867A (zh) | 一种软件升级方法、装置、设备及计算机可读存储介质 | |
CN111159712B (zh) | 检测方法、设备及存储介质 | |
CN108259556A (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20160824 |