CN114553858A - 一种资源预下载的方法、装置以及设备 - Google Patents

一种资源预下载的方法、装置以及设备 Download PDF

Info

Publication number
CN114553858A
CN114553858A CN202210136382.5A CN202210136382A CN114553858A CN 114553858 A CN114553858 A CN 114553858A CN 202210136382 A CN202210136382 A CN 202210136382A CN 114553858 A CN114553858 A CN 114553858A
Authority
CN
China
Prior art keywords
resource
sub
resources
information
terminal
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
Application number
CN202210136382.5A
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.)
Alipay Hangzhou Information Technology Co Ltd
Original Assignee
Alipay Hangzhou Information Technology 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 Alipay Hangzhou Information Technology Co Ltd filed Critical Alipay Hangzhou Information Technology Co Ltd
Priority to CN202210136382.5A priority Critical patent/CN114553858A/zh
Publication of CN114553858A publication Critical patent/CN114553858A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/06Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/04Protocols for data compression, e.g. ROHC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本说明书实施例公开了一种资源预下载的方法、装置以及设备。方案包括:接收云端推送的资源预推信息;根据资源预推信息,向云端发送下载请求,以获取资源预推信息对应的资源包;对包含了多个子资源的资源包进行解析,得到描述信息;根据描述信息包含的各子资源分别的偏移位置,从资源包中解压得到对应的子资源;根据描述信息包含的各子资源分别的原始下载地址,将各子资源分别独立存储在终端本地,以便根据子资源与原始下载地址之间的对应关系,在终端本地访问存储的子资源。

Description

