CN112947981A - 应用程序资源更新方法、装置、终端设备及服务器 - Google Patents

应用程序资源更新方法、装置、终端设备及服务器 Download PDF

Info

Publication number
CN112947981A
CN112947981A CN202010258185.1A CN202010258185A CN112947981A CN 112947981 A CN112947981 A CN 112947981A CN 202010258185 A CN202010258185 A CN 202010258185A CN 112947981 A CN112947981 A CN 112947981A
Authority
CN
China
Prior art keywords
resource
version
package
application program
updating
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.)
Withdrawn
Application number
CN202010258185.1A
Other languages
English (en)
Inventor
杨建培
李超
蔡鸿华
肖力
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen Mingyuan Yunke E Commerce Co ltd
Original Assignee
Shenzhen Mingyuan Yunke E Commerce Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shenzhen Mingyuan Yunke E Commerce Co ltd filed Critical Shenzhen Mingyuan Yunke E Commerce Co ltd
Priority to CN202010258185.1A priority Critical patent/CN112947981A/zh
Publication of CN112947981A publication Critical patent/CN112947981A/zh
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/658Incremental updates; Differential 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是本申请一实施例提供的应用程序资源更新方法的实现原理示意图;
图3是本申请一实施例提供的应用程序资源更新方法的流程示意图;
图4是本申请另一实施例提供的应用程序资源更新方法的流程示意图;
图5是本申请一实施例提供的交互示意图;
图6是本申请实施例提供的应用程序资源更新装置的结构示意图;
图7是本申请实施例提供的终端设备的结构示意图;
图8是本申请实施例提供的服务器的结构示意图。
具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定***结构、技术之类的具体细节,以便透彻理解本申请实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本申请。在其它情况中,省略对众所周知的***、装置、电路以及方法的详细说明,以免不必要的细节妨碍本申请的描述。
应当理解,当在本申请说明书和所附权利要求书中使用时,术语“包括”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在本申请说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
如在本申请说明书和所附权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。
另外,在本申请说明书和所附权利要求书的描述中,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
在本申请说明书中描述的参考“一个实施例”或“一些实施例”等意味着在本申请的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特点。由此,在本说明书中的不同之处出现的语句“在一个实施例中”、“在一些实施例中”、“在其他一些实施例中”、“在另外一些实施例中”等不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除非是以其他方式另外特别强调。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。
目前,终端设备上安装有各种功能的应用程序,由于应用程序在显示及应用形态上的不断改进,需要对应用程序资源进行实时的动态更新。在打开应用程序时,可以根据需要设置应用程序的更新模式;例如,设置为只在无线网络Wi-Fi环境下进行应用程序资源的更新,或者在移动网络环境下也可以进行更新。通过打开应用程序,在运行应用程序时,可以检查资源是否需要更新;也可以是在新版本出来之后,提交给应用市场,由应用市场通知用户更新应用程序资源,相应的应用程序自身不再需要检查是否更新。
本申请另一种更新情况的确定是通过服务器端,客户端可以设置固定的信息发送时间,将应用程序的当前版本和当前版本对应的资源版本发送至服务器;服务器在资源数据库中搜索是否有与应用程序当前版本兼容且版本高于接收到的资源版本的资源信息,或者服务器将接收到的资源版本的安装包与资源数据库中的资源安装包进行逐一对比,若相同,则通知客户端无需更新,若不同,则进行下一步的资源差量包的计算,并将资源差量包与更新指令打包生成资源包链接信息发送至客户端,指示客户端根据资源差量包进行本地资源的更新。
应用程序资源更新是指应用程序的界面资源的变化,不涉及应用程序本地插件的变化,也就是主要针对静态资源文件、资源版本描述文件以及资源更新指令文件等资源文件进行更新。
参见图1,是本申请一实施例提供的***架构示意图;所述客户端可以是手机10、笔记本电脑20、超级个人计算机30(ultra-mobile personal computer,UMPC)等终端设备上的应用程序;终端设备还可以包括但不限于平板电脑、可穿戴设备、车载设备、增强现实(augmented reality,AR)/虚拟现实(virtual reality,VR)设备、上网本、个人数字助理(personal digital assistant,PDA)等,本申请实施例对客户端的载体即终端设备的具体类型不作任何限制。
终端设备通过有线或无线方式与服务器40进行通信,在客户端检查到应用程序资源需要更新或者在接收到应用市场的更新提示后,客户端发送更新的请求信息至服务器40,访问远程服务器,在接收到服务器40的反馈信息后,根据反馈信息执行更新动作,完成对应用程序资源的版本更新。
另外,通过位于终端设备的客户端采用有线或无线的方式与服务器进行通信,通过数据交互由终端设备完成应用程序资源的更新;其中,所采用的无线通信方式包括互联网、Wi-Fi网络或移动网络,其中移动网络可以包括现有的2G(如全球移动通信***(英文:Global System for Mobile Communication,GSM))、3G(如通用移动通信***(英文:Universal Mobile Telecommunications System,UMTS))、4G(如FDD LTE、TDD LTE)以及4.5G、5G等。
参见图2,是本申请一实施例提供的应用程序资源更新方法的实现原理示意图。在客户端检测到需要进行应用程序资源更新或收到更新通知时,客户端获取本地应用程序的当前版本信息app_version_1以及本地资源的第一资源版本res_version_1,将当前版本信息app_version_1和第一资源版本res_version_1通过有线或无线方式发送至服务器后,服务器根据当前版本信息app_version_1,在数据库中查找并匹配到与之兼容的最高版本的静态资源,即第二资源版本res_version_2的应用程序资源;服务器将第一资源版本res_version_1的资源与第二资源版本res_version_2的资源进行全量资源对比,得到资源差量包和更新指令res_version_1_2_cmd;将资源差量包和更新指令res_version_1_2_cmd打包后,生成资源包链接信息反馈至客户端;客户端根据资源包链接信息下载资源包,对资源包进行解压,得到资源差量包及更新指令文件;根据资源差量包,对第一资源版本res_version_1的资源执行更新指令文件中的更新动作,并得到第二资源版本res_version_2的安装包,可以根据安装包将第二资源版本res_version_2的应用程序资源安装至本地,完成应用程序资源的更新。
作为示例而非限定,所述的终端设备还可以使可穿戴设备。当所述终端设备为可穿戴设备时,该可穿戴设备还可以是应用穿戴式技术对日常穿戴进行智能化设计、开发出可以穿戴的设备的总称,如眼镜、手套、手表、服饰及鞋等。可穿戴设备即直接穿在身上,或是整合到用户的衣服或配件的一种便携式设备。可穿戴设备不仅仅是一种硬件设备,更是通过软件支持以及数据交互、云端交互来实现强大的功能。广义穿戴式智能设备包括功能全、尺寸大、可不依赖智能手机实现完整或者部分的功能,如智能手表或智能眼镜等,以及只专注于某一类应用功能,需要和其它设备如智能手机配合使用,如各类进行体征监测的智能手环、智能首饰等。
图3示出了本申请提供的应用程序资源更新方法的示意性流程图,进一步详细说明客户端的具体实现流程。当该应用程序资源更新方法的执行主体为客户端时,可以适用于安卓、iOS等操作***的终端设备,具体包括以下步骤:
步骤S301,获取应用程序的当前版本信息,及所述应用程序对应资源的第一资源版本。
在一种可能的实现方式中,所述应用程序为客户端的本地应用,所述应用程序对应资源为客户端本地资源,即安装在客户端本地的应用程序及资源文件。客户端在接收到应用市场通知应用程序资源更新或通过与服务器信息交互检测到应用程序资源需要更新时,客户端可以获取应用程序的版本以及应用程序对应的资源版本。
具体的,与应用程序对应的资源包括静态资源文件、资源版本描述文件、资源更新指令文件。客户端可以根据以上文件获取应用程序对应的资源安装包以及资源安装包的版本信息。
需要说明的是,一种版本的应用程序可能存在多个版本与之匹配或兼容的资源文件,即在应用程序资源需要更新的同时,应用程序对应的版本可能不会发生更新或改变,只是针对相应的资源信息进行更新。
步骤S302,将所述当前版本信息和所述第一资源版本发送至服务器,并接收服务器反馈的资源包链接信息。
在一种可能的实现方式中,所述资源包链接信息为服务器将资源差量包和更新指令打包生成的资源链接地址,所述资源差量包为所述服务器根据所述第一资源版本与第二资源版本的资源安装包比较结果生成的资源信息,所述第二资源版本为与所述应用程序的当前版本信息兼容的最高资源版本。
具体地,所述资源差量包可以为在生成新版本的资源安装包时,缓存在服务器资源数据库中,与客户端本地资源版本对应的差量包;可以设置相应的缓存时间,或者根据资源安装包的更新时间节点,以新的资源差量包替换之前缓存的差量包;还可以将多种资源差量包在预设时间内同时缓存。所生成的资源差量包还可以是持久存储在服务器的资源数据库中,根据资源安装包的更新时间节点(不同于客户端请求更新的时间节点,早于客户端请求更新的时间节点),由服务器对比之前版本的资源信息,生成对应更新后的版本相对之前版本的资源差量包。所生成的资源差量包还可以是在客户端请求资源更新时,根据客户端的应用程序版本信息以及资源版本信息,实时进行差量计算,得到的资源差量包。
需要说明的是,在服务器的资源数据库中可能存在多种版本的资源安装包,不同版本的资源安装包与不同版本的应用程序对应匹配,例如客户端的操作***不同,则在不同操作***中的应用程序安装包对应不同版本的资源安装包;在服务器端需要查询与当前版本信息的应用程序兼容的最高版本的资源安装包,将最高版本的资源安装包与客户端发送的第一资源版本的资源安装包进行比较,得到资源差量包。
另外,当最高版本的资源安装包与客户端发送的第一资源版本的资源安装包存在差异时,说明应用程序的资源需要更新,在生成比较结果的同时,依据比较的结果生成更新指令,更新指令包括新增、移除、替换等指令动作。
步骤S303,根据所述资源包链接信息下载资源包,并根据所述资源包执行所述更新指令,将所述应用程序对应的所述第一资源版本的资源更新至所述第二资源版本。
在一种可能的实现方式中,客户端根据资源包链接信息下载资源包,资源包为资源差量包和更新指令打包后的压缩包。由于不是对新版本资源安装包的全量打包,降低了下载过程的使用流量,加快了资源包的下载速度,提高了资源更新的效率。
具体的,资源包中包括更新指令文件,更新指令文件中记载新版本的资源安装包相对旧版本的资源安装包需要执行的新增、移除或替换的更新动作。
例如,第一资源版本的安装包包括{1,2,3,4,5},第二资源版本的资源安装包包括{1,2,4,5′,6},则更新指令文件中记载:将3移除、将5替换为5′、新增6;相应的,所得到的资源差量包包括{5′,6};最终根据资源包执行更新指令文件中的更新动作,将第一资源版本的安装包{1,2,3,4,5}更新至第二资源版本的资源安装包{1,2,4,5′,6}。
可选的,在所述根据所述资源包链接信息下载资源包之后,包括:
A1、对所述资源包进行数字签名校验;
A2、校验通过后,解压所述资源包,得到所述资源差量包,并对所述资源差量包中的每个文件进行完整性检测;
A3、将校验结果和检测结果发送至所述服务器。
在一种可能的实现方式中,数字签名为服务器在根据资源差量包和更新指令打包后的资源包计算并设置的签名值,由服务器根据资源包生成签名秘钥,通过特定的哈希HASH函数(如H5)将资源包进行计算得到摘要信息,并采用私钥进行加密。客户端在下载资源包后,验证资源包的签名,通过公钥对资源包进行解密;解密后则校验通过,客户端对资源包进行解压,得到压缩包里的资源差量包,并对资源差量包中的每个文件进行完整性检测;为了防止所下载文件被篡改,服务器会采用散列函数计算资源差量包中的文件的特征值,客户端可以采用相同的散列函数的校验算法,计算每个文件的特征值,若两个特征值相同,则证明下载到文件完整。
在数字签名校验以及完整性检测通过后,将校验结果及检测结果发送至服务器,以通知服务器端下载成功。
由于下载的资源包中包括资源差量包,并非完整的全量资源包,所以通过对资源包的签名校验以及完整性检测的双重验证,确保所下载的资源差量包的信息完整性和可靠性。
可选的,所述将所述应用程序对应的所述第一资源版本的资源更新至所述第二资源版本,包括:
根据所述第二资源版本的资源文件,将所述第一资源版本的资源文件进行新增、移除或替换,得到应用程序对应的所述第二资源版本的资源。
在一种可能的实现方式中,客户端下载的资源包中还包括更新指令文件,更新指令文件中记载着针对资源安装包中资源文件的新增、移除或替换的更新操作,即根据更新指令文件,完成对应用程序资源的版本更新及本地安装。
通过本实施例,获取应用程序的当前版本信息,并发送至服务器,获取服务器根据当前版本信息反馈的资源包链接信息,根据资源连接信息下载需要更新的资源差量包,实现对应用程序资源的动态更新;由于是根据资源差量包的更新,大幅度提高了更新效率,降低了运行资源的浪费和流量的浪费。
如图4所示,本申请另一实施例提供的应用程序资源更新方法的流程示意图,进一步详细说明服务器端的具体实现流程。当该应用程序资源更新方法的执行主体为服务器时,具体包括以下步骤:
步骤S401,接收客户端发送的应用程序的当前版本信息,及所述应用程序对应资源的第一资源版本。
在一种可能的实现方式中,服务器接收客户端发送的资源的应用程序的当前版本信息,及资源的第一资源版本。
在本申请的另一种实施例中,服务器接收到客户端发送的应用程序当前版本信息及资源的第一资源版本后,在资源数据库中,查找与当前版本信息的应用程序兼容的最高版本的资源安装包,将最高版本的资源安装包与第一资源版本的资源安装包进行对比,若内容相同,则通知客户端,无需更新,若内容不同,则继续对两个版本的资源安装包进行差量计算,得到资源差量包,并将资源差量包和更新指令进行打包生成资源链接信息,将资源链接信息发送至客户端,由客户端根据资源链接信息下载资源差量包,并根据资源差量包执行更新指令,将第一资源版本更新至与应用程序兼容的第二资源版本。
步骤S402,将所述第一资源版本的资源与第二资源版本的资源进行对比,得到资源差量包,所述第二资源版本为与所述应用程序的当前版本信息兼容的最高资源版本。
在一种可能的实现方式中,将所述第一资源版本的资源与第二资源版本的资源的对比,实际是将第一资源版本的资源安装包与第二资源版本的资源安装包的对比;通过采用差量算法,将第一资源版本的资源安装包与第二资源版本的安装包进行全量静态资源的对比;具体的,可以通过字符串按位对比的方式,或采用差量bsdiff算法;若第一资源版本的资源安装包与第二资源版本的安装包不同,则通过差量对比后生成资源差量包和资源更新指令。其中,全量静态资源包括图片、视频、音乐等静态资源文件。
另外,服务器在选择将所述第一资源版本的资源与第二资源版本的资源进行对比之前,通过在服务器中建立的应用版本及资源版本索引作为匹配参照,查询与所述应用程序的当前版本信息兼容的最高资源版本。
步骤S403,将所述资源差量包和更新指令打包生成资源包链接信息,并将所述资源包链接信息发送至客户端;所述资源包链接信息用于指示客户端下载所述资源包并执行所述更新指令,将所述应用程序的第一资源版本的资源更新至所述第二资源版本。
在一种可能的实现方式中,所述资源包链接信息为下载资源包的链接地址,服务器将链接地址发送至客户端,指示客户端根据链接地址下载资源包。资源包中包括需要更新的资源差量安装包和更新指令文件,更新指令文件中记载新增、移除、替换等更新操作,客户端可以根据更新指令文件的记载以及下载资源差量包的安装包执行更新动作,将应用程序的第一资源版本的资源更新至所述第二资源版本。
可选的,在所述将所述资源差量包和更新指令打包生成资源包链接信息,并将所述资源包链接信息发送至客户端之后,包括:
接收客户端发送的校验结果和检测结果,所述校验结果为客户端对所述资源包进行数字签名校验得到的结果,所述检测结果为校验通过后,客户端对解压后的所述资源差量包中的每个文件进行完整性检测的结果。
在一种可能的实现方式中,在生成资源包链接信息之前,服务器还对资源包设置签名秘钥;服务器根据资源包生成签名秘钥,通过特定的哈希HASH函数(如H5)将资源包进行计算得到摘要信息,并采用私钥进行加密。由客户端在下载资源包后,验证资源包的签名,通过公钥对资源包进行解密;解密后则校验通过,客户端对资源包进行解压,得到压缩包里的资源差量包,并对资源差量包中的每个文件进行完整性检测;为了防止所下载文件被篡改,服务器会采用散列函数计算资源差量包中的文件的特征值,客户端可以采用相同的散列函数的校验算法,计算每个文件的特征值,若两个特征值相同,则证明下载到文件完整。
可选的,所述资源包链接信息用于指示客户端下载所述资源包,并对所述第一资源版本的资源执行所述更新指令中的新增、移除或替换的更新操作。
作为示例而非限定,若第一资源版本的资源安装包与第二资源版本的安装包不同,则通过差量对比后生成资源差量包和资源更新指令,将资源差量包和资源更新指令打包生成资源包,客户端在下载到资源包后,通过解压可以获取资源包中的更新指令文件,更新指令文件中记载新增、移除、替换等更新操作,客户端可以根据更新指令文件的记载以及下载资源差量包的安装包执行更新动作,将应用程序的第一资源版本的资源更新至所述第二资源版本。
如图5所示,本申请一实施例提供的交互示意图,包括以下步骤,由于该交互方式的实现原理与上述图3和图4相同,则不再赘述。
1、客户端获取应用程序的当前版本信息,及所述应用程序对应资源的第一资源版本;
2、客户端将所述当前版本信息和所述第一资源版本发送至服务器;
3、服务器根据所述第一资源版本与第二资源版本的资源安装包比较结果生成资源差量包和更新指令,将资源差量包和更新指令打包生成资源包链接信息;
4、服务器反馈资源包链接信息至客户端;
5、客户端根据所述资源包链接信息下载资源包,并根据所述资源包执行所述更新指令,将所述应用程序对应的所述第一资源版本的资源更新至所述第二资源版本。
通过本实施例,接收客户端发送的应用程序的当前版本信息,及所述应用程序对应资源的第一资源版本;将所述第一资源版本的资源与第二资源版本的资源进行对比,得到资源差量包,所述第二资源版本为与所述应用程序的当前版本信息兼容的最高资源版本;将所述资源差量包和更新指令打包生成资源包链接信息,并将所述资源包链接信息发送至客户端;所述资源包链接信息用于指示客户端下载所述资源包并执行所述更新指令,将所述应用程序的第一资源版本的资源更新至所述第二资源版本;实现对应用程序资源的动态更新;由于是根据资源差量包的更新,大幅度提高了更新效率,降低了运行资源的浪费和流量的浪费。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
对应于上文实施例所述的应用程序资源更新方法,图5示出了本申请实施例提供的应用程序资源更新装置的结构框图,为了便于说明,仅示出了与本申请实施例相关的部分。
参照图6,该装置包括:
获取单元61,用于获取应用程序的当前版本信息,及所述应用程序对应资源的第一资源版本;
接收单元62,用于将所述当前版本信息和所述第一资源版本发送至服务器,并接收服务器反馈的资源包链接信息,所述资源包链接信息为服务器将资源差量包和更新指令打包生成的资源链接地址,所述资源差量包为所述服务器根据所述第一资源版本与第二资源版本的资源安装包比较结果生成的资源信息,所述第二资源版本为与所述应用程序的当前版本信息兼容的最高资源版本;
更新单元63,用于根据所述资源包链接信息下载资源包,并根据所述资源包执行所述更新指令,将所述应用程序对应的所述第一资源版本的资源更新至所述第二资源版本。
需要说明的是,上述装置/单元之间的信息交互、执行过程等内容,由于与本申请方法实施例基于同一构思,其具体功能及带来的技术效果,具体可参见方法实施例部分,此处不再赘述。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述***中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
图7为本申请一实施例提供的终端设备的结构示意图。如图6所示,该实施例的终端设备7包括:至少一个处理器70(图7中仅示出一个)、客户端73、存储器71以及存储在所述存储器71中并可在所述至少一个处理器70上运行的计算机程序72,所述处理器70执行所述计算机程序72时实现上述任意各个应用程序资源更新方法实施例中的步骤。
所述终端设备7可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。该终端设备可包括,但不仅限于,处理器70、存储器71。本领域技术人员可以理解,图7仅仅是终端设备7的举例,并不构成对终端设备7的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如还可以包括输入输出设备、网络接入设备等。
所称处理器70可以是中央处理单元(Central Processing Unit,CPU),该处理器70还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
所述存储器71在一些实施例中可以是所述终端设备7的内部存储单元,例如终端设备7的硬盘或内存。所述存储器71在另一些实施例中也可以是所述终端设备7的外部存储设备,例如所述终端设备7上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,所述存储器71还可以既包括所述终端设备7的内部存储单元也包括外部存储设备。所述存储器71用于存储操作***、应用程序、引导装载程序(BootLoader)、数据以及其他程序等,例如所述计算机程序的程序代码等。所述存储器61还可以用于暂时地存储已经输出或者将要输出的数据。
图8为本申请一实施例提供的服务器的结构示意图。如图8所示,该实施例的服务器8包括:至少一个处理器80(图8中仅示出一个)、资源数据库83、存储器81以及存储在所述存储器81中并可在所述至少一个处理器80上运行的计算机程序82,所述处理器80执行所述计算机程序82时实现上述任意各个应用程序资源更新方法实施例中的步骤。
该服务器8可包括,但不仅限于,处理器80、存储器81。本领域技术人员可以理解,图8仅仅是服务器8的举例,并不构成对服务器8的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如还可以包括输入输出设备、网络接入设备等。
所称处理器80可以是中央处理单元(Central Processing Unit,CPU),该处理器80还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
所述存储器81在一些实施例中可以是所述服务器8的内部存储单元,例如服务器8的硬盘或内存。所述存储器81在另一些实施例中也可以是所述服务器8的外部存储设备,例如所述服务器8上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,所述存储器81还可以既包括所述服务器8的内部存储单元也包括外部存储设备。所述存储器81用于存储操作***、应用程序、引导装载程序(BootLoader)、数据以及其他程序等,例如所述计算机程序的程序代码等。所述存储器61还可以用于暂时地存储已经输出或者将要输出的数据。
本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现可实现上述各个方法实施例中的步骤。
本申请实施例提供了一种计算机程序产品,当计算机程序产品在移动终端上运行时,使得移动终端执行时实现可实现上述各个方法实施例中的步骤。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质至少可以包括:能够将计算机程序代码携带到拍照装置/终端设备的任何实体或装置、记录介质、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,RandomAccess Memory)、电载波信号、电信信号以及软件分发介质。例如U盘、移动硬盘、磁碟或者光盘等。在某些司法管辖区,根据立法和专利实践,计算机可读介质不可以是电载波信号和电信信号。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
在本申请所提供的实施例中,应该理解到,所揭露的装置/网络设备和方法,可以通过其它的方式实现。例如,以上所描述的装置/网络设备实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
以上所述实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。

