CN107797818A - 应用程序升级方法及装置 - Google Patents
应用程序升级方法及装置 Download PDFInfo
- Publication number
- CN107797818A CN107797818A CN201710193623.9A CN201710193623A CN107797818A CN 107797818 A CN107797818 A CN 107797818A CN 201710193623 A CN201710193623 A CN 201710193623A CN 107797818 A CN107797818 A CN 107797818A
- Authority
- CN
- China
- Prior art keywords
- application
- channel
- server
- installation kit
- version
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明涉及一种应用程序升级方法及装置。该方法包括从服务器下载匹配的应用增量包,获取本地的当前版本应用安装包,将当前版本应用安装包中注释区域的渠道信息进行备份并将渠道信息从注释区域中删除,根据应用增量包与当前版本应用安装包生成目标版本安装包,将备份的渠道信息写入目标版本安装包中的注释区域并安装目标版本安装包。上述应用程序升级方法及装置简化了多渠道发布应用增量包的打包过程、提高了打包效率。
Description
技术领域
本发明涉及计算机技术领域,特别是涉及一种应用程序升级方法及装置。
背景技术
随着互联网尤其是移动互联网的发展,同类型的应用产品存在激烈的竞争,应用产品的开发者需要通过不断的升级更新来满足日益增多的客户需求以提高自己的竞争力。由于用户需要更新的应用很多,如果每次对应用程序进行更新升级时都要下载完整的新版本的话,会占用用户较多的流量和存储资源,因此,采用对现有版本打补丁包,使用户只需对应用程序更新部分进行下载的方法可以很好地解决这一问题。
在应用程序进行更新升级时需要在多个发布渠道发布补丁包,一般的,针对每个发布渠道都需要打包生成写入有相应渠道信息的补丁包,应用程序发布的渠道越多,需要提供的补丁包的数量就越多,打包过程耗费时间长且容易出错。
发明内容
基于此,有必要针对上述多渠道发布补丁包的打包过程耗费时间长且容易出错的问题,提供一种应用程序升级方法及装置。
一种应用程序升级方法,所述方法包括:
从服务器下载匹配的应用增量包;
获取本地的当前版本应用安装包;
将当前版本应用安装包中注释区域的渠道信息进行备份并将渠道信息从注释区域中删除;
根据应用增量包与当前版本应用安装包生成目标版本安装包;
将备份的渠道信息写入目标版本安装包中的注释区域并安装目标版本安装包。
在其中一个实施例中,从服务器下载匹配的应用增量包的步骤之前还包括:
获取应用的最新版本信息;
根据最新版本信息判断应用是否需要升级;
当应用需要升级时,向服务器发送应用升级请求,升级请求至少包括应用的当前版本信息;
接收服务器发送的与应用当前版本匹配的应用增量包的下载地址。
在其中一个实施例中,从服务器下载匹配的应用增量包的步骤之后还包括:
获取服务器发布的应用增量包的校验值;
计算下载的应用增量包的校验值;
判断服务器发布的校验值与计算得到的应用增量包的校验值是否一致,若不一致,向服务器发送应用全量包下载请求;若一致,执行获取本地应用的当前版本安装包的步骤。
在其中一个实施例中,渠道信息包括渠道号、渠道号位数和渠道号识别码,将当前版本安装包中注释区域的渠道信息进行备份的步骤之前还包括:
读取当前版本安装包的渠道号、渠道号位数和渠道号识别码;
从服务器获取应用对应的渠道信息;
将从服务器获取的渠道信息中的渠道号、渠道号位数和渠道号识别码逐一与读取的渠道号、渠道号位数和渠道号识别码进行比较并判断是否一致,若不一致,向服务器发送应用全量包下载请求;若一致,执行将当前版本安装包中注释区域的渠道信息进行备份的步骤。
在其中一个实施例中,根据应用增量包与当前版本安装包生成目标版本安装包的步骤之后还包括:
计算目标版本安装包的校验值;
从服务器获取应用目标版本全量包的校验值;
判断目标版本全量包的校验值与计算得到的目标版本安装包的校验值是否一致,若不一致,向服务器发送应用全量包下载请求;若一致,执行将备份的渠道信息写入目标版本安装包的注释区域并对目标版本安装包进行安装的步骤。
一种应用程序升级装置,所述装置包括:
下载模块,用于从服务器下载匹配的应用增量包;
安装包获取模块,用于获取本地的当前版本应用安装包;
备份删除模块,用于将当前版本应用安装包中注释区域的渠道信息进行备份并将渠道信息从注释区域中删除;
合成模块,用于根据应用增量包与当前版本应用安装包生成目标版本安装包;
安装模块,用于将备份的渠道信息写入目标版本安装包中的注释区域并安装目标版本安装包。
在其中一个实施例中,装置还包括:
版本获取模块,用于获取应用的最新版本信息;
升级判断模块,用于根据最新版本信息判断应用是否需要升级;
升级请求模块,用于当应用应用需要升级时,向服务器发送应用升级请求,升级请求至少包括应用的当前版本信息;
地址接收模块,用于接收服务器发送的与应用当前版本匹配的应用增量包的下载地址。
在其中一个实施例中,装置还包括:
增量包校验值获取模块,用于获取服务器发布的应用增量包的校验值;
增量包校验值计算模块,用于计算下载的应用增量包的校验值;
增量包校验值比较模块,用于判断服务器发布的校验值与计算得到的应用增量包的校验值是否一致,若不一致,向服务器发送应用全量包下载请求;若一致,执行获取本地应用的当前版本安装包的步骤。
在其中一个实施例中,渠道信息包括渠道号、渠道号位数和渠道号识别码,装置还包括:
渠道信息读取模块,用于读取当前版本安装包的渠道号、渠道号位数和渠道号识别码;
渠道信息获取模块,用于从服务器获取应用对应的渠道信息;
渠道信息比较模块,用于将从服务器获取的渠道信息中的渠道号、渠道号位数和渠道号识别码逐一与读取的渠道号、渠道号位数和渠道号识别码进行比较并判断是否一致,若不一致,向服务器发送应用全量包下载请求;若一致,执行将当前版本安装包中注释区域的渠道信息进行备份的步骤。
在其中一个实施例中,装置还包括:
安装包校验值计算模块,用于计算目标版本安装包的校验值;
安装包校验值获取模块,用于从服务器获取应用目标版本全量包的校验值;
安装包校验值比较模块,用于判断目标版本全量包的校验值与计算得到的目标版本安装包的校验值是否一致,若不一致,向服务器发送应用全量包下载请求;若一致,执行将备份的渠道信息写入目标版本安装包的注释区域并对目标版本安装包进行安装的步骤。
上述应用程序升级方法及装置,在将下载的应用增量包与本地的当前版本应用安装包生成目标版本安装包之前,将当前版本应用安装包中注释区域的渠道信息进行备份后删除,并在合成生成目标版本安装包后重新写入目标版本安装包的注释区域,从而用户在使用应用时可以上报渠道信息给服务器,使得服务器端在不影响应用下载渠道信息获得的情况下,只需向客户端提供不携带渠道信息的统一应用增量包就可满足多渠道发布的应用的升级需求,无需针对多种发布渠道逐一进行应用增量包的打包,简化增量包的打包过程、提高了打包效率。
附图说明
图1为一个实施例中应用程序升级方法的应用环境图;
图2为一个实施例中应用程序升级方法的流程图;
图3为一个实施例中应用程序升级装置的结构示意图;
图4为另一个实施例中应用程序升级装置的结构示意图;
图5为再一个实施例中应用程序升级装置的结构示意图;
图6为又一个实施例中应用程序升级装置的结构示意图;
图7为又一个实施例中应用程序升级装置的结构示意图;
图8为一个实施例中终端的结构示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明实施例中所提供的应用程序升级方法可以应用于如图1所示的应用环境中。服务器102与终端104通过网络连接。服务器102上部署有数据库,数据库上存储有应用程序各个版本对应的未写入渠道信息的应用增量包,终端104向服务器102发送应用的增量包下载请求,服务器102接收应用的增量包下载请求,并根据下载请求查找与应用版本相匹配的应用增量包,服务器102将匹配的应用增量包的下载地址发送给终端104,终端104接收应用增量包的下载地址后访问下载地址并下载应用增量包,终端104对下载的应用增量包进行处理,将应用增量包与当前版本的应用全量包进行合成,合成后写入渠道信息并进行应用程序的升级。由此能够提高服务器102对多渠道发布的应用增量包的打包效率。
在一个实施例中,如图2所示,提供了一种应用程序升级方法,以该方法应用于图1中的终端为例进行说明,终端可以是手机、平板电脑等终端设备或其他智能终端,终端还可以是其他可供用户使用、能够安装各种应用程序的终端设备,如计算机设备等。该方法具体包括:
步骤210:从服务器下载匹配的应用增量包。
应用可以为办公类应用、通信类应用、多媒体播放应用、安全类应用等各类应用程序。当应用程序更新升级时,应用程序的开发者会在服务器上发布应用程序新版本的应用安装包,同时开发者也会在服务器上发布对应于应用程序现有各版本的应用增量包。应用增量包可以简单描述为新版本应用安装包与现有版本应用安装包的差异部分。每一个现有版本的应用程序都有与其版本对应的应用增量包。应用增量包适用于已安装了现有版本应用程序并希望对应用程序进行升级的用户,用户无需重新下载新版的应用安装包,下载数据量较小的应用增量包可与已下载的现有版本安装包进行组合并升级,可以节省下载流量、存储空间和应用升级时间。
例如,“手机管家”应用的最新版本为5.0,而应用程序具有4.7,4.8和4.9三个现有版本,不同的用户的终端上可能安装的“手机管家”应用的版本不同,因此,为了满足不同用户的应用升级需求,开发者需要分别提供从4.7、4.8和从4.9三个版本升级到5.0版本的应用增量包并在服务器上发布。
在一个实施例中,以终端的操作***为Andriod(安卓)操作***为例,Andriod应用程序的安装包是apk格式的文件,可以将apk文件看成是一个zip压缩包,采用二进制差分的算法将现有版本应用程序和新版本应用程序的apk文件中的差异文件提取出来,将文件生成一个应用增量包,如patch包。在下文中均以终端采用安卓***为例进行说明,在其他实施例中,该方法也可应用于采用ios***、应用安装包为ipa格式的安装包的终端或采用其他***的终端,此外,在其他实施例中也可以采用其他方法生成应用增量包。
在本实施例中,针对应用程序的应用安装包和应用增量包多渠道发布的情况,服务器在发布新版本的应用安装包时,批量将渠道信息写入应用安装包的注释区域,然后将写入渠道信息的应用安装包发送至对应的发布渠道。我们可以将安装包简单地视为内容区域和注释区域,其中内容区域是安装包的核心,里面具有安装包的所有内容,注释区域是用来注释说明安装包的。注释区域是否存在,内容如何等并不会影响安装包本身的内容。例如,在安卓***中,终端可以通过UpdateTaskManager中的writeApkComment方法,用IO流将不同渠道的渠道标识批量写入全量更新的安装包的末端即注释区域。
而服务器发送至各发布渠道的同一应用最新版本的各已有版本对应的应用增量包相同,为两个版本应用安装包中内容部分的差异内容,服务器发送至各发布渠道的应用增量包不包含渠道信息。
终端向服务器发送应用升级请求,服务器根据应用升级请求中的应用信息查找存储的与应用版本相匹配的应用增量包,并将应用增量包的下载地址返回给服务器,终端访问下载地址并从服务器上下载与待升级应用匹配的应用增量包。
步骤220:获取本地的当前版本应用安装包。
当前版本应用安装包为应用当前使用版本的应用全量包。终端下载应用增量包后,根据待升级应用的应用信息如应用标识等查找应用安装包的本地存储位置,查找到存储位置后获取当前版本应用安装包。
在一个实施例中,在获取当前版本应用安装包之后,读取当前版本应用安装包中的渠道信息,判断渠道信息写在当前版本应用安装包中的注释区域还是内容区域,若渠道信息写在内容区域,则将渠道信息从当前版本应用安装包的内容区域转移到注释区域;若渠道信息写在注释区域,则执行将当前版本应用安装包中注释区域的渠道信息进行备份的步骤。
具体的,在安卓***中将渠道信息从当前版本应用安装包的内容区域转移到注释区域的方法为通过UpdateTaskManager中的readChannel命令将渠道信息从内容区域的配置文件中读取出来,再通过UpdateTaskManager中的writeApkComment方法,使用IO流将从配置文件中读取出来的渠道信息写入内容区域的末端即添加到注释区域,并将渠道信息从内容区域删除,完成渠道信息从内容区域到注释区域的转移。
通过渠道信息写入内容区域的安装包进行处理,将渠道信息从内容区域转移到注释区域,可以保证当前版本应用安装包的内容区域不包含渠道信息,使下面安装包与增量包的合成过程能够正确进行。
步骤230:将当前版本应用安装包中注释区域的渠道信息进行备份并将渠道信息从注释区域中删除。
渠道信息为下载应用安装包即全量包时的下载渠道信息,同一应用的应用安装包或应用增量包可以通过不同的渠道进行发布以供用户进行下载,例如应用商店、豌豆荚或应用宝等为不同的应用发布渠道。渠道信息包括渠道号,渠道号与应用的发布渠道一一对应。
终端读取应用安装包中注释区域的渠道信息,将读取到的渠道信息进行备份存储,如可以存储至缓存中,将渠道信息备份存储后将其从安装包的注释区域中删除,使当前版本的应用安装包只保留内容部分。具体的,在安卓***中可以通过UpdateTaskManager中的readChannel命令读取渠道信息。
步骤240:根据应用增量包与当前版本应用安装包生成目标版本安装包。
目标版本安装包即为最新版本的应用安装包。终端将经过渠道信息处理的应用增量包与获取的当前版本应用安装包生成目标版本安装包。例如,终端可以采用补丁合成工具将应用增量包与当前版本应用安装包进行合成。如应用增量包为“手机管家”应用的由4.8版本升级到5.0版本的应用增量包是通过终端采用补丁合成工具将该应用增量包与当前版本号为4.8的应用安装包进行合成,最终得到版本号为5.0的目标版本安装包。
具体的,上述补丁合成工具可以采用差分压缩算法,例如可以调用C语言或C++语言编译差分压缩算法生成SO文件,再调用SO文件对应用增量包和目标版本安装包进行合成。C语言或C++语言的编译处理速度较高,可以有效提高增量包和安装包的合成处理速度。需要说明的是,增量包和安装包的合成处理方法并不限于本实施例,也可以采用其他方法进行处理。
步骤250:将备份的渠道信息写入目标版本安装包中的注释区域并安装目标版本安装包。
终端生成目标版本安装包之后,获取备份存储的当前版本应用安装包中注释区域的渠道信息,并将渠道信息写入生成的安装包中从而得到完整的目标版本安装包。具体的,终端可以通过UpdateTaskManager中的writeApkComment方法将渠道信息写入生成的安装包的注释区域,即写入安装包的末端。得到完整的目标版本安装包对其进行安装,从而完成对应用程序的升级更新。
上述实施方式中的应用程序升级方法,终端在根据下载的应用增量包与本地的当前版本应用安装包生成目标版本安装包之前,将当前版本应用安装包中注释区域的渠道信息进行备份后删除,并在生成目标版本安装包后重新写入目标版本安装包的注释区域,从而使用户在使用应用增量包完成升级过程的同时能够保留下载渠道的渠道信息,使得用户在使用应用程序时终端可以获取渠道信息并上报渠道信息给服务器。从而使得服务器在不影响应用下载渠道信息获得的情况下,只需向各发布渠道提供统一的不携带渠道信息的应用增量包就可满足多渠道发布的应用的升级需求,无需服务器在生成应用增量包后,针对多渠道的发布将应用增量包先解压、再将渠道信息逐一写入应用增量包中,最后再将写入渠道信息的应用增量包进行打包,大大简化了应用增量包的打包过程、提高了打包效率。
在一个实施例中,从服务器下载匹配的应用增量包的步骤之前还包括以下步骤:
获取应用的最新版本信息。
终端每隔一段固定时长,自动检测终端上已安装的应用是否需要升级更新。终端向服务器发送获取应用最新版本信息的请求,请求中包含应用标识,例如应用标识可以为应用的名称、编码等等。最新版本信息可以包括应用的最新版本号、最新版本的发布时间等信息。
根据最新版本信息判断应用是否需要升级。
服务器接收到获取应用最新版本信息的请求后,根据应用标识查找应用的最新版本信息并返回给终端,终端接收最新版本信息,并获取已安装的应用程序的当前版本信息,将两个版本信息进行比较,判断最新版本信息中的版本号是否新于当前版本信息中的版本号,若是,则判断已安装的应用程序需要升级更新;若否,则说明已安装的应用程序为最新版本,无需升级。
当应用需要升级时,向服务器发送应用升级请求,升级请求至少包括应用的当前版本信息。
当终端判断已安装的应用程序需要升级时,终端向服务器发送应用升级请求,升级请求中包括需要升级的应用的当前版本信息,还包括应用标识。应用的当前版本信息至少包括应用当前版本号、也可以包括当前版本的下载时间等信息。服务器接收到应用升级请求后,根据请求中的应用标识确定需要提供应用增量包的应用,并根据请求中的应用当前版本号查找与其版本匹配的应用增量包,将与应用当前版本匹配的应用增量包的下载地址返回给终端。在本实施例中,默认终端通过需要升级的应用下载应用安装包时的渠道向服务器发送升级请求。
在另一个实施例中,终端向服务器发送应用升级请求之前,向用户提示应用升级信息,具体的,可以在显示界面上显示可以进行应用升级的应用信息和是否需要升级的确认选项,应用信息可以包括应用名称、应用的当前版本号和最新版本号,确认选项包括确认升级选项、暂不升级选项和稍后提醒升级选项等,确认选项也可以包括全部确认升级选项,部分应用升级选项。终端检测到用户的确认升级选项后,向服务器发送应用升级请求。
接收服务器发送的与应用当前版本匹配的应用增量包的下载地址。
终端接收服务器发送的应用增量包的下载地址并访问下载地址。
终端通过获取应用的最新版本信息,可以定期检测服务器上应用是否有新版本发布,能够及时获取应用的升级信息并对应用进行实时更新,保证应用程序的流畅使用。
在一个实施例中,从服务器下载匹配的应用增量包的步骤之后还包括:
获取服务器发布的应用增量包的校验值;
校验值为对应用增量包的内容进行计算得到的校验值,服务器在向各渠道发布应用增量包之前,对应用增量包的内容进行计算得到校验值,并将校验值也发送给各发布渠道。终端从服务器下载匹配的应用增量包后,向服务器发送增量包校验值获取请求,终端通过发布渠道获取应用增量包的校验值。具体的,服务器可以采用哈希算法计算得到应用增量包的MD5值为校验值,服务器也可以采用其他校验算法计算应用增量包的校验值。
计算下载的应用增量包的校验值;
终端对从服务器下载的匹配的应用增量包的内容进行计算,得到下载的应用增量包的校验值,同样,终端可以采用哈希算法计算得到下载的应用增量包的MD5值为校验值,也可以采用其他算法计算下载的应用增量包的校验值。
判断服务器发布的校验值与计算得到的应用增量包的校验值是否一致,若不一致,向服务器发送应用全量包下载请求;若一致,执行获取本地应用的当前版本安装包的步骤。
终端将从获取的服务器发布的应用增量包的校验值与计算得到的下载的应用增量包的校验值进行比较并判断是否一致,当校验值一致时,表明下载的应用增量包内容与发布的内容完全一致,可以继续进行应用升级,若两个校验值不一致,表明应用增量包在下载和发布的过程中的内容发生了变化,发生变化的应用增量包不能够与已有版本的安装包进行合成,终端无法继续升级过程,终端向服务器发送应用全量包下载请求,应用全量包下载请求包含应用标识信息。终端接收应用全量包下载请求后根据应用标识向终端发送应用最新版本的安装包的下载地址,终端访问下载地址从服务器上下载应用的最新版本安装包,并将应用重新进行安装。
终端从服务器下载匹配的应用增量包后,将下载的应用增量包的内容与服务器发布的应用增量包的内容进行校验,可以检验应用增量包在发布传送的过程中是否被篡改,也可以避免终端将内容发生变化的应用增量包与当前版本安装包进行错误合成,浪费应用程序的升级时间,能够提高应用升级过程中的安全性和合成过程的效率。
在一个实施例中,渠道信息包括渠道号、渠道号位数和渠道号识别码,将当前版本安装包中注释区域的渠道信息进行备份的步骤之前还包括:
读取当前版本安装包的渠道号、渠道号位数和渠道号识别码。
每个应用的发布渠道都具有唯一的渠道号,渠道号位数为渠道号所占位数,例如,渠道号为二进制数,渠道号位数为二进制数的位数,渠道号识别码为渠道号的标识码,渠道号、渠道号位数和渠道号识别码三者之间可以相互验证,从而能够唯一确定发布渠道,增强渠道信息发布的安全性。具体的,渠道号、渠道号位数和渠道号识别码三个信息可以连续存储在注释区域,并且每个信息所占的位数和存储的位置是确定的。终端从当前版本安装包的注释区域中分别读取渠道号、渠道号位数和渠道号识别码。
从服务器获取应用对应的渠道信息;
在本实施例中,默认终端下载应用增量包的下载渠道与应用下载安装包时的下载渠道一致。终端向服务器发送渠道信息获取请求,服务器接收请求后向终端发送发布渠道对应的渠道信息。
将从服务器获取的渠道信息中的渠道号、渠道号位数和渠道号识别码逐一与读取的渠道号、渠道号位数和渠道号识别码进行比较并判断是否一致,若不一致,向服务器发送应用全量包下载请求;若一致,执行将当前版本安装包中注释区域的渠道信息进行备份的步骤。
终端将读取的渠道信息中的渠道号、渠道号位数和渠道号识别码逐一与服务器返回的渠道信息进行比较,当三个信息完全一致时,表明渠道信息完全一致,可以继续进行渠道信息的备份,当其中的至少一个信息不一致时,表明渠道信息发生篡改,读取的渠道信息不可用,终端向服务器发送应用全量包下载请求,进行最新版本应用安装包的全量安装。
在另一个实施例中,终端可以直接从当前版本安装包的注释区域中读取连续的渠道信息,计算渠道信息的校验值,并获取服务器上发布的对应发布渠道的渠道信息校验值,将两个校验值进行比较判断是否一致。
终端通过在对当前版本安装包的渠道信息进行备份删除之前,对其与服务器发布的渠道信息进行校验,可以防止渠道信息发生变化或被篡改时,终端将错误的渠道信息写入合成的安装包中,避免服务器后期统计分析渠道信息时出现错误。
在一个实施例中,根据应用增量包与当前版本安装包生成目标版本安装包的步骤之后还包括:
计算目标版本安装包的校验值;
终端对从本地获取的目标版本安装包的内容进行计算,得到目标版本安装包的校验值。
从服务器获取应用目标版本全量包的校验值;
应用目标版本全量包为服务器上发布的应用的最新版本安装包,服务器在向最新版本安装包的注释区域写入渠道信息之前,对最新版本安装包的内容进行计算得到校验值。终端生成目标版本安装包后向服务器发送目标版本安装包校验值获取请求,请求中包含应用标识,服务器根据应用标识查找对应的安装包的校验值并发送给服务器,服务器接收标版本安装包的校验值。具体的,本实施例中服务器和终端均可以采用哈希算法计算得到安装包的MD5值作为为校验值,需要说明的是也可以采用其他校验算法计算校验值。
判断目标版本全量包的校验值与计算得到的目标版本安装包的校验值是否一致,若不一致,向服务器发送应用全量包下载请求;若一致,执行将备份的渠道信息写入目标版本安装包的注释区域并对目标版本安装包进行安装的步骤。
终端将从服务器获取的应用目标版本全量包的校验值与计算得到的最新版本安装包的校验值进行比较判断是否一致,当校验值一致时,表明生成的安装包的内容与服务器发布的最新版本安装包的内容完全一致,可以继续进行应用升级,获取备份的渠道信息并将渠道信息写入生成的目标版本安装包中。若两个校验值不一致时,终端无法继续升级过程,终端向服务器发送应用全量包下载请求,应用全量包下载请求包含应用标识信息。终端接收应用全量包下载请求后根据应用标识向终端发送应用最新版本的安装包的下载地址,终端访问下载地址从服务器上下载应用的最新版本安装包,并将应用重新进行安装。
终端将生成的安装包的内容与服务器发布的最新版本安装包的内容进行校验,可以检验合成得到的目标版本安装包的内容是否正确,也可以避免终端将内容错误的安装包进行安装,提高应用程序升级过程中的安全性和准确性。
在一个实施例中,如图3所示,提供了一种应用程序升级装置,包括下载模块310、安装包获取模块320、备份删除模块330、合成模块340和安装模块350,其中:
下载模块310,用于从服务器下载匹配的应用增量包;
安装包获取模块320,用于获取本地的当前版本应用安装包;
备份删除模块330,用于将当前版本应用安装包中注释区域的渠道信息进行备份并将渠道信息从注释区域中删除;
合成模块340,用于根据应用增量包与当前版本应用安装包生成目标版本安装包;
安装模块350,用于将备份的渠道信息写入目标版本安装包中的注释区域并安装目标版本安装包。
在一个实施例中,如图4所示,应用程序升级装置还包括:版本获取模块302、升级判断模块304、升级请求模块306和地址接收模块308,其中:
版本获取模块302,用于获取应用的最新版本信息;
升级判断模块304,用于根据最新版本信息判断应用是否需要升级;
升级请求模块306,用于当应用应用需要升级时,向服务器发送应用升级请求,升级请求至少包括应用的当前版本信息;
地址接收模块308,用于接收服务器发送的与应用当前版本匹配的应用增量包的下载地址。
在一个实施例中,如图5所示,应用程序升级装置还包括:增量包校验值获取模块312、增量包校验值计算模块314和增量包校验值比较模块316,其中:
增量包校验值获取模块312,用于获取服务器发布的应用增量包的校验值;
增量包校验值计算模块314,用于计算下载的应用增量包的校验值;
增量包校验值比较模块316,用于判断服务器发布的校验值与计算得到的应用增量包的校验值是否一致,若不一致,向服务器发送应用全量包下载请求;若一致,执行获取本地应用的当前版本安装包的步骤。
在一个实施例中,渠道信息包括渠道号、渠道号位数和渠道号识别码,如图6所示,应用程序升级装置还包括:渠道信息读取模块322、渠道信息获取模块324和渠道信息比较模块326,其中:
渠道信息读取模块322,用于读取当前版本安装包的渠道号、渠道号位数和渠道号识别码;
渠道信息获取模块324,用于从服务器获取应用对应的渠道信息;
渠道信息比较模块326,用于将从服务器获取的渠道信息中的渠道号、渠道号位数和渠道号识别码逐一与读取的渠道号、渠道号位数和渠道号识别码进行比较并判断是否一致,若不一致,向服务器发送应用全量包下载请求;若一致,执行将当前版本安装包中注释区域的渠道信息进行备份的步骤。
在一个实施例中,如图7所示,应用程序升级装置还包括:安装包校验值计算模块342、安装包校验值获取模块344和安装包校验值比较模块346,其中:
安装包校验值计算模块342,用于计算目标版本安装包的校验值;
安装包校验值获取模块344,用于从服务器获取应用目标版本全量包的校验值;
安装包校验值比较模块346,用于判断目标版本全量包的校验值与计算得到的目标版本安装包的校验值是否一致,若不一致,向服务器发送应用全量包下载请求;若一致,执行将备份的渠道信息写入目标版本安装包的注释区域并对目标版本安装包进行安装的步骤。
在一个实施例中,如图8所示,提供一种终端800,包括通过***总线连接的处理器810、内存储器820、非易失性存储介质840和网络接口830。其中,该终端800的非易失性存储介质840中存储有操作***842和应用程序升级装置844,应用程序升级装置844用于实现对终端800上安装的应用程序进行升级。终端800的处理器810用于提供计算和控制能力,被配置为执行一种用户行为记录方法。内存储器820为非易失性存储介质840中的应用程序升级装置844的运行提供环境,内存储器820中可储存有计算机可读指令,该计算机可读指令被处理器执行时,可使得处理器执行一种应用程序升级方法。网络接口830用于据以与外部的服务器通过网络连接通信。本领域技术人员可以理解,图8中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的终端的限定,具体的终端可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种应用程序升级方法,其特征在于,所述方法包括以下步骤:
从服务器下载匹配的应用增量包;
获取本地的当前版本应用安装包;
将所述当前版本应用安装包中注释区域的渠道信息进行备份并将所述渠道信息从所述注释区域中删除;
根据所述应用增量包与所述当前版本应用安装包生成目标版本安装包;
将备份的所述渠道信息写入所述目标版本安装包中的注释区域并安装所述目标版本安装包。
2.根据权利要求1所述的应用程序升级方法,其特征在于,所述从服务器下载匹配的应用增量包的步骤之前还包括:
获取应用的最新版本信息;
根据所述最新版本信息判断所述应用是否需要升级;
当所述应用需要升级时,向服务器发送应用升级请求,所述升级请求至少包括所述应用的当前版本信息;
接收所述服务器发送的与所述应用当前版本匹配的应用增量包的下载地址。
3.根据权利要求1所述的应用程序升级方法,其特征在于,所述从服务器下载匹配的应用增量包的步骤之后还包括:
获取所述服务器发布的所述应用增量包的校验值;
计算下载的所述应用增量包的校验值;
判断所述服务器发布的校验值与所述计算得到的所述应用增量包的校验值是否一致,若不一致,向所述服务器发送应用全量包下载请求;若一致,执行所述获取本地应用的当前版本安装包的步骤。
4.根据权利要求1所述的应用程序升级方法,其特征在于,所述渠道信息包括渠道号、渠道号位数和渠道号识别码,所述将所述当前版本安装包中注释区域的渠道信息进行备份的步骤之前还包括:
读取所述当前版本安装包的渠道号、渠道号位数和渠道号识别码;
从所述服务器获取所述应用对应的渠道信息;
将从所述服务器获取的所述渠道信息中的渠道号、渠道号位数和渠道号识别码逐一与读取的所述渠道号、所述渠道号位数和所述渠道号识别码进行比较并判断是否一致,若不一致,向所述服务器发送应用全量包下载请求;若一致,执行所述将所述当前版本安装包中注释区域的渠道信息进行备份的步骤。
5.根据权利要求1所述的应用程序升级方法,其特征在于,所述根据所述应用增量包与所述当前版本安装包生成目标版本安装包的步骤之后还包括:
计算目标版本安装包的校验值;
从所述服务器获取所述应用目标版本全量包的校验值;
判断所述目标版本全量包的校验值与计算得到的所述目标版本安装包的校验值是否一致,若不一致,向所述服务器发送应用全量包下载请求;若一致,执行将备份的所述渠道信息写入所述目标版本安装包的注释区域并对所述目标版本安装包进行安装的步骤。
6.一种应用程序升级装置,其特征在于,所述装置包括:
下载模块,用于从服务器下载匹配的应用增量包;
安装包获取模块,用于获取本地的当前版本应用安装包;
备份删除模块,用于将所述当前版本应用安装包中注释区域的渠道信息进行备份并将所述渠道信息从所述注释区域中删除;
合成模块,用于根据所述应用增量包与所述当前版本应用安装包生成目标版本安装包;
安装模块,用于将备份的所述渠道信息写入所述目标版本安装包中的注释区域并安装所述目标版本安装包。
7.根据权利要求6所述的应用程序升级装置,其特征在于,所述装置还包括:
版本获取模块,用于获取应用的最新版本信息;
升级判断模块,用于根据所述最新版本信息判断所述应用是否需要升级;
升级请求模块,用于当所述应用所述应用需要升级时,向服务器发送应用升级请求,所述升级请求至少包括所述应用的当前版本信息;
地址接收模块,用于接收所述服务器发送的与所述应用当前版本匹配的应用增量包的下载地址。
8.根据权利要求6所述的应用程序升级装置,其特征在于,所述装置还包括:
增量包校验值获取模块,用于获取所述服务器发布的所述应用增量包的校验值;
增量包校验值计算模块,用于计算下载的所述应用增量包的校验值;
增量包校验值比较模块,用于判断所述服务器发布的校验值与所述计算得到的所述应用增量包的校验值是否一致,若不一致,向所述服务器发送应用全量包下载请求;若一致,执行所述获取本地应用的当前版本安装包的步骤。
9.根据权利要求6所述的应用程序升级装置,其特征在于,所述渠道信息包括渠道号、渠道号位数和渠道号识别码,所述装置还包括:
渠道信息读取模块,用于读取所述当前版本安装包的渠道号、渠道号位数和渠道号识别码;
渠道信息获取模块,用于从所述服务器获取所述应用对应的渠道信息;
渠道信息比较模块,用于将从所述服务器获取的所述渠道信息中的渠道号、渠道号位数和渠道号识别码逐一与读取的所述渠道号、所述渠道号位数和所述渠道号识别码进行比较并判断是否一致,若不一致,向所述服务器发送应用全量包下载请求;若一致,执行所述将所述当前版本安装包中注释区域的渠道信息进行备份的步骤。
10.根据权利要求6所述的应用程序升级装置,其特征在于,所述装置还包括:
安装包校验值计算模块,用于计算目标版本安装包的校验值;
安装包校验值获取模块,用于从所述服务器获取所述应用目标版本全量包的校验值;
安装包校验值比较模块,用于判断所述目标版本全量包的校验值与计算得到的所述目标版本安装包的校验值是否一致,若不一致,向所述服务器发送应用全量包下载请求;若一致,执行将备份的所述渠道信息写入所述目标版本安装包的注释区域并对所述目标版本安装包进行安装的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710193623.9A CN107797818A (zh) | 2017-03-28 | 2017-03-28 | 应用程序升级方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710193623.9A CN107797818A (zh) | 2017-03-28 | 2017-03-28 | 应用程序升级方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107797818A true CN107797818A (zh) | 2018-03-13 |
Family
ID=61531035
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710193623.9A Pending CN107797818A (zh) | 2017-03-28 | 2017-03-28 | 应用程序升级方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107797818A (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108874437A (zh) * | 2018-04-26 | 2018-11-23 | 深圳爱加密科技有限公司 | 一种android应用程序的在线云更新方法 |
CN109445827A (zh) * | 2018-11-16 | 2019-03-08 | 网易(杭州)网络有限公司 | 一种游戏更新的方法及装置、电子设备、存储介质 |
CN109582323A (zh) * | 2018-11-23 | 2019-04-05 | 网易(杭州)网络有限公司 | 应用安装包的增量更新方法、装置、终端及服务器 |
CN110362333A (zh) * | 2019-06-29 | 2019-10-22 | 上海淇馥信息技术有限公司 | 一种客户端升级阻碍的快速解决方法、装置和电子设备 |
CN111459531A (zh) * | 2020-04-21 | 2020-07-28 | 广州虎牙科技有限公司 | 应用程序升级方法、装置、电子设备及存储介质 |
WO2021128269A1 (zh) * | 2019-12-27 | 2021-07-01 | 深圳市欢太科技有限公司 | 文件处理方法、文件处理装置、移动终端及服务器 |
CN113094076A (zh) * | 2021-03-16 | 2021-07-09 | 杭州电魂网络科技股份有限公司 | 基于版本控制的版本迭代方法、装置、设备及介质 |
CN114124924A (zh) * | 2020-08-25 | 2022-03-01 | 深圳市欢太科技有限公司 | 一种确定配置信息的方法、设备及*** |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102857555A (zh) * | 2012-08-03 | 2013-01-02 | 深圳中兴网信科技有限公司 | 终端、服务器和软件升级方法 |
CN105808284A (zh) * | 2014-12-31 | 2016-07-27 | 广州市动景计算机科技有限公司 | 一种增量升级方法及应用其的服务器 |
-
2017
- 2017-03-28 CN CN201710193623.9A patent/CN107797818A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102857555A (zh) * | 2012-08-03 | 2013-01-02 | 深圳中兴网信科技有限公司 | 终端、服务器和软件升级方法 |
CN105808284A (zh) * | 2014-12-31 | 2016-07-27 | 广州市动景计算机科技有限公司 | 一种增量升级方法及应用其的服务器 |
Non-Patent Citations (2)
Title |
---|
ELDWINWANG: "【进阶】全民系列游戏安卓多渠道增量更新方案", 《HTTPS://GAMEINSTITUTE.QQ.COM/COMMUNITY/DETAIL/100059》 * |
腾讯音乐技术团队: "全民K歌增量升级方案", 《HTTPS://JUEJIN.IM/ENTRY/57551FE1A341310063D4BD80》 * |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108874437A (zh) * | 2018-04-26 | 2018-11-23 | 深圳爱加密科技有限公司 | 一种android应用程序的在线云更新方法 |
CN108874437B (zh) * | 2018-04-26 | 2022-01-21 | 深圳爱加密科技有限公司 | 一种android应用程序的在线云更新方法 |
CN109445827A (zh) * | 2018-11-16 | 2019-03-08 | 网易(杭州)网络有限公司 | 一种游戏更新的方法及装置、电子设备、存储介质 |
CN109582323A (zh) * | 2018-11-23 | 2019-04-05 | 网易(杭州)网络有限公司 | 应用安装包的增量更新方法、装置、终端及服务器 |
CN110362333A (zh) * | 2019-06-29 | 2019-10-22 | 上海淇馥信息技术有限公司 | 一种客户端升级阻碍的快速解决方法、装置和电子设备 |
WO2021128269A1 (zh) * | 2019-12-27 | 2021-07-01 | 深圳市欢太科技有限公司 | 文件处理方法、文件处理装置、移动终端及服务器 |
CN111459531A (zh) * | 2020-04-21 | 2020-07-28 | 广州虎牙科技有限公司 | 应用程序升级方法、装置、电子设备及存储介质 |
CN114124924A (zh) * | 2020-08-25 | 2022-03-01 | 深圳市欢太科技有限公司 | 一种确定配置信息的方法、设备及*** |
CN113094076A (zh) * | 2021-03-16 | 2021-07-09 | 杭州电魂网络科技股份有限公司 | 基于版本控制的版本迭代方法、装置、设备及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107797818A (zh) | 应用程序升级方法及装置 | |
CN110058873B (zh) | 应用页面更新方法、装置、设备和存储介质 | |
US7007049B2 (en) | Device memory management during electronic file updating | |
CN1641583B (zh) | 自描述软件映象更新组件 | |
CN107506221A (zh) | 应用程序升级方法、装置及设备 | |
US20050114852A1 (en) | Tri-phase boot process in electronic devices | |
CN107783776B (zh) | 固件升级包的处理方法及装置、电子设备 | |
CN104346167A (zh) | 生成应用渠道包的方法及装置 | |
CN104063225B (zh) | 锁屏主题开发方法及装置 | |
CN110166543A (zh) | 应用程序处理方法、装置和计算机设备 | |
CN106657361B (zh) | 一种代码添加混淆的安卓安装包ota升级方法 | |
WO2023065823A1 (zh) | 一种软件开发工具包修复方法、终端、服务器及设备 | |
CN111290801A (zh) | 数据处理方法、装置、计算机设备和存储介质 | |
CN110837391B (zh) | 应用程序的热更新方法及装置、存储介质及电子设备 | |
CN113867768A (zh) | 操作***处理方法、装置、电子设备及存储介质 | |
CN111417927B (zh) | 资源权限处理方法、装置、存储介质及芯片 | |
CN112286543B (zh) | 一种应用服务部署方法及装置 | |
CN108536444B (zh) | 插件编译方法、装置、计算机设备和存储介质 | |
CN111610990B (zh) | 一种应用程序升级的方法、装置和相关*** | |
CN106778270B (zh) | 一种恶意应用程序的检测方法及*** | |
CN113220314B (zh) | App资源加载及apk生成方法、装置、设备及介质 | |
CN111046389A (zh) | 固件组件安全更新的方法以及用以实施的携行计算机站 | |
CN109002710A (zh) | 一种检测方法、装置及计算机可读存储介质 | |
CN114237654A (zh) | 一种ota升级方法及*** | |
CN111736863A (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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20180313 |