一种资源预下载的方法、装置以及设备
技术领域
本说明书涉及互联网技术领域,尤其涉及一种资源预下载的方法、装置以及设备。
背景技术
随着计算机和互联网技术的发展,线上可以执行的业务越来越多。对于部分业务来说,在特定的时间段内会出现用户访问量激增的情况,一些高频资源(比如,图片、音视频等)的下载会对云端峰值产生很大压力,相应也带来了云端带宽成本的上升。对于大量用户访问的情况,如果云端限流会造成部分资源下载失败,有损用户体验。
因此,在空闲情况下,将业务对应的部分或全部资源提前下载到客户端,等业务上线时已下载的资源可直接从客户端本地命中,减小了云端的压力,也提升了用户即时体验。
目前传统的资源预下载有两种方式:1、将业务中需要预下载的各资源的资源列表通过云端下发到客户端,客户端拿到预下载的资源列表后逐个去下载存储。2、将静态资源打包成离线资源包,预下载离线资源包后,通过挂载离线资源包去访问包内资源。
基于此,需要一种能够在降低终端压力的同时提高通用性的资源预下载方案。
发明内容
本说明书一个或多个实施例提供一种资源预下载的方法、装置、设备以及存储介质,用以解决如下技术问题:需要一种能够在降低终端压力的同时提高通用性的资源预下载方案。
为解决上述技术问题,本说明书一个或多个实施例是这样实现的:
本说明书一个或多个实施例提供的一种资源预下载的方法,包括:
接收云端推送的资源预推信息;
根据所述资源预推信息,向所述云端发送下载请求,以获取所述资源预推信息对应的资源包;
对包含了多个子资源的所述资源包进行解析,得到描述信息;
根据所述描述信息包含的各所述子资源分别的偏移位置,从所述资源包中解压得到对应的子资源;
根据所述描述信息包含的各所述子资源分别的原始下载地址,将各所述子资源分别独立存储在终端本地,以便根据所述子资源与所述原始下载地址之间的对应关系,在所述终端本地访问存储的所述子资源。
本说明书一个或多个实施例提供的一种资源预下载的装置,包括:
接收模块,接收云端推送的资源预推信息;
下载模块,根据所述资源预推信息,向所述云端发送下载请求,以获取所述资源预推信息对应的资源包;
解析模块,对包含了多个子资源的所述资源包进行解析,得到描述信息;
解压模块,根据所述描述信息包含的各所述子资源分别的偏移位置,从所述资源包中解压得到对应的子资源;
存储模块,根据所述描述信息包含的各所述子资源分别的原始下载地址,将各所述子资源分别独立存储在终端本地,以便根据所述子资源与所述原始下载地址之间的对应关系,在所述终端本地访问存储的所述子资源。
本说明书一个或多个实施例提供的一种资源预下载的设备,包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够:
接收云端推送的资源预推信息;
根据所述资源预推信息,向所述云端发送下载请求,以获取所述资源预推信息对应的资源包;
对包含了多个子资源的所述资源包进行解析,得到描述信息;
根据所述描述信息包含的各所述子资源分别的偏移位置,从所述资源包中解压得到对应的子资源;
根据所述描述信息包含的各所述子资源分别的原始下载地址,将各所述子资源分别独立存储在终端本地,以便根据所述子资源与所述原始下载地址之间的对应关系,在所述终端本地访问存储的所述子资源。
本说明书一个或多个实施例提供的一种非易失性计算机存储介质,存储有计算机可执行指令,所述计算机可执行指令设置为:
接收云端推送的资源预推信息;
根据所述资源预推信息,向所述云端发送下载请求,以获取所述资源预推信息对应的资源包;
对包含了多个子资源的所述资源包进行解析,得到描述信息;
根据所述描述信息包含的各所述子资源分别的偏移位置,从所述资源包中解压得到对应的子资源;
根据所述描述信息包含的各所述子资源分别的原始下载地址,将各所述子资源分别独立存储在终端本地,以便根据所述子资源与所述原始下载地址之间的对应关系,在所述终端本地访问存储的所述子资源。
本说明书一个或多个实施例采用的上述至少一个技术方案能够达到以下有益效果:
相比于方式1,本申请中的方案无需逐个下载资源量,减少了终端资源任务从而减少终端排队时间,资源下载的执行概率增大,提升了下载完成率。并且由于减少了终端下载任务数,尤其是预推资源很多时,只需要一次网络请求,减少了终端和云端的网络任务开销。本申请方案中的资源包可以采用压缩包的方式,(比如,对各子资源以gzip或zstd等不同的方式进行压缩)有效减少预推资源所消耗的流量,降低了终端压力。
相比于方式2,虽然将预下载的各子资源预先打包成一个自定义格式的资源包,但是在下载完成后按照资源包中各子资源与原始下载地址之间对应的关系进行解压时,对各子资源是分别独立存储的,解耦子资源跟资源包之间的关系,无需包挂载即可实现子资源的读取,达到无包化的目录(不再是那种各项相互强关联的层级目录,而是各项相互独立的目录)。能够在提升下载完成率、减少终端和云端的网络任务开销的同时,解除子资源与资源包之间的强耦合关系,提高子资源的复用性和通用性。
附图说明
为了更清楚地说明本说明书实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本说明书一个或多个实施例提供的一种资源预下载的方法的流程示意图;
图2为本说明书一个或多个实施例提供的一种应用场景下的资源预下载的整体示意图;
图3为本说明书一个或多个实施例提供的一种应用场景下的资源预下载的终端和云端的分别示意图;
图4为本说明书一个或多个实施例提供的一种应用场景下的资源包自定义格式的示意图;
图5为本说明书一个或多个实施例提供的传统方案中资源包中各子资源的结构示意图;
图6为本说明书一个或多个实施例提供的本方案中资源包中各子资源的结构示意图;
图7为本说明书一个或多个实施例提供的一种资源预下载的装置的结构示意图;
图8为本说明书一个或多个实施例提供的一种资源预下载的设备的结构示意图。
具体实施方式
本说明书实施例提供一种资源预下载方法、装置、设备以及存储介质。
为了使本技术领域的人员更好地理解本说明书中的技术方案,下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本说明书实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
为了对本申请提供的方案进行解释说明,首先对背景技术中提到的方案进行详细描述。
针对方式1,云端将需要预下载的各资源的资源地址列表(比如,包括资源1地址、资源2地址……资源N地址等)以及相关信息下发至终端,终端根据资源地址列表发起网络请求,从资源服务端(比如,主站或内容分发网络(Content Delivery Network,CDN))中下载对应的资源。对下载的资源进行完整性校验,如果校验成功则按照存储路径存储在本地,在使用时直接从本地缓存取出即可。
但是方式1仍存在以下不足之处:
1.客户端拿到预下载的资源列表后需要逐个去下载存储,当资源数量较多时,对于终端任务开销较大,比如,当预推资源为五百个时,需要开五百个线程,而且要发起五百次网络请求,体现在CPU和耗电上的终端任务开销较大。2.需要下发的资源越多,终端排队时间也就越长,部分资源被执行的几率降低,从而导致预下载的任务完成率偏低。3.通常预推的资源,往往会包含部分比较大的资源,通过原始的资源地址下载,几乎都是未进行任何的省流处理下载,导致终端消耗流量较大。4.大量的下载任务可能造成终端其它不可预知的风险,比如,网络通道被阻塞、并发导致crash、耗电量过大等。5.某些预推的资源,在云端是chunk等特殊方式,如果终端网络不支持chunk下载,那此类资源便不能支持预推。6.对于部分经过云端缩放处理图片,将其返回至终端时摘要信息(比如,由MD5信息摘要算法(MD5Message-Digest Algorithm,MD5)得到的MD5信息)可能存在不幂等情况,从而影响完整性校验。7.不支持资源二次处理。
针对方式2,其相比于方式1,其做出了一定程度的改进,云端首先确定需要预推的资源,然后按照各资源网络地址进行目录划分存储进行打包,然后将离线资源包的地址下发至终端,终端根据该地址发起网络请求,获取该离线资源包。对离线资源包进行完整性校验,通过后按整包解压,每个解压得到的资源均在对应离线包的目录下面。在使用时先按照离线资源包的地址及版本等信息匹配挂载资源包,然后访问资源的时候根据网络地址计算其在解压后的包目录下的本地子路径来使用。
方式2能够解决方式1中存在的部分不足之处,比如,其能够解决方式1中的问题1和问题2,降低终端的任务开销,提升了完成率,但是其除了方式1中未解决的问题之外,还产生了一些新的不足之处:
1.离线资源包作为一个整体,需要先进行挂载找到对应的离线包地址,然后再根据离线包地址计算对应的资源缓存地址,存在包挂载开销。2.资源的访问跟离线资源包之间强耦合,包内的资源难以全局复用。3.资源更新的时候需要整包进行更新,导致浪费流量,成本较高。4.难以对离线资源包内的资源进行如对图片进行转码等二次处理。5.主要是针对前端应用场景,并不适合native的应用场景。
基于此,本申请提出了一种资源预下载方案,其中,图1为本说明书一个或多个实施例提供的一种资源预下载方法的流程示意图。该方法可以应用于不同的业务领域,比如,互联网金融业务领域、电商业务领域、即时通讯业务领域、游戏业务领域、公务业务领域等。该流程可以由相应领域的计算设备执行,流程中的某些输入参数或者中间结果允许人工干预调节,以帮助提高准确性。
图1中的流程可以包括以下步骤:
S102:接收云端推送的资源预推信息。
图2为本说明书一个或多个实施例提供的一种应用场景下的资源预下载的整体示意图,图3为本说明书一个或多个实施例提供的一种应用场景下的资源预下载的终端和云端的分别示意图,以下通过结合图2与图3,以其所示的应用场景中流程,对图1中所示的流程进行详细解释。其中,云端包括配置平台、推送服务器以及资源服务器等,三者之间通常为独立设置,或者属于同一个场景(比如,设置在同一个服务器集群中)。通过人工输入或业务接口,向配置平台发起针对业务的预推启动指令,配置平台将需要预推的资源信息打包生成对应的资源包,资源包中至少包含有各资源对应的meta信息、资源压缩包、签名信息等。配置平台将生成的资源包上传至资源服务器,资源服务器进行存储,并通过推送服务器向终端发送资源预推信息(预推信息中通常包含有资源包相关的信息,故而在图3中的资源包信息可以理解为是预推信息中的至少部分信息)。
S104:根据所述资源预推信息,向所述云端发送下载请求,以获取所述资源预推信息对应的资源包。
终端接收到资源预推消息后进行验证,确定其是否有效(比如,对预推消息的格式、包含内容的完整度等进行验证)。若通过验证,则建立预推任务,并将该预推任务进行本地持久化,或者,建立预推任务,并将其持久化之后,再验证其有效性。持久化的任务信息经过打散或者其他下载触发时机后加入到下载任务队列中,排队等待下载。比如,当用户通过终端下载业务相关的任务时,启动预推任务,发起网络下载,从云端的资源服务器中下载获取资源包。
图4为本说明书一个或多个实施例提供的一种应用场景下的资源包自定义格式的示意图;需要说明的是,资源包为本方案中自定义的格式,其与传统的离线资源包(比如,上文方式2中的离线资源包)是不同的。
具体地,资源包中包括签名文件signature、元文件meta、指示文件manifest和资源文件resource。其中,签名文件中主要记录资源包的签名信息,防止资源包被篡改导致资源错误。元文件主要记录对应的业务扩展信息以及资源包内包含的各子资源对应的第一摘要信息(摘要信息主要用于对子资源的完整性进行校验,其可以是MD5信息,在此称作第一摘要信息,主要是为了与下文中出现的其他摘要信息进行区分)。指示文件主要用于记录各子资源的原始下载地址以及其在资源包中的偏移位置,偏移位置用于表示各子资源在资源包中的位置。资源文件主要用于携带各子资源对应的压缩文件。
S106:对包含了多个子资源的所述资源包进行解析,得到描述信息。
资源包的格式为自定义的,云端可以预先在资源预推信息中携带格式信息以下发至终端,或者,终端接收到的资源包内携带有格式信息,以便于终端对资源包进行解析。
对资源包解析得到的描述信息中,至少包含有指示文件中携带的信息,指示文件用于记录各子资源的原始下载地址以及其在资源包中的偏移位置,由此能够在资源包中获取各子资源,并获取其原始下载地址,用于后续子资源的存储。当然,描述信息中也可以包含元文件、签名文件中携带的信息,在此不做限定。
S108:根据所述描述信息包含的各所述子资源分别的偏移位置,从所述资源包中解压得到对应的子资源。
图5和图6分别为本说明书一个或多个实施例提供的传统方案以及本方案中资源包中各子资源的结构示意图;传统的方式2中的离线资源包如图5所示,其严格按照各自原始下载地址进行目录划分存储打包,比如,img文件夹为afts文件夹的子文件夹。若是想要获取图5中所示的1850687772-e7e5f.png文件,则需要预先挂载资源包,在解析访问该文件时,根据原始下载地址计算解压后的包目录下的本地子路径(如图5所示的zos文件夹-gltf-asset文件夹-mars-cli文件夹-NPSBQAARSPRG文件夹路径)来使用。
而本申请中的资源包如图6所示,各子资源不再按照原始下载地址进行目录划分,而是均处于同等的位置。此时,可以首先设置原点,比如将图6中所示的resources文件夹下的第一个子资源作为原点,并根据其他子资源与该原点之间的距离,作为偏移位置,由此即可通过该偏移位置在资源包中解压得到对应的子资源。
S110:根据所述描述信息包含的各所述子资源分别的原始下载地址,将各所述子资源分别独立存储在终端本地,以便根据所述子资源与所述原始下载地址之间的对应关系,在所述终端本地访问存储的所述子资源。
对于方式2中的子资源存储,其按照子资源的原始下载地址进行目录划分,从而实现存储,子资源与离线资源包之间属于强耦合的关系。而本申请中的方案是将子资源分别独立存储,已经起到了一定程度的解耦合。此时,无法通过目录来访问子资源,可以通过子资源与原始下载地址之间的对应关系进行访问。
相比于方式1存在的不足之处,本申请中的方案无需逐个下载资源量,减少了终端资源任务从而减少终端排队时间,资源下载的执行概率增大,提升了下载完成率。并且由于减少了终端下载任务数,尤其是预推资源很多时(比如达到五百时),只需要一次网络请求,减少了终端和云端的网络任务开销。本申请方案中的资源包可以采用压缩包的方式,(比如,对各子资源以gzip或zstd等不同的方式进行压缩)有效减少预推资源所消耗的流量。
相比于方式2存在的不足之处,虽然将预下载的各子资源预先打包成一个自定义格式的资源包,但是在下载完成后按照资源包中各子资源与原始下载地址之间对应的关系进行解压时,对各子资源是分别独立存储的,解耦子资源跟资源包之间的关系,无需包挂载即可实现子资源的读取,达到无包化的目录(不再是那种各项相互强关联的层级目录,而是各项相互独立的目录)。能够在提升下载完成率、减少终端和云端的网络任务开销的同时,解除子资源与资源包之间的强耦合关系,提高子资源的复用性。并且在资源更新时,由于各子资源之间的独立存储,故而只需将更新的资源打成一个仅包含更新资源的更新资源包,并独立预下载即可,无需对整包进行更新,降低了更新成本。
基于图1的方法,本说明书还提供了该方法的一些具体实施方案和扩展方案,下面继续进行说明。
在本说明书一个或多个实施例中,传统的方案中,终端获取离线资源包后,对下载的资源进行完整性校验,成功则按照存储路径存储到本地,校验失败则返回。此时,对于部分经过云端缩放处理图片,将其返回至终端时摘要信息(比如,由MD5信息摘要算法(MD5Message-Digest Algorithm,MD5)得到的MD5信息)可能存在不幂等情况,从而影响完整性校验。
基于此,云端在获取预推的子资源时,同步将获取时的第一摘要信息也记录在云端本地,在对所有子资源进行打包生成资源包时,将子资源的第一摘要信息映射存入到元文件中,作为描述信息中的部分内容,便于终端解压后进行完整性校验。这里的第一摘要信息是唯一的,不存在像传统方案中因缩放规则不一致导致摘要信息不幂等情况。并且,生成的资源包签名存入到签名文件中,用于防止资源包被非法篡改情况。
当终端获取了资源包后,解压得到各子资源,并根据子资源获取其对应的第二摘要信息。通过将第二摘要信息与资源包中携带的第一摘要信息进行对比,对子资源的完整性进行校验。若是对比结果一致,则通过完整性校验,将该子资源写入终端的统一缓存中,并对下一个子资源进行完整性校验。若是对比结果不一致,则直接跳转至下一个子资源进行完整性校验。通过云端在获取子资源生成资源包时就指定了每个子资源唯一的摘要信息,终端上不会再因云端缩放规则不一样导致部分子资源第一摘要信息不幂等问题,解决了此类资源完整性校验问题。
在本说明书一个或多个实施例中,传统的方式中,并不支持对子资源的二次处理(通常来说,对子资源的解压缩称作对其的一次处理,二次处理则指的是对解压缩后的子资源进行进一步地处理)。生成资源包的过程中,对子资源进行过二次处理,比如,对图像子资源进行转码、压缩等,云端将二次处理的处理信息或还原信息放在描述信息中,如此,终端在获取到资源包后,根据描述信息对子资源是否有过二次处理进行判断。若是确认经过二次处理,则可以根据描述信息对子资源进行还原后,再独立存储在终端本地。相比于传统的方案来说,能够对资源包内的子资源进行二次处理,或者对经过二次处理后的子资源进行还原处理,提高了资源包的通用性和扩展性。
在本说明书一个或多个实施例中,原始下载地址可以为网络地址url地址,上文已经提到过,可以通过自定义的资源包格式,来对url地址包含的各条目之间的关联关系进行解耦,从而生成资源包。
而在云端确定url地址目录之前,云端首先确定尚未开始的指定线上活动的资源网络地址目录,比如,电商平台在某特定时间段内展开的大促活动,并基于该资源网络地址目录获取各子资源,从而生成资源包。当该指定线上活动开始后,确定在客户端内生成该线上活动的活动页面所需的子资源的url地址,比如,活动页面中所需的音频、图片、视频等子资源。若是根据该url地址在终端本地查询到存在对应的子资源,则说明预下载成功,可以直接在终端本地读取该子资源,来生成活动页面。
在本说明书一个或多个实施例中,传统的方案中,当某些预推的资源,在云端是chunk等特殊方式时,如果终端网络不支持chunk下载,那此类资源便不能支持预推。
基于此,当云端获取了多个chunk资源时,将其分别作为多个子资源,然后按照上文中已经描述过的自定义的格式,或者指定的通用协议,对其进行打包,从而得到资源包。当然,资源包内也可以包括chunk资源之外的其他资源。此时,终端在下载资源包时,无需支持特定chunk协议也能正常使用。
在本说明书一个或多个实施例中,上文已经说过,对资源包进行更新时,无需进行整包更新,只需要云端将更新资源生成更新包,更新包与前文中描述的资源包为相同的自定义格式,将对应的更新信息发送至终端,终端发起下载任务,获取该更新包。
对更新包进行解析,即可得到对更新资源的描述信息,通过描述信息可以得知该更新资源的内容,比如,更新资源的格式、在业务的活动页面中所起到的功能等。如此,可以得到更新资源与已存储的各子资源之间的关联指数,关联指数可以根据两者在活动页面中所起到的功能的相似度、格式之间的相似度、url地址之间的关联度等,得到关联指数,关联指数与相似度、关联度之间呈正相关。在确定了关联指数最高的指定子资源后,确定该指定子资源的存储位置,将更新资源存储在与指定子资源更接近的位置,如此能够保证在生成活动页面时,更便捷的寻找到更新资源,尤其是更新资源为之前已存储的子资源的替代资源时,使得替代过程更加快速准确。
基于同样的思路,本说明书一个或多个实施例还提供了上述方法对应的装置和设备,如图7、图8所示。
图7为本说明书一个或多个实施例提供的一种资源预下载的装置的结构示意图,所述装置包括:
接收模块702,接收云端推送的资源预推信息;
下载模块704,根据所述资源预推信息,向所述云端发送下载请求,以获取所述资源预推信息对应的资源包;
解析模块706,对包含了多个子资源的所述资源包进行解析,得到描述信息;
解压模块708,根据所述描述信息包含的各所述子资源分别的偏移位置,从所述资源包中解压得到对应的子资源;
存储模块710,根据所述描述信息包含的各所述子资源分别的原始下载地址,将各所述子资源分别独立存储在终端本地,以便根据所述子资源与所述原始下载地址之间的对应关系,在所述终端本地访问存储的所述子资源。
可选地,所述存储模块710,在所述描述信息中获取所述子资源对应的第一摘要信息;
对解压得到的所述子资源进行摘要提取,获取所述子资源对应的第二摘要信息;
根据所述第一摘要信息和所述第二摘要信息,对所述子资源进行完整性校验;
若通过所述完整性校验,则将所述子资源写入终端的统一缓存中,并对下一个子资源进行完整性校验。
可选地,所述存储模块710,判断所述子资源是否在所述资源包内进行过二次处理;
若是,则根据所述描述信息,相应地对所述子资源进行还原后再独立存储在终端本地。
可选地,所述原始下载地址为网络地址;
所述装置还包括:
解耦模块712,所述云端确定资源网络地址目录;
根据所述资源网络地址目录,获取所述多个子资源;
按照自定义的格式,对所述资源网络地址目录包含的各条目之间的关联关系进行解耦,根据所述解耦的结果对所述多个子资源打包,得到包含所述描述信息的所述资源包,以便所述终端预下载。
可选地,所述解耦模块712,所述云端确定尚未开始的指定线上活动的资源网络地址目录;
所述存储模块710,在所述指定线上活动开始后,确定生成所述指定线上活动的活动页面所需的子资源的原始下载地址;
根据所述原始下载地址,在所述终端本地查询是否有对应的所述子资源存在;
若是,从直接在所述终端本地读取所述子资源,用于生成所述活动页面。
可选地,还包括:
chunk资源模块714,所述云端获取多个chunk资源,作为所述多个子资源;
按照自定义的格式或者指定的通用协议,对所述多个子资源打包,得到所述资源包,以便不支持chunk协议的所述终端预下载。
可选地,还包括:
更新模块716,接收所述云端发送的针对所述资源包的更新信息,并根据所述更新信息获取携带有更新资源的更新包;
对所述更新包进行解析,得到所述更新资源对应的描述信息;
根据所述更新资源对应的描述信息,在已存储的各子资源中,确定与所述更新资源的关联指数最高的指定子资源;
确定所述指定子资源的存储位置,并根据所述存储位置对所述更新资源进行存储。
可选地,所述资源包包括签名文件、元文件、指示文件、资源文件;
所述签名文件用于记录所述资源包的签名信息;所述元文件用于记录对应的业务扩展信息以及所述子资源对应的第一摘要信息;所述显示文件用于记录各所述子资源的原始下载地址以及在所述资源包中的偏移位置;所述资源文件用于携带所述子资源对应的压缩文件。
图8为本说明书一个或多个实施例提供的一种资源预下载的设备的结构示意图,所述设备包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够:
接收云端推送的资源预推信息;
根据所述资源预推信息,向所述云端发送下载请求,以获取所述资源预推信息对应的资源包;
对包含了多个子资源的所述资源包进行解析,得到描述信息;
根据所述描述信息包含的各所述子资源分别的偏移位置,从所述资源包中解压得到对应的子资源;
根据所述描述信息包含的各所述子资源分别的原始下载地址,将各所述子资源分别独立存储在终端本地,以便根据所述子资源与所述原始下载地址之间的对应关系,在所述终端本地访问存储的所述子资源。
基于同样的思路,本说明书一个或多个实施例还提供了对应于上述方法的一种非易失性计算机存储介质,存储有计算机可执行指令,所述计算机可执行指令设置为:
接收云端推送的资源预推信息;
根据所述资源预推信息,向所述云端发送下载请求,以获取所述资源预推信息对应的资源包;
对包含了多个子资源的所述资源包进行解析,得到描述信息;
根据所述描述信息包含的各所述子资源分别的偏移位置,从所述资源包中解压得到对应的子资源;
根据所述描述信息包含的各所述子资源分别的原始下载地址,将各所述子资源分别独立存储在终端本地,以便根据所述子资源与所述原始下载地址之间的对应关系,在所述终端本地访问存储的所述子资源。
在20世纪90年代,对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(Programmable Logic Device,PLD)(例如现场可编程门阵列(Field Programmable GateArray,FPGA))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字系统“集成”在一片PLD上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logic compiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(Hardware Description Language,HDL),而HDL也并非仅有一种,而是有许多种,如ABEL(Advanced Boolean Expression Language)、AHDL(Altera Hardware DescriptionLanguage)、Confluence、CUPL(Cornell University Programming Language)、HDCal、JHDL(Java Hardware Description Language)、Lava、Lola、MyHDL、PALASM、RHDL(RubyHardware Description Language)等,目前最普遍使用的是VHDL(Very-High-SpeedIntegrated Circuit Hardware Description Language)与Verilog。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。
控制器可以按任何适当的方式实现,例如,控制器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:ARC625D、Atmel AT91SAM、Microchip PIC18F26K20以及Silicone Labs C8051F320,存储器控制器还可以被实现为存储器的控制逻辑的一部分。本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本说明书时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
本领域内的技术人员应明白,本说明书实施例可提供为方法、系统、或计算机程序产品。因此,本说明书实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本说明书实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本说明书是参照根据本说明书实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本说明书可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本说明书,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、设备、非易失性计算机存储介质实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
以上所述仅为本说明书的一个或多个实施例而已,并不用于限制本说明书。对于本领域技术人员来说,本说明书的一个或多个实施例可以有各种更改和变化。凡在本说明书的一个或多个实施例的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本说明书的权利要求范围之内。