Claims (10)

1.一种应用程序资源更新方法,其特征在于,包括:
获取应用程序的当前版本信息,及所述应用程序对应资源的第一资源版本;
将所述当前版本信息和所述第一资源版本发送至服务器,并接收服务器反馈的资源包链接信息,所述资源包链接信息为服务器将资源差量包和更新指令打包生成的资源链接地址,所述资源差量包为所述服务器根据所述第一资源版本与第二资源版本的资源安装包比较结果生成的资源信息,所述第二资源版本为与所述应用程序的当前版本信息兼容的最高资源版本;
根据所述资源包链接信息下载资源包,并根据所述资源包执行所述更新指令,将所述应用程序对应的所述第一资源版本的资源更新至所述第二资源版本。
2.如权利要求1所述的应用程序资源更新方法,其特征在于,在所述根据所述资源包链接信息下载资源包之后,包括:
对所述资源包进行数字签名校验;
校验通过后,解压所述资源包,得到所述资源差量包,并对所述资源差量包中的每个文件进行完整性检测;
将校验结果和检测结果发送至所述服务器。
3.如权利要求1所述的应用程序资源更新方法,其特征在于,所述将所述应用程序对应的所述第一资源版本的资源更新至所述第二资源版本,包括:
根据所述第二资源版本的资源文件,将所述第一资源版本的资源文件进行新增、移除或替换,得到应用程序对应的所述第二资源版本的资源。
4.一种应用程序资源更新方法,其特征在于,包括:
接收客户端发送的应用程序的当前版本信息,及所述应用程序对应资源的第一资源版本;
将所述第一资源版本的资源与第二资源版本的资源进行对比,得到资源差量包,所述第二资源版本为与所述应用程序的当前版本信息兼容的最高资源版本;
将所述资源差量包和更新指令打包生成资源包链接信息,并将所述资源包链接信息发送至客户端;所述资源包链接信息用于指示客户端下载所述资源包并执行所述更新指令,将所述应用程序的第一资源版本的资源更新至所述第二资源版本。
5.如权利要求4所述的应用程序资源更新方法,其特征在于,在所述将所述资源差量包和更新指令打包生成资源包链接信息,并将所述资源包链接信息发送至客户端之后,包括:
接收客户端发送的校验结果和检测结果,所述校验结果为客户端对所述资源包进行数字签名校验得到的结果,所述检测结果为校验通过后,客户端对解压后的所述资源差量包中的每个文件进行完整性检测的结果。
6.如权利要求4所述的应用程序资源更新方法,其特征在于,所述资源包链接信息用于指示客户端下载所述资源包,并对所述第一资源版本的资源执行所述更新指令中的新增、移除或替换的更新操作。
7.一种应用程序资源更新装置,其特征在于,包括:
获取单元,用于获取应用程序的当前版本信息,及所述应用程序对应资源的第一资源版本;
接收单元,用于将所述当前版本信息和所述第一资源版本发送至服务器,并接收服务器反馈的资源包链接信息,所述资源包链接信息为服务器将资源差量包和更新指令打包生成的资源链接地址,所述资源差量包为所述服务器根据所述第一资源版本与第二资源版本的资源安装包比较结果生成的资源信息,所述第二资源版本为与所述应用程序的当前版本信息兼容的最高资源版本;
更新单元,用于根据所述资源包链接信息下载资源包,并根据所述资源包执行所述更新指令,将所述应用程序对应的所述第一资源版本的资源更新至所述第二资源版本。
8.一种终端设备,其特征在于,包括:客户端、存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如权利要求1至3任一项所述的方法。
9.一种服务器,其特征在于,包括资源数据库、存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如权利要求4至6任一项所述的方法。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至6任一项所述的方法。
CN202010258185.1A 2020-04-03 2020-04-03 应用程序资源更新方法、装置、终端设备及服务器 Withdrawn CN112947981A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010258185.1A CN112947981A (zh) 2020-04-03 2020-04-03 应用程序资源更新方法、装置、终端设备及服务器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010258185.1A CN112947981A (zh) 2020-04-03 2020-04-03 应用程序资源更新方法、装置、终端设备及服务器

