资源更新方法、资源更新装置、存储介质及设备与流程
未命名
07-15
阅读:129
评论:0
1.本公开涉及计算机技术领域,具体而言,涉及资源更新方法、资源更新装置、计算机可读存储介质、电子设备。
背景技术:
2.随着终端设备以及游戏业的发展,涌现出大量的不同题材的游戏,以满足玩家的需求。随着游戏的品质升级,游戏包体越来越大,且更新频率也比较高,因此,在对游戏进行更新时,整包更新的方式难以实现。相关技术中,可以通过逐次叠加的方式进行更新,即每次更新都是基于上一次版本计算出的差异进行更新。
3.然而,相关技术中的更新方案,如果需要从某一版本更新到最新版本时(该版本与最新版本之间相隔多个版本),需要下载多个版本的差异文件并进行顺序更新。由于多个之间的差异文件存在冗余内容,因此,会造成用户的流量/带宽浪费,且需要用户等待较长的时间进行更新,导致用户的游玩成本上升;此外,由于各用户的客户端中的版本不同,其更新至最新版本所跨越的版本数量也不相同,因此,需要在服务器中维护多个版本的更新文件,浪费服务器资源,使得游戏厂商的运营成本升高。
4.需要说明的是,在上述背景技术部分公开的信息仅用于加强对本公开的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。
技术实现要素:
5.本公开的目的在于提供一种资源更新方法及装置、计算机可读存储介质及电子设备,可以解决相关技术中对应用程序进行更新时效率较差的问题。
6.本公开的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本公开的实践而习得。
7.根据本公开的第一方面,提供了一种资源更新方法,其特征在于,方法包括:获取应用程序对应的客户端资源,将客户端资源按照滚动窗口进行滚动得到多个客户端块资源;对客户端块资源进行差分编码得到客户端块编码结果,计算客户端块编码结果对应的客户端块校验和;获取待更新版本对应的索引文件,在客户端中创建索引文件对应的待更新版本资源框架;其中,待更新版本对应的索引文件用于指示多个待更新版本块校验和;在目标客户端块校验和与第一目标待更新块校验和相同时,确定目标客户端块校验和对应的目标客户端块资源为待更新版本资源框架所需要的资源,将目标客户端块资源填充至待更新版本资源框架中;其中,多个待更新版本块校验和中包括第一目标待更新块校验和,多个客户端块资源中包括目标客户端块资源;遍历多个客户端块资源对应的多个客户端块校验和,在多个待更新版本块校验和中存在与多个客户端块校验和不同的第二目标待更新块校验和时,下载第二目标待更新块校验和对应的待更新客户端块资源,将待更新客户端块资源填充至待更新版本资源框架中;在待更新版本资源框架填充完成后,删除客户端资源,采用待更新版本资源框架中的新版本客户端资源启动应用程序,以实现对应用程序的更新。
8.根据本公开的第二方面,提供了一种资源更新装置,装置包括:块资源获取模块,用于获取应用程序对应的客户端资源,将客户端资源按照滚动窗口进行滚动得到多个客户端块资源;块校验和计算模块,用于对客户端块资源进行差分编码得到客户端块编码结果,计算客户端块编码结果对应的客户端块校验和;索引文件获取模块,用于获取待更新版本对应的索引文件,在客户端中创建索引文件对应的待更新版本资源框架;其中,待更新版本对应的索引文件用于指示多个待更新版本块校验和;第一资源填充模块,用于在目标客户端块校验和与第一目标待更新块校验和相同时,确定目标客户端块校验和对应的目标客户端块资源为待更新版本资源框架所需要的资源,将目标客户端块资源填充至待更新版本资源框架中;其中,多个待更新版本块校验和中包括第一目标待更新块校验和,多个客户端块资源中包括目标客户端块资源;第二资源填充模块,用于遍历多个客户端块资源对应的多个客户端块校验和,在多个待更新版本块校验和中存在与多个客户端块校验和不同的第二目标待更新块校验和时,下载第二目标待更新块校验和对应的待更新客户端块资源,将待更新客户端块资源填充至待更新版本资源框架中;更新实现模块,用于在待更新版本资源框架填充完成后,删除客户端资源,采用待更新版本资源框架中的新版本客户端资源启动应用程序,以实现对应用程序的更新。
9.根据本公开的第三方面,提供了一种计算机可读存储介质,其上存储有计算机程序,程序被处理器执行时实现如上述实施例中第一方面的资源更新方法。
10.根据本公开的第四方面,提供了一种电子设备,包括:
11.一个或多个处理器;以及
12.存储器,用于存储一个或多个程序,当一个或多个程序被一个或多个处理器执行时,使得一个或多个处理器实现如上述实施例中第一方面的资源更新方法。
13.本公开实施例提供的技术方案可以包括以下有益效果:
14.本公开的一种实施例提供的资源更新方法中,可以获取应用程序对应的客户端资源,将客户端资源按照滚动窗口进行滚动得到多个客户端块资源,对客户端块资源进行差分编码得到客户端块编码结果,计算客户端块编码结果对应的客户端块校验和,获取待更新版本对应的索引文件,在客户端中创建索引文件对应的待更新版本资源框架,在目标客户端块校验和与第一目标待更新块校验和相同时,确定目标客户端块校验和对应的目标客户端块资源为待更新版本资源框架所需要的资源,将目标客户端块资源填充至待更新版本资源框架中,遍历多个客户端块资源对应的多个客户端块校验和,在多个待更新版本块校验和中存在与多个客户端块校验和不同的第二目标待更新块校验和时,下载第二目标待更新块校验和对应的待更新客户端块资源,将待更新客户端块资源填充至待更新版本资源框架中,在待更新版本资源框架填充完成后,删除客户端资源,采用待更新版本资源框架中的新版本客户端资源启动应用程序,以实现对应用程序的更新。一方面,只需要在服务器中维护最新版本的待更新版本,在进行应用程序的更新时,直接从客户端资源更新至最新版本,可以避免用户的流量/贷款浪费,缩短了更新时间,降低了用户的游玩成本;另一方面,无需在服务器中维护多个版本的文件,避免浪费服务器资源,降低了运营成本。
15.应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
16.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
17.图1示意性示出了可以应用本公开实施例的一种资源更新方法的示例性系统架构的示意图;
18.图2示意性示出本公开示例性实施例中资源更新方法的流程图;
19.图3示意性示出本公开示例性实施例中在客户端强校验和与待更新强校验和相同时,确定客户端块校验和与第一目标待更新块校验和相同的流程图;
20.图4示意性示出本公开示例性实施例中确定客户端弱校验和与待更新弱校验和相同的流程图;
21.图5示意性示出本公开示例性实施例中将目标客户端块资源填充至待更新版本资源框架中的多段空间中的示意图;
22.图6示意性示出本公开示例性实施例中在出现下载故障且恢复后,去重已下载的待更新客户端块资源,继续下载未下载的待更新客户端块资源的流程图;
23.图7示意性示出本公开示例性实施例中在将目标客户端块资源填充至待更新版本资源框架,且将待更新资源填充至待更新版本资源框架之后,待更新版本资源框架填充完成的流程图;
24.图8示意性示出本公开示例性实施例中根据多个待更新版本块校验和生成待更新版本对应的索引文件的流程图;
25.图9示意性示出本公开示例性实施例中在待更新版本信息与版本信息不同时,继续执行应用程序更新流程的流程图;
26.图10示意性示出本公开示例性实施例中根据应用程序更新列表得到待更新版本信息的流程图;
27.图11示意性示出本公开示例性实施例中另一种资源更新方法的流程图;
28.图12示意性示出本公开示例性实施例中再一种资源更新方法的流程图;
29.图13示意性示出本公开示例性实施例中一种资源更新装置的组成示意图;
30.图14示意性示出了适于用来实现本公开示例性实施例的电子设备的计算机系统的结构示意图。
具体实施方式
31.现在将参照附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本公开将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施方式中。此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施例中。在下面的描述中,提供许多具体细节从而给出对本公开的实施例的充分理解。然而,本领域技术人员将意识到,可以实践本公开的技术方案而没有特定细节中的一个或更多,或者可以采用其它的方法、组元、装
置、步骤等。在其它情况下,不详细示出或描述公知结构、方法、装置、实现、材料或者操作以避免模糊本公开的各方面。
32.附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个软件硬化的模块中实现这些功能实体或功能实体的一部分,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
33.随着终端设备以及游戏业的发展,涌现出大量的不同题材的游戏,以满足玩家的需求。通常情况下,可以通过服务器控制游戏逻辑,在服务器接收到客户端上传的指令之后,可以在服务器中根据游戏逻辑下发游戏协议,客户端根据游戏协议执行相关表现。
34.然而,当游戏逻辑较为复杂时,会出现同时将多个游戏协议发送至客户端的情况,客户端在接收到多个游戏协议时,会同时执行这些游戏协议,导致游戏内表现混乱。
35.图1示出了可以应用本公开实施例的资源更新方法的示例性系统架构的示意图。
36.如图1所示,系统架构1000可以包括终端设备1001、1002、1003中的一种或多种,网络1004和服务器1005。网络1004用以在终端设备1001、1002、1003和服务器1005之间提供通信链路的介质。网络1004可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
37.应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。比如服务器1005可以是多个服务器组成的服务器集群等。
38.用户可以使用终端设备1001、1002、1003通过网络1004与服务器1005交互,以接收或发送消息等。终端设备1001、1002、1003可以是具有显示屏的各种电子设备,包括但不限于智能手机、平板电脑、便携式计算机和台式计算机等等。另外,服务器1005可以是提供各种服务的服务器。
39.在一种实施例中,本公开的资源更新方法的执行主体可以是终端设备1001、1002、1003,终端设备1001、1002、1003可以获取应用程序对应的客户端资源,将客户端资源按照滚动窗口进行滚动得到多个客户端块资源,对客户端块资源进行差分编码得到客户端块编码结果,计算客户端块编码结果对应的客户端块校验和,并从服务器1005获取待更新版本对应的索引文件,在客户端中创建索引文件对应的待更新版本资源框架,在目标客户端块校验和与第一目标待更新块校验和相同时,确定目标客户端块校验和对应的目标客户端块资源为待更新版本资源框架所需要的资源,将目标客户端块资源填充至待更新版本资源框架中;其中,多个待更新版本块校验和中包括第一目标待更新块校验和,多个客户端块资源中包括目标客户端块资源,遍历多个客户端块资源对应的多个客户端块校验和,在多个待更新版本块校验和中存在与多个客户端块校验和不同的第二目标待更新块校验和时,下载第二目标待更新块校验和对应的待更新客户端块资源,将待更新客户端块资源填充至待更新版本资源框架中,在待更新版本资源框架填充完成后,删除客户端资源,采用待更新版本资源框架中的新版本客户端资源启动应用程序,以实现对应用程序的更新。
40.参考图2所示,示出了本示例性实施方式中资源更新方法的一种流程图,可以包括以下步骤:
41.步骤s210:获取应用程序对应的客户端资源,将客户端资源按照滚动窗口进行滚
动得到多个客户端块资源;
42.步骤s220:对客户端块资源进行差分编码得到客户端块编码结果,计算客户端块编码结果对应的客户端块校验和;
43.步骤s230,获取待更新版本对应的索引文件,在客户端中创建索引文件对应的待更新版本资源框架;其中,待更新版本对应的索引文件用于指示多个待更新版本块校验和;
44.步骤s240,在目标客户端块校验和与第一目标待更新块校验和相同时,确定目标客户端块校验和对应的目标客户端块资源为待更新版本资源框架所需要的资源,将目标客户端块资源填充至待更新版本资源框架中;其中,多个待更新版本块校验和中包括第一目标待更新块校验和,多个客户端块资源中包括目标客户端块资源;
45.步骤s250,遍历多个客户端块资源对应的多个客户端块校验和,在多个待更新版本块校验和中存在与多个客户端块校验和不同的第二目标待更新块校验和时,下载第二目标待更新块校验和对应的待更新客户端块资源,将待更新客户端块资源填充至待更新版本资源框架中;
46.步骤s260,在待更新版本资源框架填充完成后,删除客户端资源,采用待更新版本资源框架中的新版本客户端资源启动应用程序,以实现对应用程序的更新。
47.本公开的一种实施例提供的资源更新方法中,可以获取应用程序对应的客户端资源,将客户端资源按照滚动窗口进行滚动得到多个客户端块资源,对客户端块资源进行差分编码得到客户端块编码结果,计算客户端块编码结果对应的客户端块校验和,获取待更新版本对应的索引文件,在客户端中创建索引文件对应的待更新版本资源框架,在目标客户端块校验和与第一目标待更新块校验和相同时,确定目标客户端块校验和对应的目标客户端块资源为待更新版本资源框架所需要的资源,将目标客户端块资源填充至待更新版本资源框架中,遍历多个客户端块资源对应的多个客户端块校验和,在多个待更新版本块校验和中存在与多个客户端块校验和不同的第二目标待更新块校验和时,下载第二目标待更新块校验和对应的待更新客户端块资源,将待更新客户端块资源填充至待更新版本资源框架中,在待更新版本资源框架填充完成后,删除客户端资源,采用待更新版本资源框架中的新版本客户端资源启动应用程序,以实现对应用程序的更新。一方面,只需要在服务器中维护最新版本的待更新版本,在进行应用程序的更新时,直接从客户端资源更新至最新版本,可以避免用户的流量/贷款浪费,缩短了更新时间,降低了用户的游玩成本;另一方面,无需在服务器中维护多个版本的文件,避免浪费服务器资源,降低了运营成本。
48.下面,将结合图2及实施例对本示例性实施例中的资源更新方法的步骤s210~s260进行更详细的说明。
49.步骤s210,获取应用程序对应的客户端资源,将客户端资源按照滚动窗口进行滚动得到多个客户端块资源;
50.在本公开的一种示例实施例中,可以获取应用程序对应的客户端资源,将客户端资源按照滚动窗口进行滚动得到多个客户端块资源。具体的,在客户端中存储有应用程序对应的客户端资源,可以通过应用程序对应的客户端资源启动应用程序,可以获取应用程序对应的客户端资源,并按照滚动窗口进行滚动得到多个客户端块资源。
51.具体而言,滚动窗口可以为任意大小,在获取到客户端资源之后,可以对客户端资源进行滚动切分,得到多个客户端块资源。
52.举例而言,滚动窗口为4096字节,可以按照4096字节对客户端资源进行滚动切分,例如,第一次切分时,得到0~4095字节的客户端块资源,第二次切分时,得到1~4096字节的客户端块资源,直至客户端资源滚动完成,得到多个客户端块资源。
53.需要说明的是,本公开对于滚动窗口的具体大小以及将客户端资源按照滚动窗口进行滚动得到多个客户端块资源的具体方式并不做特殊限定。
54.步骤s220,对客户端块资源进行差分编码得到客户端块编码结果,计算客户端块编码结果对应的客户端块校验和;
55.在本公开的一种示例实施例中,在通过上述步骤得到多个客户端块资源之后,可以对客户端块资源进行差分编码得到客户端块编码结果,计算客户端块编码结果对应的客户端块校验和。
56.具体的,可以将上述步骤得到的多个客户端块资源进行差分编码,差分编码是指对多个客户端块资源,除第一个客户端块资源外,将其中各客户端块资源都表示为各该客户端块资源与其前一客户端块资源的差的编码,以得到个客户端块资源对应的客户端块编码结果,在得到编码结果之后,在通过对客户端块编码结果计算客户端块校验和。
57.具体而言,校验和是指在数据处理和数据通信领域中,用于校验目的的一组数据项的和。它通常是以十六进制为数制表示的形式。
58.需要说明的是,本公开对于对客户端块资源进行差分编码得到客户端块编码结果的具体方式以及计算客户端块编码结果对应的客户端块校验和的具体方式并不做特殊限定。
59.步骤s230,获取待更新版本对应的索引文件,在客户端中创建索引文件对应的待更新版本资源框架;
60.在本公开的一种示例实施例中,可以获取待更新版本对应的索引文件。其中,待更新版本对应的索引文件用于指示多个待更新版本块校验和。具体的,在需要对应用程序进行更新时,可以在服务器中获取待更新版本对应的索引文件,该索引文件中存储多个待更新版本块校验和。
61.具体而言,待更新版本块校验和是通过待更新版本对应的新版本客户端资源得到的,待更新版本块校验和可以用于指示待更新版本对应的新版本客户端资源的具体内容。
62.举例而言,可以对待更新版本对应的新版本客户端资源划分为多个待更新客户端块资源,并对多个待更新客户端块资源进行差分编码得到多个待更新块编码结果,再对多个待更新块编码结果计算各待更新块编码结果对应的待更新版本块校验和,并根据多个待更新版本块校验和生成待更新版本对应的索引文件。
63.需要说明的是,本公开对于获取待更新版本对应的索引文件的具体方式并不做特殊限定。
64.在本公开的一种示例实施例中,在通过上述得到待更新版本对应的索引文件之后,可以在客户端中创建索引文件对应的待更新版本资源换框架。具体的,待更新版本资源框架是根据待更新版本对应的索引文件创建的,即在待更新版本资源框架中,设置有索引文件中各待更新版本块校验和对应的待更新客户端块资源的下载位置,即待更新版本资源框架用于承载新版本客户端资源,在待更新版本资源框架填充完成之后,可以通过待更新版本资源框架中的新版本客户端资源启动应用程序。
65.需要说明的是,本公开对于待更新版本资源框架的具体形式以及在客户端中创建索引文件对应的待更新版本资源框架的具体方式并不做特殊限定。
66.步骤s240,在目标客户端块校验和与第一目标待更新块校验和相同时,确定目标客户端块校验和对应的目标客户端块资源为待更新版本资源框架所需要的资源,将目标客户端块资源填充至待更新版本资源框架中;
67.在本公开的一种示例实施例中,在通过上述步骤得到多个客户端块校验和,且得到待更新版本对应的索引文件(包括多个待更新版本块校验和)之后,可以在目标客户端块校验和与第一目标待更新块校验和相同时,确定目标客户端块校验和对应的目标客户端块资源为待更新版本资源框架所需要的资源,将目标客户端块资源填充至待更新版本资源框架中。其中,多个待更新版本块校验和中包括第一目标待更新块校验和,多个客户端块资源中包括目标客户端块资源。具体的,可以将读个客户端块校验和与多个待更新版本块校验和进行比较,若目标客户端块校验和与第一目标待更新版本块校验和相同,则表示目标客户端块校验和对应的目标客户端块资源与第一目标待更新版本块校验和对应的待更新版本块资源相同,即所需要更新的新版本中,仍有部分内容(目标客户端块资源)是旧版本中所具有的,即目标客户端块资源为待更新版本资源框架所需要的资源,此时,可以将目标客户端块资源填充至待更新版本资源框架中。
68.需要说明的是,本公开对于将目标客户端块资源填充至待更新版本资源框架中的具体方式并不做特殊限定。
69.在本公开的一种示例实施例中,可以比较客户端弱校验和与待更新弱校验和,在客户端弱校验和与待更新弱校验和相同时,比较客户端强校验和与待更新强校验和,在客户端强校验和与待更新强校验和相同时,确定客户端块校验和与第一目标待更新块校验和相同。参照图3所示,在客户端强校验和与待更新强校验和相同时,确定客户端块校验和与第一目标待更新块校验和相同,可以包括以下步骤s310~s330:
70.步骤s310,比较客户端弱校验和与待更新弱校验和;
71.步骤s320,在客户端弱校验和与待更新弱校验和相同时,比较客户端强校验和与待更新强校验和;
72.步骤s330,在客户端强校验和与待更新强校验和相同时,确定客户端块校验和与第一目标待更新块校验和相同。
73.在本公开的一种示例实施例中,可以比较客户端弱校验和与待更新弱校验和。具体的,在通过上述步骤得到客户端块资源之后,可以计算客户端块资源对应的客户端块校验和,其中,客户端块校验和包括客户端弱校验和与客户端强校验和,且在待更新版本对应的索引文件可以用于指示待更新版本块校验和,待更新版本块校验和包括待更新弱校验和与待更新强校验和,在得到上述校验和之后,可以先比较客户端弱校验和与待更新弱校验和,若客户端弱校验和与待更新弱校验和相同,再去比较客户端强校验和与待更新强校验和是否相同,若是客户端强校验和与待更新强校验和相同,则可以确定客户端块校验和与第一目标待更新块校验和相同。
74.具体而言,在比较客户端弱校验和与待更新弱校验和时,能够在多个待更新版本块校验和中筛选出部分可能与目标客户端块校验和相同的客户端块校验和,在待更新版本块校验和对应的待更新弱校验和与目标客户端块校验和对应的客户端弱校验和相同时,再
比较待更新版本块校验和对应的待更新强校验和与目标客户端块校验和对应的客户端强校验和,能够减少比较范围,提升确定第一目标待更新块校验和的效率,进而提升应用程序的更新效率。
75.在本公开的一种示例实施例中,可以采用16字节md4算法(message digest 4)得到客户端强校验和以及待更新强校验和,采用32~63位rolling算法(滚动窗口算法)或者32~63位adler32算法(校验和算法)得到待更新弱校验和以及客户端弱校验和。
76.需要说明的是,本公开对于得到客户端强校验和以及待更新强校验和以及得到待更新弱校验和以及客户端弱校验和的具体方式并不做特殊限定。
77.通过上述步骤s310~s330,可以比较客户端弱校验和与待更新弱校验和,在客户端弱校验和与待更新弱校验和相同时,比较客户端强校验和与待更新强校验和,在客户端强校验和与待更新强校验和相同时,确定客户端块校验和与第一目标待更新块校验和相同。
78.在本公开的一种示例实施例中,可以确定弱校验和检测位置,当客户端弱校验和与待更新弱校验和在弱校验和检测位置的字符相同时,比较客户端弱校验和与待更新弱校验和,确定客户端弱校验和与待更新弱校验和相同。参照图4所示,确定客户端弱校验和与待更新弱校验和相同,可以包括以下步骤s410~s430:
79.步骤s410,确定弱校验和检测位置;
80.步骤s420,当客户端弱校验和与待更新弱校验和在弱校验和检测位置的字符相同时,比较客户端弱校验和与待更新弱校验和;
81.步骤s430,确定客户端弱校验和与待更新弱校验和相同。
82.在本公开的一种示例实施例中,在通过上述步骤得到客户端弱校验和以及待更新弱校验和之后,可以确定弱校验和检测位置,当客户端弱校验和与待更新弱校验和在弱校验和检测位置的字符相同时,比较客户端弱校验和与待更新弱校验和,确定客户端弱校验和与待更新弱校验和相同。具体的,弱校验和检测位置是指在校验和中,用于确定客户端弱校验和与待更新弱校验和是否相同的位置,在客户端弱校验和与待更新弱校验和在弱校验和检测位置的字符相同时,再去整体比较客户端弱校验和与待更新弱校验和,在客户端弱校验和与待更新弱校验和整体相同时,确定客户端弱校验和与待更新弱校验和相同。
83.举例而言,可以将校验和中的第5位作为弱校验和检测位置,即在比较客户端弱校验和与待更新弱校验和时,可以获取客户端弱校验和中的第5位的字符,并获取待更新弱校验和中的第5位的字符,在客户端弱校验和中的第5位的字符与待更新弱校验和中的第5位的字符相同时,再去整体比较客户端弱校验和与待更新弱校验和是否相同。
84.在本公开的一种示例实施例中,可以先通过bit hash(校验算法)比较客户端弱校验和与待更新弱校验和在弱校验和检测位置的字符是否相同,再通过rsum_hash(校验算法)整体比较客户端弱校验和与待更新弱校验和是否相同,若客户端弱校验和与待更新弱校验和相同,则再比较客户端强校验和与待更新强校验和是否相同。
85.在本公开的一种示例实施例中,可以将目标客户端块资源填充至待更新版本资源框架中的多段空间中。具体的,在确定目标客户端块资源之后,若待更新版本资源框架中存在多段空间需要目标客户端块资源,即可以将目标客户端块资源填充至待更新版本资源框架中的多段空间中。
86.需要说明的是,本公开对于将目标客户端块资源填充至待更新版本资源框架中的多段空间中的具体方式并不做特殊限定。
87.举例而言,如图5所示,可以将客户端资源按照滚动窗口进行滚动得到多个客户端块资源(a、b、c、d...n),待更新版本资源框架501包括多段空间,可以将目标客户端块资源a填充至待更新版本资源框架中的多段空间中。
88.通过上述步骤s410~s430,可以确定弱校验和检测位置,当客户端弱校验和与待更新弱校验和在弱校验和检测位置的字符相同时,比较客户端弱校验和与待更新弱校验和,确定客户端弱校验和与待更新弱校验和相同。通过本公开的实施例,能够通过弱校验和检测位置处的字符是否相同,判断客户端弱校验和与待更新弱校验和是否相同,若弱校验和检测位置处的字符不同,则客户端弱校验和与待更新弱校验和必然不同,若弱校验和检测位置处的字符相同,再去整体比较客户端弱校验和与待更新弱校验和,能够在进行整体比较之前,通过弱校验和检测位置处的字符对比较范围进行缩小,提升客户端弱校验和与待更新弱校验和的检测效率,进而提升应用程序的更新效率。
89.步骤s250,遍历多个客户端块资源对应的多个客户端块校验和,在多个待更新版本块校验和中存在与多个客户端块校验和不同的第二目标待更新块校验和时,下载第二目标待更新块校验和对应的待更新客户端块资源,将待更新客户端块资源填充至待更新版本资源框架中;
90.在本公开的一种示例实施例中,在通过上述步骤得到多个客户端块校验和之后,可以遍历多个客户端块资源对应的多个客户端块校验和,在多个待更新版本块校验和中存在与多个客户端块校验和不同的第二目标待更新块校验和时,下载第二目标待更新块校验和对应的待更新客户端块资源,将待更新客户端块资源填充至待更新版本资源框架中。具体的,第二目标待更新块校验和是指,第二目标待更新块校验和对应的待更新客户端块资源是应用程序对应的客户端资源中所不具有的,即新版本客户端资源与应用程序对应的客户端资源(旧版本)不同的资源,此时,可以将第二目标待更新块校验和对应的待更新客户端块资源进行下载,并将该待更新客户端块资源填充至待更新版本资源框架中。
91.需要说明的是,本公开对于将待更新客户端块资源填充至待更新版本资源框架中的具体方式并不做特殊限定。
92.在本公开的一种示例实施例中,可以通过并行下载的方式下载第二目标待更新块校验和对应的待更新客户端块资源,在出现下载故障且恢复后,去重已下载的待更新客户端块资源,继续下载未下载的待更新客户端块资源。参照图6所示,在出现下载故障且恢复后,去重已下载的待更新客户端块资源,继续下载未下载的待更新客户端块资源,可以包括以下步骤s610~s620:
93.步骤s610,通过并行下载的方式下载第二目标待更新块校验和对应的待更新客户端块资源;
94.步骤s620,在出现下载故障且恢复后,去重已下载的待更新客户端块资源,继续下载未下载的待更新客户端块资源。
95.在本公开的一种示例实施例中,在通过上述步骤确定第二目标待更新块校验和之后,可以通过并行下载的方式下载多个第二目标待更新块校验和对应的待更新客户端资源。具体的,可以确定多个第二目标待更新块校验和对应的待更新客户端块资源,此时,可
以通过并行下载的方式同时下载多个待更新客户端块资源,能够节省多个待更新客户端块资源的下载时间。
96.在本公开的一种示例实施例中,在通过上述步骤正在下载第二目标待更新块校验和对应的待更新客户端块资源时,若出现下载故障,则下载停止,当故障恢复之后,可以检测已经下载的待更新客户端块资源,并去重已下载的待更新客户端块资源,即不再下载已下载的待更新客户端块资源,仅下载未下载的待更新客户端块资源。
97.需要说明的是,本公开对于下载故障的类型以及故障恢复的具体方式并不做特殊限定。
98.在本公开的一种示例实施例中,待更新客户端块资源支持断点续传。具体的,在出现下载故障时,则下载停止,当故障恢复之后,针对某一待更新客户端块资源,可以记录下载进度,当故障恢复之后,可以根据下载进度继续进行下载。
99.通过本实施的方案,能够提升待更新客户端块资源的下载效率,去重方案以及断点续创的方案,能够提升待更新客户端块资源的稳定性,从而提升了应用程序更新的效率。
100.通过上述步骤s610~s620,可以通过并行下载的方式下载第二目标待更新块校验和对应的待更新客户端块资源,在出现下载故障且恢复后,去重已下载的待更新客户端块资源,继续下载未下载的待更新客户端块资源。
101.步骤s260,在待更新版本资源框架填充完成后,删除客户端资源,采用待更新版本资源框架中的新版本客户端资源启动应用程序,以实现对应用程序的更新。
102.在本公开的一种示例实施例中,在待更新版本资源框架填充完成后,删除客户端资源,采用待更新版本资源框架中的新版本客户端资源启动应用程序,以实现对应用程序的更新。具体的,在通过上述步骤将多个目标客户端块资源以及多个第二目标待更新块校验和对应的待更新客户端块资源填充至待更新版本资源框架之后,若待更新版本资源框架填充完成,则表示应用程序对应的新版本客户端资源已经准备完成,此时可以将应用程序对应的客户端资源(旧版本)删除,并通过新版本客户端资源启动应用程序,实现对应用程序的更新。
103.在本公开的一种示例实施例中,可以获取待更新版本对应的多个非更新资源,下载多个非更新资源,在出现下载故障且恢复后,去重已下载的非更新资源,继续下载未下载的非更新资源,在多个非更新资源下载完成后,将多个非更新资源填充至待更新版本资源框架,在将目标客户端块资源填充至待更新版本资源框架,且将待更新资源填充至待更新版本资源框架之后,待更新版本资源框架填充完成。参照图7所示,在将目标客户端块资源填充至待更新版本资源框架,且将待更新资源填充至待更新版本资源框架之后,待更新版本资源框架填充完成,可以包括以下步骤s710~s740:
104.步骤s710,获取待更新版本对应的多个非更新资源;
105.在本公开的一种示例实施例中,可以获取待更新版本对应的多个非更新资源。具体的,待更新版本对应的多个非更新资源是指,在应用程序的更新过程中,不会发生变化的资源。举例而言,待更新版本对应的非更新资源是指,应用程序的开启动画。
106.需要说明的是,本公开对于非更新资源的具体类型并不做特殊限定。
107.步骤s720,下载多个非更新资源,在出现下载故障且恢复后,去重已下载的非更新资源,继续下载未下载的非更新资源;
108.在本公开的一种示例实施例中,在通过上述步骤得到获取待更新版本对应的多个非更新资源之后,可以下载多个非更新资源,在在出现下载故障且恢复后,去重已下载的非更新资源,继续下载未下载的非更新资源。具体的,在通过上述步骤正在下载非更新资源时,若出现下载故障,则下载停止,当故障恢复之后,可以检测已经下载的非更新资源,并去重已下载的非更新资源,即不再下载已下载的非更新资源,仅下载未下载的非更新资源。
109.需要说明的是,本公开对于下载故障的类型以及故障恢复的具体方式并不做特殊限定。
110.在本公开的一种示例实施例中,非更新资源支持断点续传。具体的,在出现下载故障时,则下载停止,当故障恢复之后,针对某一非更新资源,可以记录下载进度,当故障恢复之后,可以根据下载进度继续进行下载。
111.步骤s730,在多个非更新资源下载完成后,将多个非更新资源填充至待更新版本资源框架;
112.步骤s740,在将目标客户端块资源填充至待更新版本资源框架,且将待更新资源填充至待更新版本资源框架之后,待更新版本资源框架填充完成。
113.在本公开的一种示例实施例中,非更新资源以及其他资源填充完成之后,表示待更新版本资源框架填充完成,可以采用待更新版本资源框架中的新版本客户端资源启动应用程序,以实现对应用程序的更新。
114.通过上述步骤s710~s740,可以获取待更新版本对应的多个非更新资源,下载多个非更新资源,在出现下载故障且恢复后,去重已下载的非更新资源,继续下载未下载的非更新资源,在多个非更新资源下载完成后,将多个非更新资源填充至待更新版本资源框架,在将目标客户端块资源填充至待更新版本资源框架,且将待更新资源填充至待更新版本资源框架之后,待更新版本资源框架填充完成。
115.在本公开的一种示例实施例中,可以获取待更新版本对应的待更新客户端资源,将待更新客户端资源划分为多个待更新客户端块资源,对多个待更新客户端块资源进行差分编码得到待更新块编码结果,计算多个待更新块编码结果对应的待更新版本块校验和,根据多个待更新版本块校验和生成待更新版本对应的索引文件。参照图8所示,根据多个待更新版本块校验和生成待更新版本对应的索引文件,可以包括以下步骤s810~s830:
116.步骤s810,获取待更新版本对应的待更新客户端资源,将待更新客户端资源划分为多个待更新客户端块资源;
117.在本公开的一种示例实施例中,可以获取待更新版本对应的待更新客户端资源,将待更新客户端资源划分为多个待更新客户端块资源,对多个待更新客户端块资源进行差分编码得到待更新块编码结果,计算多个待更新块编码结果对应的待更新版本块校验和。具体的,待更新版本对应的待更新客户端资源是指需要从应用程序对应的客户端资源更新到的资源,在运营商对应用程序对应的客户端资源进行增删改之后,可以得到待更新客户端资源,可以将待更新客户端资源划分为多个待更新客户端块资源。
118.举例而言,可以将待更新客户端资源按照4096字节划分为多个待更新客户端块资源,每个待更新客户端块资源的大小为4096字节。
119.需要说明的是,本公开对于将待更新客户端资源划分为多个待更新客户端块资源的具体方式并不做特殊限定。
120.在本公开的一种示例实施例中,在得到待更新版本对应的待更新客户端资源之后,需要先对待更新版本对应的待更新客户端资源进行打包。具体的,在进行资源打包时,需要使得打包出的资源(pak,assetbundle;资源文件)是幂等的,此外,不同的待更新版本打包得到的资源差异最小化,例如可以按照文件名称进行排序组合。
121.进一步的,针对代码scripts(代码目录)可以打出scripts.pak(文件格式)以便单独控制;针对代码res(代码目录)根据项目所需打出多个res*.pak(文件格式)。
122.步骤s820,对多个待更新客户端块资源进行差分编码得到待更新块编码结果,计算多个待更新块编码结果对应的待更新版本块校验和;
123.步骤s830,根据多个待更新版本块校验和生成待更新版本对应的索引文件。
124.在本公开的一种示例实施例中,在通过上述步骤得到多个待更新客户端块资源之后,可以对多个待更新客户端块资源进行差分编码得到待更新块编码结果,并计算多个待更新块编码结果对应的待更新版本块校验和。具体的,差分编码是指对多个待更新客户端块资源,除第一个待更新客户端块资源外,将其中各待更新客户端块资源都表示为各该待更新客户端块资源与其前一待更新客户端块资源的差的编码,以得到个待更新客户端块资源对应的待更新块编码结果,在得到待更新块编码结果之后,在通过对待更新块编码结果计算待更新版本块校验和。
125.需要说明的是,本公开对于对多个待更新客户端块资源进行差分编码得到待更新块编码结果以及计算多个待更新块编码结果对应的待更新版本块校验和的具体方式并不做特殊限定。
126.在本公开的一种示例实施例中,在得到多个待更新版本块校验和之后,可以根据多个待更新版本块校验和生成待更新版本对应的索引文件。具体的,待更新版本对应的索引文件用于指示多个待更新版本块校验和。
127.需要说明的是,本公开对于根据多个待更新版本块校验和生成待更新版本对应的索引文件的具体方式并不做特殊限定。
128.举例而言,可以通过wsyncmake(索引文件生成工具)得到待更新版本对应的索引文件,可以在wsyncmake中输入待更新版本对应的待更新客户端资源,并执行索引文件生成命令,例如wsyncmake-fres.pak-b4096(待更新客户端块资源的大小为4096字节),可以得到res.pak.wsync(待更新版本对应的索引文件)。需要说明的是,本公开对于wsyncmake的架构并不做特殊限定。
129.通过上述步骤s810~s830,可以获取待更新版本对应的待更新客户端资源,将待更新客户端资源划分为多个待更新客户端块资源,对多个待更新客户端块资源进行差分编码得到待更新块编码结果,计算多个待更新块编码结果对应的待更新版本块校验和,根据多个待更新版本块校验和生成待更新版本对应的索引文件。
130.在本公开的一种示例实施例中,可以启动应用程序,启动应用程序更新流程,获取应用程序更新公告,获取应用程序对应的版本信息,在待更新版本信息与版本信息相同时,结束应用程序更新流程,在待更新版本信息与版本信息不同时,继续执行应用程序更新流程。参照图9所示,在待更新版本信息与版本信息不同时,继续执行应用程序更新流程,可以包括以下步骤s910~s940:
131.步骤s910,启动应用程序,启动应用程序更新流程;
132.在本公开的一种示例实施例中,在用户启动应用程序之后,可以启动应用程序更新流程。具体的,应用程序更新流程可以用于对应用程序进行更新,具体而言,若所启动的应用程序为新版本时,则结束应用程序更新流程,若所启动的应用程序为旧版本时,则对应用程序进行更新。
133.步骤s920,获取应用程序更新公告,获取应用程序对应的版本信息;其中,应用程序更新公告中包括待更新版本信息;
134.步骤s930,在待更新版本信息与版本信息相同时,结束应用程序更新流程;
135.步骤s940,在待更新版本信息与版本信息不同时,继续执行应用程序更新流程。
136.在本公开的一种示例实施例中,在通过上述步骤启动应用程序更新流程之后,可以获取应用程序更新公告,并在应用程序更新公告中获取待更新版本信息,待更新版本信息可以用于指示所要更新的版本,并获取应用程序对应的版本信息,应用程序对应的版本信息可以用于指示应用程序的当前版本。在待更新版本信息与版本信息相同时,表示所要更新的版本与应用程序的当前版本相同,则无需进行更新,即结束应用程序更新流程;在待更新版本信息与版本信息不同时,表示所要更新的版本与应用程序的当前版本不同,需要进行更新,则继续执行应用程序更新流程。
137.通过上述步骤s910~s940,可以启动应用程序,启动应用程序更新流程,获取应用程序更新公告,获取应用程序对应的版本信息,在待更新版本信息与版本信息相同时,结束应用程序更新流程,在待更新版本信息与版本信息不同时,继续执行应用程序更新流程。
138.在本公开的一种示例实施例中,可以从应用程序更新公告中获取应用程序更新列表,根据应用程序更新列表得到待更新版本信息。参照图10所示,根据应用程序更新列表得到待更新版本信息,可以包括以下步骤s1010~s1020:
139.步骤s1010,从应用程序更新公告中获取应用程序更新列表;其中,应用程序更新列表中包括新版本客户端资源对应的待更新版本信息,以及新版本客户端资源对应的索引文件;
140.步骤s1020,根据应用程序更新列表得到待更新版本信息。
141.在本公开的一种示例实施例中,在启动应用程序更新流程之后,可以拉取应用程序更新公告,并从应用程序更新公告中获取应用程序更新列表,应用程序更新列表中包括新版本客户端资源对应的待更新版本信息,可以从应用程序更新列表中获取待更新版本信息,此外,应用程序更新列表中还包括新版本客户端资源对应的索引文件,在待更新版本信息与版本信息不同时,可以通过新版本客户端资源对应的索引文件执行本公开的资源更新方案。
142.在本公开的一种示例实施例中,应用程序更新列表包括多个待更新版本对应的待更新版本信息以及待更新版本对应的新版本客户端资源。举例而言,待更新版本对应的待更新版本信息为版本号,例如应用程序更新列表中包括两个待更新版本,其待更新版本信息与新版本客户端资源分别为,一:1.0.0;c8501ceef63f033ab6385a2d210d968595ecbc51,二:2.0.0;c8501ceef63f033ab6385a2d210d968595ecbc51。在服务器的应用程序更新列表存储多个待更新版本对应的待更新版本信息与新版本客户端资源,能够实现多个待更新版本的更新跳转。
143.通过上述步骤s1010~s1020,可以从应用程序更新公告中获取应用程序更新列
表,根据应用程序更新列表得到待更新版本信息。
144.在本公开的一种示例实施例中,可以将应用程序对应的版本信息修改为待更新版本信息。具体的,客户端中存储的应用程序对应的客户端资源已经删除,可以通过待更新版本资源框架中的内容启动应用程序,表示应用程序已经更新完成,此时,可以将应用程序对应的版本信息修改为待更新版本信息,在下一次启动应用程序,且启动应用程序更新流程之后,将应用程序对应的待更新版本信息与从应用程序更新公告中获取的待更新版本信息进行比较,确定该两个待更新版本信息相同,此时,结束应用程序更新流程,直接启动应用程序。
145.在本公开的一种示例实施例中,在通过上述步骤得到客户端资源之后,可以将客户端资源下载至buffer(执行内存)中,并按照滚动窗口进行滚动得到多个客户端块资源,对客户端块资源进行差分编码得到客户端块编码结果,计算客户端块编码结果对应的客户端块校验和;获取待更新版本对应的索引文件,根据索引文件创建target(索引文件对应的待更新版本资源框架)。持续滚动buffer,在目标客户端块校验和与第一目标待更新块校验和相同时,确定目标客户端块校验和对应的目标客户端块资源为待更新版本资源框架所需要的资源,将目标客户端块资源填充至target,遍历多个客户端块资源对应的多个客户端块校验和,在多个待更新版本块校验和中存在与多个客户端块校验和不同的第二目标待更新块校验和时,下载第二目标待更新块校验和对应的待更新客户端块资源,将待更新客户端块资源填充至target,在待更新版本资源框架填充完成后,可以删除客户端资源。进一步的,若target中空间不足,则扩建taget。
146.在本公开的一种示例实施例中,待更新版本对应的索引文件存储于服务器中。具体的,服务器可以为http server服务器(命令行http服务器)、webserver服务器(网页服务器)、cdn服务器(content delivery network,内容分发网络服务器)等。
147.需要说明的是,本公开对于服务器的具体类型并不做特殊限定。
148.进一步的,服务器支持range request(断点续传)。
149.在本公开的一种示例实施例中,在计算多个sha1sum(待更新版本块校验和)之后,可以获取该待更新版本的逻辑版本,根据该待更新版本的逻辑版本以及该待更新版本的引擎版本确定待更新版本信息,并根据待更新版本信息生成patchlist(应用程序更新列表),并根据发布要求修改或填充patchlist(例如不同国家采用不同的待更新版本),最后将patchlist.json、pak(待更新客户端资源)、wsync(待更新版本对应的索引文件)发布至patch webserver(服务器)。
150.进一步的,可以在webserver中发布应用程序更新公告。
151.在本公开的一种示例实施例中,在服务器中存储有新版本客户端资源,在多个待更新版本块校验和中存在与多个客户端块校验和不同的第二目标待更新块校验和时,可以从服务器中下载第二目标待更新块校验和对应的待更新客户端块资源,并将待更新客户端块资源填充至待更新版本资源框架中。
152.在本公开的一种示例实施例中,如图11所示,为本公开中的一种资源更新方法:
153.s1101,计算弱校验和(calc rsum):计算客户端弱校验和;
154.s1102,检测弱校验和字符(hit bithash):并比较客户端弱校验和与待更新弱校验和在弱校验和检测位置的字符是否相同,不相同则丢弃至回收站;
155.s1103,遍历弱校验和列表(hit rsumhash):若客户端弱校验和与待更新弱校验遍历弱校验和列表和在弱校验和检测位置的字符相同,则遍历弱校验和列表,判断客户端弱校验和与待更新弱校验和是否相同;
156.s1104,弱校验和列表存储(for rsum list):将待更新弱校验和存储至弱校验和列表中;
157.s1105,整体比较弱校验和(check rsum):若客户端弱校验和与待更新弱校验和相同,则比较客户端强校验和与待更新强校验和是否相同;若客户端弱校验和与待更新弱校验和不同,则丢弃至回收站;
158.s1106,确定目标客户端块校验和(checkmd4):若客户端强校验和与待更新强校验和相同,则目标客户端块校验和对应的目标客户端块资源为待更新版本资源框架所需要的资源;若客户端强校验和与待更新强校验和不同,则丢弃至回收站;
159.s1107,填充目标客户端块资源(writeblock):将目标客户端块资源填充至待更新版本资源框架中;
160.s1108,保存客户端块资源(add to garbage):客户端块资源丢弃并保存至回收站;
161.s1109,块偏移处理(buf roll 4096):当前客户端块资源处理完成后,指针向后偏移4096字节,继续执行直至多个客户端资源处理完成;
162.s1110,确定第二目标待更新块校验和(hit garbage):多个客户端资源处理完成之后,表示在多个待更新版本块校验和中存在与多个客户端块校验和不同的第二目标待更新块校验和;
163.s1111,单字节滚动校验(buf roll 1):可以单字节滚动继续进行校验。
164.在本公开的一种示例实施例中,如图12所示,为本公开中的一种资源更新方法。
165.s1201,启动应用程序更新流程:启动应用程序,启动应用程序更新流程;
166.s1202,建立游戏场景沙盒;
167.s1203,对更新模块进行更新;更新模块用于执行本公开的资源更新方案;
168.s1204,建立游戏引擎沙盒;
169.s1205,并行下载新版本客户端资源;
170.s1206,应用程序清理以及初始化;检查是否为第一次安装应用程序,对应用程序对应的文件进行清理以及初始化;
171.s1207,获取应用程序更新公告:在服务器中获取应用程序更新公告;获取失败时进行重试;
172.s1208,获取应用程序更新列表:获取应用程序更新公告中的应用程序更新列表;获取失败时进行重试;
173.s1209,比较版本信息:获取应用程序对应的版本信息,获取待更新版本信息,根据应用程序对应的版本信息与待更新版本信息确定应用程序是否需要更新;若无需更新,则结束应用程序更新流程;若需要更新,则获取应用程序更新流程所涉及的资源;
174.s1210,下载非更新资源:获取待更新版本对应的多个非更新资源,下载多个非更新资源;在出现下载故障且恢复后,去重已下载的非更新资源,继续下载未下载的非更新资源;支持断点续传;记录下载进度,以便中断恢复。
175.s1211,下载待更新资源:在目标客户端块校验和与第一目标待更新块校验和相同时,确定目标客户端块校验和对应的目标客户端块资源为待更新版本资源框架所需要的资源,将目标客户端块资源填充至待更新版本资源框架中;遍历多个客户端块资源对应的多个客户端块校验和,在多个待更新版本块校验和中存在与多个客户端块校验和不同的第二目标待更新块校验和时,下载第二目标待更新块校验和对应的待更新客户端块资源,将待更新客户端块资源填充至待更新版本资源框架中;支持并行下载;出现下载故障且恢复后,去重已下载的待更新客户端块资源,继续下载未下载的待更新客户端块资源;支持断点续传;记录下载进度,以便中断恢复。
176.s1212,修改版本信息:将应用程序对应的版本信息修改为待更新版本信息;
177.s1213,应用程序更新完成:应用程序更新流程完成,建立游戏沙盒,通过待更新版本资源框架中的新版本客户端资源启动应用程序。
178.本公开的一种实施例提供的资源更新方法中,可以获取应用程序对应的客户端资源,将客户端资源按照滚动窗口进行滚动得到多个客户端块资源,对客户端块资源进行差分编码得到客户端块编码结果,计算客户端块编码结果对应的客户端块校验和,获取待更新版本对应的索引文件,在客户端中创建索引文件对应的待更新版本资源框架,在目标客户端块校验和与第一目标待更新块校验和相同时,确定目标客户端块校验和对应的目标客户端块资源为待更新版本资源框架所需要的资源,将目标客户端块资源填充至待更新版本资源框架中,遍历多个客户端块资源对应的多个客户端块校验和,在多个待更新版本块校验和中存在与多个客户端块校验和不同的第二目标待更新块校验和时,下载第二目标待更新块校验和对应的待更新客户端块资源,将待更新客户端块资源填充至待更新版本资源框架中,在待更新版本资源框架填充完成后,删除客户端资源,采用待更新版本资源框架中的新版本客户端资源启动应用程序,以实现对应用程序的更新。一方面,只需要在服务器中维护最新版本的待更新版本,在进行应用程序的更新时,直接从客户端资源更新至最新版本,可以避免用户的流量/贷款浪费,缩短了更新时间,降低了用户的游玩成本;另一方面,无需在服务器中维护多个版本的文件,避免浪费服务器资源,降低了运营成本。
179.需要注意的是,上述附图仅是根据本公开示例性实施例的方法所包括的处理的示意性说明,而不是限制目的。易于理解,上述附图所示的处理并不表明或限制这些处理的时间顺序。另外,也易于理解,这些处理可以是例如在多个模块中同步或异步执行的。
180.此外,在本公开的示例性实施方式中,还提供了一种资源更新装置。参照图13所示,一种资源更新装置1300包括:块资源获取模块1310、块校验和计算模块1320、索引文件获取模块1330、第一资源填充模块1340、第二资源填充模块1350和更新实现模块1360。
181.其中,块资源获取模块,用于获取应用程序对应的客户端资源,将客户端资源按照滚动窗口进行滚动得到多个客户端块资源;块校验和计算模块,用于对客户端块资源进行差分编码得到客户端块编码结果,计算客户端块编码结果对应的客户端块校验和;索引文件获取模块,用于获取待更新版本对应的索引文件,在客户端中创建索引文件对应的待更新版本资源框架;其中,待更新版本对应的索引文件用于指示多个待更新版本块校验和;第一资源填充模块,用于在目标客户端块校验和与第一目标待更新块校验和相同时,确定目标客户端块校验和对应的目标客户端块资源为待更新版本资源框架所需要的资源,将目标客户端块资源填充至待更新版本资源框架中;其中,多个待更新版本块校验和中包括第一
目标待更新块校验和,多个客户端块资源中包括目标客户端块资源;第二资源填充模块,用于遍历多个客户端块资源对应的多个客户端块校验和,在多个待更新版本块校验和中存在与多个客户端块校验和不同的第二目标待更新块校验和时,下载第二目标待更新块校验和对应的待更新客户端块资源,将待更新客户端块资源填充至待更新版本资源框架中;更新实现模块,用于在待更新版本资源框架填充完成后,删除客户端资源,采用待更新版本资源框架中的新版本客户端资源启动应用程序,以实现对应用程序的更新。
182.在本公开的一种示例性实施例中,基于前述方案,客户端块校验和具有客户端弱校验和与客户端强校验和,第一目标待更新块校验和包括待更新弱校验和与待更新强校验和,客户端块校验和与第一目标待更新块校验和相同,装置还包括:弱校验和比较单元,用于比较客户端弱校验和与待更新弱校验和;强校验和比较单元,用于在客户端弱校验和与待更新弱校验和相同时,比较客户端强校验和与待更新强校验和;校验和相同确定单元,用于在客户端强校验和与待更新强校验和相同时,确定客户端块校验和与第一目标待更新块校验和相同。
183.在本公开的一种示例性实施例中,基于前述方案,客户端弱校验和与待更新弱校验和相同,装置还包括:检测位置确定单元,用于确定弱校验和检测位置;字符比较单元,用于当客户端弱校验和与待更新弱校验和在弱校验和检测位置的字符相同时,比较客户端弱校验和与待更新弱校验和;待更新弱校验和相同确定单元,用于确定客户端弱校验和与待更新弱校验和相同。
184.在本公开的一种示例性实施例中,基于前述方案,待更新版本资源框架中包括多段空间,将目标客户端块资源填充至待更新版本资源框架中,装置还包括:多段空间填充单元,用于将目标客户端块资源填充至待更新版本资源框架中的多段空间中。
185.在本公开的一种示例性实施例中,基于前述方案,下载第二目标待更新块校验和对应的待更新客户端块资源,装置还包括:并行下载单元,用于通过并行下载的方式下载第二目标待更新块校验和对应的待更新客户端块资源;第一去重单元,用于在出现下载故障且恢复后,去重已下载的待更新客户端块资源,继续下载未下载的待更新客户端块资源。
186.在本公开的一种示例性实施例中,基于前述方案,待更新客户端块资源支持断点续传。
187.在本公开的一种示例性实施例中,基于前述方案,应用程序包括非更新资源,待更新版本资源框架填充完成,装置还包括:非更新资源获取单元,用于获取待更新版本对应的多个非更新资源;非更新资源下载单元,用于下载多个非更新资源,在出现下载故障且恢复后,去重已下载的非更新资源,继续下载未下载的非更新资源;非更新资源填充单元,用于在多个非更新资源下载完成后,将多个非更新资源填充至待更新版本资源框架;整体填充确定单元,用于在将目标客户端块资源填充至待更新版本资源框架,且将待更新资源填充至待更新版本资源框架之后,待更新版本资源框架填充完成。
188.在本公开的一种示例性实施例中,基于前述方案,装置还包括:待更新客户端资源划分单元,用于获取待更新版本对应的待更新客户端资源,将待更新客户端资源划分为多个待更新客户端块资源;待更新版本块校验和计算单元,用于对多个待更新客户端块资源进行差分编码得到待更新块编码结果,计算多个待更新块编码结果对应的待更新版本块校验和;索引文件生成单元,用于根据多个待更新版本块校验和生成待更新版本对应的索引
文件。
189.在本公开的一种示例性实施例中,基于前述方案,在获取应用程序对应的客户端资源之前,装置还包括:应用程序更新流程启动单元,用于启动应用程序,启动应用程序更新流程;应用程序更新公告获取单元,用于获取应用程序更新公告,获取应用程序对应的版本信息;其中,应用程序更新公告中包括待更新版本信息;第一比较单元,用于在待更新版本信息与版本信息相同时,结束应用程序更新流程;第二比较单元,用于在待更新版本信息与版本信息不同时,继续执行应用程序更新流程。
190.在本公开的一种示例性实施例中,基于前述方案,装置还包括:应用程序更新列表获取单元,用于从应用程序更新公告中获取应用程序更新列表;其中,应用程序更新列表中包括新版本客户端资源对应的待更新版本信息,以及新版本客户端资源对应的索引文件;待更新版本信息获取单元,用于根据应用程序更新列表得到待更新版本信息。
191.在本公开的一种示例性实施例中,基于前述方案,在删除客户端资源之后,装置还包括:版本信息修改单元,用于将应用程序对应的版本信息修改为待更新版本信息。
192.本公开的一种实施例提供的资源更新装置,可以获取应用程序对应的客户端资源,将客户端资源按照滚动窗口进行滚动得到多个客户端块资源,对客户端块资源进行差分编码得到客户端块编码结果,计算客户端块编码结果对应的客户端块校验和,获取待更新版本对应的索引文件,在客户端中创建索引文件对应的待更新版本资源框架,在目标客户端块校验和与第一目标待更新块校验和相同时,确定目标客户端块校验和对应的目标客户端块资源为待更新版本资源框架所需要的资源,将目标客户端块资源填充至待更新版本资源框架中,遍历多个客户端块资源对应的多个客户端块校验和,在多个待更新版本块校验和中存在与多个客户端块校验和不同的第二目标待更新块校验和时,下载第二目标待更新块校验和对应的待更新客户端块资源,将待更新客户端块资源填充至待更新版本资源框架中,在待更新版本资源框架填充完成后,删除客户端资源,采用待更新版本资源框架中的新版本客户端资源启动应用程序,以实现对应用程序的更新。一方面,只需要在服务器中维护最新版本的待更新版本,在进行应用程序的更新时,直接从客户端资源更新至最新版本,可以避免用户的流量/贷款浪费,缩短了更新时间,降低了用户的游玩成本;另一方面,无需在服务器中维护多个版本的文件,避免浪费服务器资源,降低了运营成本。
193.由于本公开的示例实施例的资源更新装置的各个功能模块与上述资源更新方法的示例实施例的步骤对应,因此对于本公开装置实施例中未披露的细节,请参照本公开上述的资源更新方法的实施例。
194.应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本公开的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
195.此外,在本公开的示例性实施例中,还提供了一种能够实现上述资源更新方法的电子设备。
196.所属技术领域的技术人员能够理解,本公开的各个方面可以实现为系统、方法或程序产品。因此,本公开的各个方面可以具体实现为以下形式,即:完全的硬件实施例、完全的软件实施例(包括固件、微代码等),或硬件和软件方面结合的实施例,这里可以统称为“电路”、“模块”或“系统”。
197.下面参照图14来描述根据本公开的这种实施例的电子设备1400。图14显示的电子设备1400仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
198.如图14所示,电子设备1400以通用计算设备的形式表现。电子设备1400的组件可以包括但不限于:上述至少一个处理单元1410、上述至少一个存储单元1420、连接不同系统组件(包括存储单元1420和处理单元1410)的总线1430、显示单元1440。
199.其中,存储单元存储有程序代码,程序代码可以被处理单元1410执行,使得处理单元1410执行本说明书上述“示例性方法”部分中描述的根据本公开各种示例性实施例的步骤。例如,处理单元1410可以执行如图2中所示的步骤s210:获取应用程序对应的客户端资源,将客户端资源按照滚动窗口进行滚动得到多个客户端块资源;步骤s220:对客户端块资源进行差分编码得到客户端块编码结果,计算客户端块编码结果对应的客户端块校验和;步骤s230,获取待更新版本对应的索引文件,在客户端中创建索引文件对应的待更新版本资源框架;其中,待更新版本对应的索引文件用于指示多个待更新版本块校验和;步骤s240,在目标客户端块校验和与第一目标待更新块校验和相同时,确定目标客户端块校验和对应的目标客户端块资源为待更新版本资源框架所需要的资源,将目标客户端块资源填充至待更新版本资源框架中;其中,多个待更新版本块校验和中包括第一目标待更新块校验和,多个客户端块资源中包括目标客户端块资源;步骤s250,遍历多个客户端块资源对应的多个客户端块校验和,在多个待更新版本块校验和中存在与多个客户端块校验和不同的第二目标待更新块校验和时,下载第二目标待更新块校验和对应的待更新客户端块资源,将待更新客户端块资源填充至待更新版本资源框架中;步骤s260,在待更新版本资源框架填充完成后,删除客户端资源,采用待更新版本资源框架中的新版本客户端资源启动应用程序,以实现对应用程序的更新。
200.在本公开的一种示例性实施例中,基于前述方案,客户端块校验和具有客户端弱校验和与客户端强校验和,第一目标待更新块校验和包括待更新弱校验和与待更新强校验和,客户端块校验和与第一目标待更新块校验和相同,包括:比较客户端弱校验和与待更新弱校验和;在客户端弱校验和与待更新弱校验和相同时,比较客户端强校验和与待更新强校验和;在客户端强校验和与待更新强校验和相同时,确定客户端块校验和与第一目标待更新块校验和相同。
201.在本公开的一种示例性实施例中,基于前述方案,客户端弱校验和与待更新弱校验和相同,包括:确定弱校验和检测位置;当客户端弱校验和与待更新弱校验和在弱校验和检测位置的字符相同时,比较客户端弱校验和与待更新弱校验和;确定客户端弱校验和与待更新弱校验和相同。
202.在本公开的一种示例性实施例中,基于前述方案,待更新版本资源框架中包括多段空间,将目标客户端块资源填充至待更新版本资源框架中,包括:将目标客户端块资源填充至待更新版本资源框架中的多段空间中。
203.在本公开的一种示例性实施例中,基于前述方案,下载第二目标待更新块校验和对应的待更新客户端块资源,包括:通过并行下载的方式下载第二目标待更新块校验和对应的待更新客户端块资源;在出现下载故障且恢复后,去重已下载的待更新客户端块资源,继续下载未下载的待更新客户端块资源。
204.在本公开的一种示例性实施例中,基于前述方案,待更新客户端块资源支持断点续传。
205.在本公开的一种示例性实施例中,基于前述方案,应用程序包括非更新资源,待更新版本资源框架填充完成,包括:获取待更新版本对应的多个非更新资源;下载多个非更新资源,在出现下载故障且恢复后,去重已下载的非更新资源,继续下载未下载的非更新资源;在多个非更新资源下载完成后,将多个非更新资源填充至待更新版本资源框架;在将目标客户端块资源填充至待更新版本资源框架,且将待更新资源填充至待更新版本资源框架之后,待更新版本资源框架填充完成。
206.在本公开的一种示例性实施例中,基于前述方案,获取待更新版本对应的待更新客户端资源,将待更新客户端资源划分为多个待更新客户端块资源;对多个待更新客户端块资源进行差分编码得到待更新块编码结果,计算多个待更新块编码结果对应的待更新版本块校验和;根据多个待更新版本块校验和生成待更新版本对应的索引文件。
207.在本公开的一种示例性实施例中,基于前述方案,在获取应用程序对应的客户端资源之前,方法还包括:启动应用程序,启动应用程序更新流程;获取应用程序更新公告,获取应用程序对应的版本信息;其中,应用程序更新公告中包括待更新版本信息;在待更新版本信息与版本信息相同时,结束应用程序更新流程;在待更新版本信息与版本信息不同时,继续执行应用程序更新流程。
208.在本公开的一种示例性实施例中,基于前述方案,从应用程序更新公告中获取应用程序更新列表;其中,应用程序更新列表中包括新版本客户端资源对应的待更新版本信息,以及新版本客户端资源对应的索引文件;根据应用程序更新列表得到待更新版本信息。
209.在本公开的一种示例性实施例中,基于前述方案,在删除客户端资源之后,方法还包括:将应用程序对应的版本信息修改为待更新版本信息。
210.本公开的一种实施例提供的电子设备,可以获取应用程序对应的客户端资源,将客户端资源按照滚动窗口进行滚动得到多个客户端块资源,对客户端块资源进行差分编码得到客户端块编码结果,计算客户端块编码结果对应的客户端块校验和,获取待更新版本对应的索引文件,在客户端中创建索引文件对应的待更新版本资源框架,在目标客户端块校验和与第一目标待更新块校验和相同时,确定目标客户端块校验和对应的目标客户端块资源为待更新版本资源框架所需要的资源,将目标客户端块资源填充至待更新版本资源框架中,遍历多个客户端块资源对应的多个客户端块校验和,在多个待更新版本块校验和中存在与多个客户端块校验和不同的第二目标待更新块校验和时,下载第二目标待更新块校验和对应的待更新客户端块资源,将待更新客户端块资源填充至待更新版本资源框架中,在待更新版本资源框架填充完成后,删除客户端资源,采用待更新版本资源框架中的新版本客户端资源启动应用程序,以实现对应用程序的更新。一方面,只需要在服务器中维护最新版本的待更新版本,在进行应用程序的更新时,直接从客户端资源更新至最新版本,可以避免用户的流量/贷款浪费,缩短了更新时间,降低了用户的游玩成本;另一方面,无需在服务器中维护多个版本的文件,避免浪费服务器资源,降低了运营成本。
211.存储单元1420可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(ram)1421和/或高速缓存存储单元1422,还可以进一步包括只读存储单元(rom)1423。
212.存储单元1420还可以包括具有一组(至少一个)程序模块1425的程序/实用工具
1424,这样的程序模块1425包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
213.总线1430可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。
214.电子设备1400也可以与一个或多个外部设备1470(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与该电子设备1400交互的设备通信,和/或与使得该电子设备1400能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(i/o)接口1450进行。并且,电子设备1400还可以通过网络适配器1460与一个或者多个网络(例如局域网(lan),广域网(wan)和/或公共网络,例如因特网)通信。如图所示,网络适配器1460通过总线1430与电子设备1400的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备1400使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、raid系统、磁带驱动器以及数据备份存储系统等。
215.通过以上的实施例的描述,本领域的技术人员易于理解,这里描述的示例实施例可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施例的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是cd-rom,u盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、终端装置、或者网络设备等)执行根据本公开实施例的方法。
216.在本公开的示例性实施例中,还提供了一种计算机可读存储介质,其上存储有能够实现本说明书上述方法的程序产品。在一些可能的实施例中,本公开的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当程序产品在终端设备上运行时,程序代码用于使终端设备执行本说明书上述“示例性方法”部分中描述的根据本公开各种示例性实施例的步骤。
217.在本公开的一种示例实施例中,提供了一种计算机可读信号介质,可以获取应用程序对应的客户端资源,将客户端资源按照滚动窗口进行滚动得到多个客户端块资源;对客户端块资源进行差分编码得到客户端块编码结果,计算客户端块编码结果对应的客户端块校验和;获取待更新版本对应的索引文件,在客户端中创建索引文件对应的待更新版本资源框架;其中,待更新版本对应的索引文件用于指示多个待更新版本块校验和;在目标客户端块校验和与第一目标待更新块校验和相同时,确定目标客户端块校验和对应的目标客户端块资源为待更新版本资源框架所需要的资源,将目标客户端块资源填充至待更新版本资源框架中;其中,多个待更新版本块校验和中包括第一目标待更新块校验和,多个客户端块资源中包括目标客户端块资源;遍历多个客户端块资源对应的多个客户端块校验和,在多个待更新版本块校验和中存在与多个客户端块校验和不同的第二目标待更新块校验和时,下载第二目标待更新块校验和对应的待更新客户端块资源,将待更新客户端块资源填充至待更新版本资源框架中;在待更新版本资源框架填充完成后,删除客户端资源,采用待更新版本资源框架中的新版本客户端资源启动应用程序,以实现对应用程序的更新。
218.在本公开的一种示例性实施例中,基于前述方案,客户端块校验和具有客户端弱校验和与客户端强校验和,第一目标待更新块校验和包括待更新弱校验和与待更新强校验
和,客户端块校验和与第一目标待更新块校验和相同,包括:比较客户端弱校验和与待更新弱校验和;在客户端弱校验和与待更新弱校验和相同时,比较客户端强校验和与待更新强校验和;在客户端强校验和与待更新强校验和相同时,确定客户端块校验和与第一目标待更新块校验和相同。
219.在本公开的一种示例性实施例中,基于前述方案,客户端弱校验和与待更新弱校验和相同,包括:确定弱校验和检测位置;当客户端弱校验和与待更新弱校验和在弱校验和检测位置的字符相同时,比较客户端弱校验和与待更新弱校验和;确定客户端弱校验和与待更新弱校验和相同。
220.在本公开的一种示例性实施例中,基于前述方案,待更新版本资源框架中包括多段空间,将目标客户端块资源填充至待更新版本资源框架中,包括:将目标客户端块资源填充至待更新版本资源框架中的多段空间中。
221.在本公开的一种示例性实施例中,基于前述方案,下载第二目标待更新块校验和对应的待更新客户端块资源,包括:通过并行下载的方式下载第二目标待更新块校验和对应的待更新客户端块资源;在出现下载故障且恢复后,去重已下载的待更新客户端块资源,继续下载未下载的待更新客户端块资源。
222.在本公开的一种示例性实施例中,基于前述方案,待更新客户端块资源支持断点续传。
223.在本公开的一种示例性实施例中,基于前述方案,应用程序包括非更新资源,待更新版本资源框架填充完成,包括:获取待更新版本对应的多个非更新资源;下载多个非更新资源,在出现下载故障且恢复后,去重已下载的非更新资源,继续下载未下载的非更新资源;在多个非更新资源下载完成后,将多个非更新资源填充至待更新版本资源框架;在将目标客户端块资源填充至待更新版本资源框架,且将待更新资源填充至待更新版本资源框架之后,待更新版本资源框架填充完成。
224.在本公开的一种示例性实施例中,基于前述方案,获取待更新版本对应的待更新客户端资源,将待更新客户端资源划分为多个待更新客户端块资源;对多个待更新客户端块资源进行差分编码得到待更新块编码结果,计算多个待更新块编码结果对应的待更新版本块校验和;根据多个待更新版本块校验和生成待更新版本对应的索引文件。
225.在本公开的一种示例性实施例中,基于前述方案,在获取应用程序对应的客户端资源之前,方法还包括:启动应用程序,启动应用程序更新流程;获取应用程序更新公告,获取应用程序对应的版本信息;其中,应用程序更新公告中包括待更新版本信息;在待更新版本信息与版本信息相同时,结束应用程序更新流程;在待更新版本信息与版本信息不同时,继续执行应用程序更新流程。
226.在本公开的一种示例性实施例中,基于前述方案,从应用程序更新公告中获取应用程序更新列表;其中,应用程序更新列表中包括新版本客户端资源对应的待更新版本信息,以及新版本客户端资源对应的索引文件;根据应用程序更新列表得到待更新版本信息。
227.在本公开的一种示例性实施例中,基于前述方案,在删除客户端资源之后,方法还包括:将应用程序对应的版本信息修改为待更新版本信息。
228.本公开的一种实施例提供的计算机可读信号介质,可以获取应用程序对应的客户端资源,将客户端资源按照滚动窗口进行滚动得到多个客户端块资源,对客户端块资源进
行差分编码得到客户端块编码结果,计算客户端块编码结果对应的客户端块校验和,获取待更新版本对应的索引文件,在客户端中创建索引文件对应的待更新版本资源框架,在目标客户端块校验和与第一目标待更新块校验和相同时,确定目标客户端块校验和对应的目标客户端块资源为待更新版本资源框架所需要的资源,将目标客户端块资源填充至待更新版本资源框架中,遍历多个客户端块资源对应的多个客户端块校验和,在多个待更新版本块校验和中存在与多个客户端块校验和不同的第二目标待更新块校验和时,下载第二目标待更新块校验和对应的待更新客户端块资源,将待更新客户端块资源填充至待更新版本资源框架中,在待更新版本资源框架填充完成后,删除客户端资源,采用待更新版本资源框架中的新版本客户端资源启动应用程序,以实现对应用程序的更新。一方面,只需要在服务器中维护最新版本的待更新版本,在进行应用程序的更新时,直接从客户端资源更新至最新版本,可以避免用户的流量/贷款浪费,缩短了更新时间,降低了用户的游玩成本;另一方面,无需在服务器中维护多个版本的文件,避免浪费服务器资源,降低了运营成本。
229.计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
230.可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、rf等等,或者上述的任意合适的组合。
231.可以以一种或多种程序设计语言的任意组合来编写用于执行本公开操作的程序代码,程序设计语言包括面向对象的程序设计语言—诸如java、c++等,还包括常规的过程式程序设计语言—诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(lan)或广域网(wan),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
232.此外,上述附图仅是根据本公开示例性实施例的方法所包括的处理的示意性说明,而不是限制目的。易于理解,上述附图所示的处理并不表明或限制这些处理的时间顺序。另外,也易于理解,这些处理可以是例如在多个模块中同步或异步执行的。
233.本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其他实施例。本技术旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由权利要求指出。
技术特征:
1.一种资源更新方法,其特征在于,所述方法包括:获取应用程序对应的客户端资源,将所述客户端资源按照滚动窗口进行滚动得到多个客户端块资源;对所述客户端块资源进行差分编码得到客户端块编码结果,计算所述客户端块编码结果对应的客户端块校验和;获取待更新版本对应的索引文件,在客户端中创建所述索引文件对应的待更新版本资源框架;其中,所述待更新版本对应的索引文件用于指示多个待更新版本块校验和;在目标客户端块校验和与第一目标待更新块校验和相同时,确定所述目标客户端块校验和对应的目标客户端块资源为所述待更新版本资源框架所需要的资源,将所述目标客户端块资源填充至所述待更新版本资源框架中;其中,所述多个待更新版本块校验和中包括所述第一目标待更新块校验和,所述多个客户端块资源中包括所述目标客户端块资源;遍历多个所述客户端块资源对应的多个客户端块校验和,在所述多个待更新版本块校验和中存在与所述多个客户端块校验和不同的第二目标待更新块校验和时,下载所述第二目标待更新块校验和对应的待更新客户端块资源,将所述待更新客户端块资源填充至所述待更新版本资源框架中;在所述待更新版本资源框架填充完成后,删除所述客户端资源,采用所述待更新版本资源框架中的新版本客户端资源启动应用程序,以实现对所述应用程序的更新。2.根据权利要求1所述的方法,其特征在于,所述客户端块校验和具有客户端弱校验和与客户端强校验和,所述第一目标待更新块校验和包括待更新弱校验和与待更新强校验和,所述客户端块校验和与第一目标待更新块校验和相同,包括:比较所述客户端弱校验和与所述待更新弱校验和;在所述客户端弱校验和与所述待更新弱校验和相同时,比较所述客户端强校验和与所述待更新强校验和;在所述客户端强校验和与所述待更新强校验和相同时,确定客户端块校验和与第一目标待更新块校验和相同。3.根据权利要求2所述的方法,其特征在于,所述客户端弱校验和与所述待更新弱校验和相同,包括:确定弱校验和检测位置;当所述客户端弱校验和与所述待更新弱校验和在所述弱校验和检测位置的字符相同时,比较所述客户端弱校验和与所述待更新弱校验和;确定所述客户端弱校验和与所述待更新弱校验和相同。4.根据权利要求1所述的方法,其特征在于,所述待更新版本资源框架中包括多段空间,所述将所述目标客户端块资源填充至所述待更新版本资源框架中,包括:将所述目标客户端块资源填充至所述待更新版本资源框架中的多段空间中。5.根据权利要求1所述的方法,其特征在于,所述下载所述第二目标待更新块校验和对应的待更新客户端块资源,包括:通过并行下载的方式下载所述第二目标待更新块校验和对应的待更新客户端块资源;在出现下载故障且恢复后,去重已下载的待更新客户端块资源,继续下载未下载的待更新客户端块资源。
6.根据权利要求5所述的方法,其特征在于,所述待更新客户端块资源支持断点续传。7.根据权利要求1所述的方法,其特征在于,所述应用程序包括非更新资源,所述待更新版本资源框架填充完成,包括:获取待更新版本对应的多个非更新资源;下载所述多个非更新资源,在出现下载故障且恢复后,去重已下载的非更新资源,继续下载未下载的非更新资源;在所述多个非更新资源下载完成后,将所述多个非更新资源填充至所述待更新版本资源框架;在将所述目标客户端块资源填充至所述待更新版本资源框架,且将所述待更新资源填充至所述待更新版本资源框架之后,所述待更新版本资源框架填充完成。8.根据权利要求1所述的方法,其特征在于,所述方法还包括:获取所述待更新版本对应的待更新客户端资源,将所述待更新客户端资源划分为多个待更新客户端块资源;对多个所述待更新客户端块资源进行差分编码得到待更新块编码结果,计算多个所述待更新块编码结果对应的待更新版本块校验和;根据所述多个待更新版本块校验和生成所述待更新版本对应的索引文件。9.根据权利要求1所述的方法,其特征在于,在所述获取应用程序对应的客户端资源之前,所述方法还包括:启动所述应用程序,启动应用程序更新流程;获取应用程序更新公告,获取所述应用程序对应的版本信息;其中,所述应用程序更新公告中包括待更新版本信息;在所述待更新版本信息与所述版本信息相同时,结束应用程序更新流程;在所述待更新版本信息与所述版本信息不同时,继续执行所述应用程序更新流程。10.根据权利要求9所述的方法,其特征在于,所述方法还包括:从所述应用程序更新公告中获取应用程序更新列表;其中,所述应用程序更新列表中包括新版本客户端资源对应的待更新版本信息,以及所述新版本客户端资源对应的索引文件;根据所述应用程序更新列表得到所述待更新版本信息。11.根据权利要求9所述的方法,其特征在于,在所述删除所述客户端资源之后,所述方法还包括:将所述应用程序对应的版本信息修改为所述待更新版本信息。12.一种资源更新装置,其特征在于,所述装置包括:块资源获取模块,用于获取应用程序对应的客户端资源,将所述客户端资源按照滚动窗口进行滚动得到多个客户端块资源;块校验和计算模块,用于对所述客户端块资源进行差分编码得到客户端块编码结果,计算所述客户端块编码结果对应的客户端块校验和;索引文件获取模块,用于获取待更新版本对应的索引文件,在客户端中创建所述索引文件对应的待更新版本资源框架;其中,所述待更新版本对应的索引文件用于指示多个待更新版本块校验和;
第一资源填充模块,用于在目标客户端块校验和与第一目标待更新块校验和相同时,确定所述目标客户端块校验和对应的目标客户端块资源为所述待更新版本资源框架所需要的资源,将所述目标客户端块资源填充至所述待更新版本资源框架中;其中,所述多个待更新版本块校验和中包括所述第一目标待更新块校验和,所述多个客户端块资源中包括所述目标客户端块资源;第二资源填充模块,用于遍历多个所述客户端块资源对应的多个客户端块校验和,在所述多个待更新版本块校验和中存在与所述多个客户端块校验和不同的第二目标待更新块校验和时,下载所述第二目标待更新块校验和对应的待更新客户端块资源,将所述待更新客户端块资源填充至所述待更新版本资源框架中;更新实现模块,用于在所述待更新版本资源框架填充完成后,删除所述客户端资源,采用所述待更新版本资源框架中的新版本客户端资源启动应用程序,以实现对所述应用程序的更新。13.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1~11中任一项所述的方法。14.一种电子设备,其特征在于,包括:一个或多个处理器;以及存储器,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如权利要求1~11中任一项所述的方法。
技术总结
本公开涉及计算机技术领域,具体涉及一种资源更新方法、资源更新装置、计算机可读存储介质及电子设备,上述方法包括:对客户端块资源进行差分编码得到客户端块编码结果,计算客户端块编码结果对应的客户端块校验和,获取待更新版本对应的索引文件,将目标客户端块资源填充至待更新版本资源框架中,下载第二目标待更新块校验和对应的待更新客户端块资源,将待更新客户端块资源填充至待更新版本资源框架中,在待更新版本资源框架填充完成后,删除客户端资源,采用待更新版本资源框架中的新版本客户端资源启动应用程序,以实现对应用程序的更新。通过本公开实施例的技术方案,可以解决相关技术中对应用程序进行更新时效率较差的问题。问题。问题。
技术研发人员:霍嘉明 冯颖彬
受保护的技术使用者:网易(杭州)网络有限公司
技术研发日:2023.04.03
技术公布日:2023/7/12
版权声明
本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
飞行汽车 https://www.autovtol.com/