Claims (17)

1.一种资源预下载的方法,包括:
接收云端推送的资源预推信息;
根据所述资源预推信息,向所述云端发送下载请求,以获取所述资源预推信息对应的资源包;
对包含了多个子资源的所述资源包进行解析,得到描述信息;
根据所述描述信息包含的各所述子资源分别的偏移位置,从所述资源包中解压得到对应的子资源;
根据所述描述信息包含的各所述子资源分别的原始下载地址,将各所述子资源分别独立存储在终端本地,以便根据所述子资源与所述原始下载地址之间的对应关系,在所述终端本地访问存储的所述子资源。
2.如权利要求1所述的方法,所述将各所述子资源分别独立存储在终端本地,具体包括:
在所述描述信息中获取所述子资源对应的第一摘要信息;
对解压得到的所述子资源进行摘要提取,获取所述子资源对应的第二摘要信息;
根据所述第一摘要信息和所述第二摘要信息,对所述子资源进行完整性校验;
若通过所述完整性校验,则将所述子资源写入终端的统一缓存中,并对下一个子资源进行完整性校验。
3.如权利要求1所述的方法,所述将各所述子资源分别独立存储在终端本地,具体包括:
判断所述子资源是否在所述资源包内进行过二次处理;
若是,则根据所述描述信息,相应地对所述子资源进行还原后再独立存储在终端本地。
4.如权利要求1所述的方法,所述原始下载地址为网络地址;
所述接收云端推送的资源预推信息之前,所述方法还包括:
所述云端确定资源网络地址目录;
根据所述资源网络地址目录,获取所述多个子资源;
按照自定义的格式,对所述资源网络地址目录包含的各条目之间的关联关系进行解耦,根据所述解耦的结果对所述多个子资源打包,得到包含所述描述信息的所述资源包,以便所述终端预下载。
5.如权利要求4所述的方法,所述云端确定资源网络地址目录,具体包括:
所述云端确定尚未开始的指定线上活动的资源网络地址目录;
所述根据所述子资源与所述原始下载地址之间的对应关系,在所述终端本地访问存储的所述子资源,具体包括:
在所述指定线上活动开始后,确定生成所述指定线上活动的活动页面所需的子资源的原始下载地址;
根据所述原始下载地址,在所述终端本地查询是否有对应的所述子资源存在;
若是,从直接在所述终端本地读取所述子资源,用于生成所述活动页面。
6.如权利要求1所述的方法,所述接收云端推送的资源预推信息之前,所述方法还包括:
所述云端获取多个chunk资源,作为所述多个子资源;
按照自定义的格式或者指定的通用协议,对所述多个子资源打包,得到所述资源包,以便不支持chunk协议的所述终端预下载。
7.如权利要求1所述的方法,所述将各所述子资源分别独立存储在终端本地之后,所述方法还包括:
接收所述云端发送的针对所述资源包的更新信息,并根据所述更新信息获取携带有更新资源的更新包;
对所述更新包进行解析,得到所述更新资源对应的描述信息;
根据所述更新资源对应的描述信息,在已存储的各子资源中,确定与所述更新资源的关联指数最高的指定子资源;
确定所述指定子资源的存储位置,并根据所述存储位置对所述更新资源进行存储。
8.如权利要求1~7中任一项所述的方法,所述资源包包括签名文件、元文件、指示文件、资源文件;
所述签名文件用于记录所述资源包的签名信息;所述元文件用于记录对应的业务扩展信息以及所述子资源对应的第一摘要信息;所述显示文件用于记录各所述子资源的原始下载地址以及在所述资源包中的偏移位置;所述资源文件用于携带所述子资源对应的压缩文件。
9.一种资源预下载的装置,包括:
接收模块,接收云端推送的资源预推信息;
下载模块,根据所述资源预推信息,向所述云端发送下载请求,以获取所述资源预推信息对应的资源包;
解析模块,对包含了多个子资源的所述资源包进行解析,得到描述信息;
解压模块,根据所述描述信息包含的各所述子资源分别的偏移位置,从所述资源包中解压得到对应的子资源;
存储模块,根据所述描述信息包含的各所述子资源分别的原始下载地址,将各所述子资源分别独立存储在终端本地,以便根据所述子资源与所述原始下载地址之间的对应关系,在所述终端本地访问存储的所述子资源。
10.如权利要求9所述的装置,所述存储模块,在所述描述信息中获取所述子资源对应的第一摘要信息;
对解压得到的所述子资源进行摘要提取,获取所述子资源对应的第二摘要信息;
根据所述第一摘要信息和所述第二摘要信息,对所述子资源进行完整性校验;
若通过所述完整性校验,则将所述子资源写入终端的统一缓存中,并对下一个子资源进行完整性校验。
11.如权利要求9所述的装置,所述存储模块,判断所述子资源是否在所述资源包内进行过二次处理;
若是,则根据所述描述信息,相应地对所述子资源进行还原后再独立存储在终端本地。
12.如权利要求9所述的装置,所述原始下载地址为网络地址;
所述装置还包括:
解耦模块,所述云端确定资源网络地址目录;
根据所述资源网络地址目录,获取所述多个子资源;
按照自定义的格式,对所述资源网络地址目录包含的各条目之间的关联关系进行解耦,根据所述解耦的结果对所述多个子资源打包,得到包含所述描述信息的所述资源包,以便所述终端预下载。
13.如权利要求12所述的装置,所述解耦模块,所述云端确定尚未开始的指定线上活动的资源网络地址目录;
所述存储模块,在所述指定线上活动开始后,确定生成所述指定线上活动的活动页面所需的子资源的原始下载地址;
根据所述原始下载地址,在所述终端本地查询是否有对应的所述子资源存在;
若是,从直接在所述终端本地读取所述子资源,用于生成所述活动页面。
14.如权利要求9所述的装置,还包括:
chunk资源模块,所述云端获取多个chunk资源,作为所述多个子资源;
按照自定义的格式或者指定的通用协议,对所述多个子资源打包,得到所述资源包,以便不支持chunk协议的所述终端预下载。
15.如权利要求9所述的装置,还包括:
更新模块,接收所述云端发送的针对所述资源包的更新信息,并根据所述更新信息获取携带有更新资源的更新包;
对所述更新包进行解析,得到所述更新资源对应的描述信息;
根据所述更新资源对应的描述信息,在已存储的各子资源中,确定与所述更新资源的关联指数最高的指定子资源;
确定所述指定子资源的存储位置,并根据所述存储位置对所述更新资源进行存储。
16.如权利要求9~15中任一项所述的装置,所述资源包包括签名文件、元文件、指示文件、资源文件;
所述签名文件用于记录所述资源包的签名信息;所述元文件用于记录对应的业务扩展信息以及所述子资源对应的第一摘要信息;所述显示文件用于记录各所述子资源的原始下载地址以及在所述资源包中的偏移位置;所述资源文件用于携带所述子资源对应的压缩文件。
17.一种资源预下载的设备,包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够:
接收云端推送的资源预推信息;
根据所述资源预推信息,向所述云端发送下载请求,以获取所述资源预推信息对应的资源包;
对包含了多个子资源的所述资源包进行解析,得到描述信息;
根据所述描述信息包含的各所述子资源分别的偏移位置,从所述资源包中解压得到对应的子资源;
根据所述描述信息包含的各所述子资源分别的原始下载地址,将各所述子资源分别独立存储在终端本地,以便根据所述子资源与所述原始下载地址之间的对应关系,在所述终端本地访问存储的所述子资源。
CN202210136382.5A 2022-02-15 2022-02-15 一种资源预下载的方法、装置以及设备 Pending CN114553858A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210136382.5A CN114553858A (zh) 2022-02-15 2022-02-15 一种资源预下载的方法、装置以及设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210136382.5A CN114553858A (zh) 2022-02-15 2022-02-15 一种资源预下载的方法、装置以及设备