Publications (1)

Publication Number Publication Date
CN112947981A true CN112947981A (zh) 2021-06-11

Family

ID=76234498

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010258185.1A Withdrawn CN112947981A (zh) 2020-04-03 2020-04-03 应用程序资源更新方法、装置、终端设备及服务器

Country Status (1)

Country Link
CN (1) CN112947981A (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113590664A (zh) * 2021-08-09 2021-11-02 平安银行股份有限公司 一种资源获取方法、装置、服务器及存储介质
CN113691820A (zh) * 2021-07-28 2021-11-23 广州心娱网络科技有限公司 直播间礼物更新方法、装置、终端设备及可读存储介质
CN113821244A (zh) * 2021-07-30 2021-12-21 北京达佳互联信息技术有限公司 离线包更新方法、装置、***、电子设备及存储介质
CN114115926A (zh) * 2022-01-28 2022-03-01 深圳微迅信息科技有限公司 一种程序共享方法、***、计算机设备及可读存储介质
CN114637528A (zh) * 2022-05-07 2022-06-17 太平金融科技服务(上海)有限公司深圳分公司 资源更新方法、装置、计算机设备、存储介质和程序产品

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150215374A1 (en) * 2013-03-13 2015-07-30 Google Inc. Delivering an update for a web application
CN106686073A (zh) * 2016-12-19 2017-05-17 北京东方车云信息技术有限公司 一种信息处理方法及***
CN108647041A (zh) * 2018-04-02 2018-10-12 金证财富南京科技有限公司 一种混合型APP本地Web资源热更新机制
CN109391509A (zh) * 2018-04-16 2019-02-26 深圳思为科技有限公司 一种更新应用程序的方法、***及应用服务器
CN109471653A (zh) * 2018-09-29 2019-03-15 百度在线网络技术(北京)有限公司 应用程序的更新方法、电子设备、服务器和存储介质
CN109672534A (zh) * 2017-10-16 2019-04-23 腾讯科技(深圳)有限公司 网络资源的处理方法、装置、存储介质和电子装置
CN109918098A (zh) * 2017-12-12 2019-06-21 优信数享(北京)信息技术有限公司 一种app热更新的提测方法,装置及***
CN110515647A (zh) * 2019-08-28 2019-11-29 北京思维造物信息科技股份有限公司 一种静态资源管理方法、装置、设备和存储介质

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150215374A1 (en) * 2013-03-13 2015-07-30 Google Inc. Delivering an update for a web application
CN106686073A (zh) * 2016-12-19 2017-05-17 北京东方车云信息技术有限公司 一种信息处理方法及***
CN109672534A (zh) * 2017-10-16 2019-04-23 腾讯科技(深圳)有限公司 网络资源的处理方法、装置、存储介质和电子装置
CN109918098A (zh) * 2017-12-12 2019-06-21 优信数享(北京)信息技术有限公司 一种app热更新的提测方法,装置及***
CN108647041A (zh) * 2018-04-02 2018-10-12 金证财富南京科技有限公司 一种混合型APP本地Web资源热更新机制
CN109391509A (zh) * 2018-04-16 2019-02-26 深圳思为科技有限公司 一种更新应用程序的方法、***及应用服务器
CN109471653A (zh) * 2018-09-29 2019-03-15 百度在线网络技术(北京)有限公司 应用程序的更新方法、电子设备、服务器和存储介质
CN110515647A (zh) * 2019-08-28 2019-11-29 北京思维造物信息科技股份有限公司 一种静态资源管理方法、装置、设备和存储介质

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113691820A (zh) * 2021-07-28 2021-11-23 广州心娱网络科技有限公司 直播间礼物更新方法、装置、终端设备及可读存储介质
CN113821244A (zh) * 2021-07-30 2021-12-21 北京达佳互联信息技术有限公司 离线包更新方法、装置、***、电子设备及存储介质
CN113821244B (zh) * 2021-07-30 2024-05-07 北京达佳互联信息技术有限公司 离线包更新方法、装置、***、电子设备及存储介质
CN113590664A (zh) * 2021-08-09 2021-11-02 平安银行股份有限公司 一种资源获取方法、装置、服务器及存储介质
CN114115926A (zh) * 2022-01-28 2022-03-01 深圳微迅信息科技有限公司 一种程序共享方法、***、计算机设备及可读存储介质
CN114637528A (zh) * 2022-05-07 2022-06-17 太平金融科技服务(上海)有限公司深圳分公司 资源更新方法、装置、计算机设备、存储介质和程序产品
CN114637528B (zh) * 2022-05-07 2022-08-30 太平金融科技服务(上海)有限公司深圳分公司 资源更新方法、装置、计算机设备、存储介质和程序产品

Similar Documents

Publication Publication Date Title
CN112947981A (zh) 应用程序资源更新方法、装置、终端设备及服务器
CN107786504B (zh) Elf文件发布方法、elf文件校验方法、服务器及终端
US9075693B2 (en) Methods for updating applications
US9244673B2 (en) System and method for updating application archive files
US9582513B2 (en) Accessing data in a compressed container through dynamic redirection
WO2017157178A1 (zh) 一种移动终端应用程序的更新方法和装置
CN105740016B (zh) 应用程序的增量发布方法和装置、升级方法和装置
CN111897846B (zh) 缓存数据校验方法、装置、设备及存储介质
CN111694589B (zh) 升级包生成方法、装置、服务器及计算机可读存储介质
CN110022558A (zh) 一种升级包的加密、解密方法和电子装置及存储介质
CN112241298A (zh) 页面显示方法及装置、存储介质、电子装置
CN110058867A (zh) 应用程序镜像打包、安装方法及计算机装置、存储介质
CN106126256A (zh) 一种驱动管理方法、装置及***
CN110069729B (zh) 一种应用的离线缓存方法和***
CN111432013B (zh) 配置项下发方法、配置项获取方法、设备及可读存储介质
CN111176685A (zh) 一种升级方法及装置
CN114064712A (zh) 数据访问方法、装置、电子设备及计算机可读存储介质
WO2019183806A1 (zh) 资源权限处理方法、装置、存储介质及芯片
WO2023217086A1 (zh) 资源文件更新方法、装置、设备及可读存储介质
CN107015821B (zh) 增量更新的方法和装置
CN112182518A (zh) 一种软件部署方法和装置
CN110851794A (zh) 媒体文件上链方法和装置、存储介质及电子装置
EP2680135B1 (en) Methods for updating applications
CN113867769A (zh) H5页面的展示方法及装置、存储介质及电子设备
CN115129425A (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
WW01 Invention patent application withdrawn after publication

Application publication date: 20210611

WW01 Invention patent application withdrawn after publication