Publications (1)

Publication Number Publication Date
CN114553858A true CN114553858A (zh) 2022-05-27

Family

ID=81676399

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210136382.5A Pending CN114553858A (zh) 2022-02-15 2022-02-15 一种资源预下载的方法、装置以及设备

Country Status (1)

Country Link
CN (1) CN114553858A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115878138A (zh) * 2023-03-03 2023-03-31 腾讯科技(深圳)有限公司 应用预下载方法、装置、计算机、存储介质
CN115883915A (zh) * 2023-02-14 2023-03-31 北京格如灵科技有限公司 一种vr资源的快速分发方法、系统、存储介质及设备

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115883915A (zh) * 2023-02-14 2023-03-31 北京格如灵科技有限公司 一种vr资源的快速分发方法、系统、存储介质及设备
CN115883915B (zh) * 2023-02-14 2023-05-02 北京格如灵科技有限公司 一种vr资源的快速分发方法、系统、存储介质及设备
CN115878138A (zh) * 2023-03-03 2023-03-31 腾讯科技(深圳)有限公司 应用预下载方法、装置、计算机、存储介质
CN115878138B (zh) * 2023-03-03 2023-08-15 腾讯科技(深圳)有限公司 应用预下载方法、装置、计算机、存储介质

Similar Documents

Publication Publication Date Title
US9552382B2 (en) Reference counter integrity checking
WO2017157178A1 (zh) 一种移动终端应用程序的更新方法和装置
US8126859B2 (en) Updating a local version of a file based on a rule
CN114553858A (zh) 一种资源预下载的方法、装置以及设备
WO2021237467A1 (zh) 文件上传方法、文件下载方法和文件管理装置
CN107479868B (zh) 一种界面加载方法、装置及设备
WO2023000952A1 (zh) 基于邮箱的票据处理
CN113873013B (zh) 一种离线包重组方法及系统
CN106897052B (zh) Apk文件压缩方法及装置
CN104572964A (zh) 一种压缩文件的解压方法和装置
CN111506747B (zh) 文件解析方法、装置、电子设备及存储介质
CN112579955A (zh) 一种页面访问方法、设备、介质及电子设备
CA2930061C (en) Variants of files in a file system
CN108228246B (zh) 一种应用安装包的生成方法及装置
CN115080114A (zh) 应用程序的移植处理方法、装置和介质
CN109002710B (zh) 一种检测方法、装置及计算机可读存储介质
CN114816816A (zh) 崩溃堆栈信息处理方法、装置、设备及存储介质
CN105812894A (zh) 一种基于智能终端的视频文件处理方法和装置
CN112698842A (zh) 获取应用程序的额外信息的方法及装置
CN112286974A (zh) Apk压缩存储、还原和检索方法及相关设备
US8990265B1 (en) Context-aware durability of file variants
CN108763425B (zh) 存储和读取音频文件的方法和装置
CN110908958B (zh) 一种文件处理方法、装置、终端及存储介质
WO2023217106A1 (zh) 视频播放方法及装置
CN116610823B (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