掌桥专利:专业的专利平台
掌桥专利
首页

一种资源加载方法及客户端、服务器、存储介质

文献发布时间:2023-06-19 11:42:32


一种资源加载方法及客户端、服务器、存储介质

技术领域

本申请涉及电子应用领域,尤其涉及一种资源加载方法及客户端、服务器、存储介质。

背景技术

随着智能终端设备的广泛应用,终端设备上的应用程序(Application,APP)也随着用户的需求变动,APP需要根据用户的需求进行资源更新。

目前,可以发布一个客户端新版本,在客户端新版本中携带有更新资源,用户下载该版本进行本地安装,进而实现资源的更新,该方案会导致更新慢、步骤繁琐的问题;由此,还提出了一种客户端热修复框架,通过修复类加载机制,动态加载外部代码,进而实现程序的自动更新,然而,该方案会导致资源更新准确性低的问题。

发明内容

本申请实施例提供一种资源加载方法及客户端、服务器、存储介质,能够快速更新资源的同时,提高资源更新的准确性。

本申请的技术方案是这样实现的:

第一方面,本申请实施例提供一种资源加载方法,应用于客户端,所述方法包括:

在接收到服务器发送的更新资源包的情况下,解析所述更新资源包,得到待更新资源文件和资源映射关系;

为所述待更新资源文件分配第一资源标识,并将所述第一资源标识更新至所述资源映射关系中,得到更新后的资源映射关系;

在应用加载资源的情况下,利用所述更新后的资源映射关系,确定出所述待更新资源文件。

第二方面,本申请实施例提供一种资源加载方法,应用于服务器,所述方法包括:

将待更新资源文件和第二资源标识的映射关系存储至资源描述文件,并将所述待更新资源文件和所述资源描述文件打包成更新资源包;所述第二资源标识为所述待更新资源文件更新的

将所述更新资源包下载至客户端中,以供所述客户端根据所述更新资源包进行待更新资源的资源加载。

第三方面,本申请实施例提供一种客户端,所述客户端包括:

解析单元,用于在接收到服务器发送的更新资源包的情况下,解析所述更新资源包,得到待更新资源文件和资源映射关系;

分配单元,用于为所述待更新资源文件分配第一资源标识;

更新单元,用于将所述第一资源标识更新至所述资源映射关系中,得到更新后的资源映射关系;

加载单元,用于在应用加载资源的情况下,利用所述更新后的资源映射关系,确定出所述待更新资源文件。

第四方面,本申请实施例提供一种客户端,所述客户端包括:第一处理器、第一发送器、第一接收器、第一存储器及第一通信总线;所述第一处理器执行第一存储器存储的运行程序时实现如上述任一项所述的方法。

第五方面,本申请实施例提供一种服务器,所述服务器包括:

打包单元,用于将待更新资源文件和第二资源标识的映射关系存储至资源描述文件,并将所述待更新资源文件和所述资源描述文件打包成更新资源包;

下载单元,用于将所述更新资源包下载至客户端中,以供所述客户端根据所述更新资源包进行待更新资源的资源加载。

第六方面,本申请实施例提供一种服务器,所述服务器包括:第二处理器、第二发送器、第二接收器、第二存储器及第二通信总线;所述第二处理器执行第二存储器存储的运行程序时实现如上述的方法。

第七方面,本申请实施例提供一种第一存储介质,其上存储有计算机程序,其特征在于,该计算机程序被第一处理器执行时实现如上述任一项所述的方法。

第八方面,本申请实施例提供一种第二存储介质,其上存储有计算机程序,其特征在于,该计算机程序被第二处理器执行时实现如上述的方法。

本申请实施例提供了一种资源加载方法及客户端、服务器、存储介质,应用于客户端,该方法包括:在接收到服务器发送的更新资源包的情况下,解析更新资源包,得到待更新资源文件和资源映射关系;为待更新资源文件分配第一资源标识,并将第一资源标识更新至资源映射关系中,得到更新后的资源映射关系;在应用加载资源的情况下,利用更新后的资源映射关系,确定出待更新资源文件。采用上述实现方案,服务器下发更新资源包至客户端,能够快速的更新资源,进一步地,客户端为待更新资源文件分配第一资源标识并利用第一资源标识更新资源映射关系,进而能够准确的利用第二资源标识查找到待更新资源文件,提高了资源更新的准确性。

附图说明

图1为本申请实施例提出的一种资源加载方法的流程图一;

图2为本申请实施例提出的一种示例性的更新资源包下发的示意图;

图3为本申请实施例提出的一种示例性的资源映射关系更新的示意图;

图4为本申请实施例提出的一种示例性的资源加载的示意图;

图5为本申请实施例提出的一种资源加载方法的流程图二;

图6为本申请实施例提出的一种示例性的资源打包的示意图;

图7为本申请实施例提出的一种客户端的结构示意图一;

图8为本申请实施例提出的一种客户端的结构示意图二;

图9为本申请实施例提出的一种服务器的结构示意图一;

图10为本申请实施例提出的一种服务器的结构示意图二。

具体实施方式

应当理解,此处描述的具体实施例仅仅用以解释本申请。并不用于限定本申请。

在本申请的一实施例中,本申请实施例提供一种资源加载方法,应用于客户端,如图1所示,该方法可以包括:

S101、在接收到服务器发送的更新资源包的情况下,解析更新资源包,得到待更新资源文件和资源映射关系。

本申请实施例提供的一种资源加载方法适用于资源更新时应用加载资源的场景下。

本申请实施例中,在需要更新资源的场景中,客户端接收服务器下发的更新资源包,此时,客户端触发加载程序,并利用资源加载器将更新资源包加载至资源管理器,资源管理器对更新资源包进行解析,得到待更新资源文件和资源描述文件,之后,从资源描述文件中获取资源映射关系。

需要说明的是,待更新资源文件的文件类型可以为图片、可扩展标记(ExtensibleMarkup Language,XML)文件等文件类型,具体的根据实际情况进行选择,本申请实施例不做具体的限定。

需要说明的是,资源映射关系中存储有待更新资源文件和待更新资源文件对应的旧资源标识(即第二资源标识)。

示例性的,如图2所述,客户端包括资源加载器和资源管理器,res.split(资源更新资源包)下载至客户端中,触发客户端的加载程序,客户端的资源加载器将更新资源包加载至资源管理器中,资源管理器对res.split进行解析。

S102、为待更新资源文件分配第一资源标识,并将第一资源标识更新至资源映射关系中,得到更新后的资源映射关系。

在解析更新资源包,得到待更新资源文件和资源映射关系之后,就要为待更新资源分配第一资源标识,并利用第一资源标识更新资源映射关系了。

需要说明的是,为待更新资源文件分配的第一资源标识的标识前缀与资源映射关系中待分配资源文件对应的旧资源标识的标识前缀不同,使得资源标识的区别明显,不会重复,进而降低了串号或者后续的资源查找失败的风险,提高了资源更新的准确性。

本申请实施例中,在为待更新资源分配第一资源标识之后,对资源映射关系进行解析,从资源映射关系中,查找出待更新资源对应的第二资源标识,并建立第一资源标识和第二资源标识之间的映射关系,得到更新后的资源映射关系。

示例性的,如图3所示,解析res.json(资源描述文件),读取old_mapping(资源映射关系)中存储有图片1和图片1对应的old id1的映射关系、XML1和XML1对应的old id2的映射关系,之后将图片1对应的new id1映射到old id1中,将XML1对应的new id2映射到oldid1中,组成new_mapping(更新后的资源映射关系)。

S103、在应用加载资源的情况下,利用更新后的资源映射关系,确定出待更新资源文件。

在为待更新资源文件分配第一资源标识,并利用第一资源标识更新资源映射关系之后,在应用加载资源的情况下,利用更新后的资源映射关系,确定出待更新资源并加载待更新资源。

具体的,将第二资源标识传入资源查找器,并通过资源查找器从更新后的资源映射关系中查找第二资源标识;在从更新后的资源映射关系中查找到第二资源标识的情况下,从更新后的资源映射关系中确定第二资源标识映射的第一资源标识;利用第一资源标识,确定待更新资源文件。

需要说明的是,资源查找器为Hook资源查找器,将第二资源标识传入Hook资源查找器中,Hook资源查找器从更新后的资源映射关系中查找第二资源标识对应的第一资源标识,并利用第一资源标识查找待更新资源文件。

示例性的,如图4所示,将old_id1传输至Hook资源查找器中,Hook资源查找器从new_mapping中查找old_id1映射的new_id1,之后,利用查找到的new_id1确定图片1,实现图片加载的过程。

可以理解的是,服务器下发更新资源包至客户端,能够快速的更新资源,进一步地,客户端为待更新资源文件分配第一资源标识并利用第一资源标识更新资源映射关系,进而能够准确的利用第二资源标识查找到待更新资源文件,提高了资源更新的准确性。

在本申请的一实施例中,本申请实施例提供一种资源加载方法,应用于服务器,如图5所示,该方法可以包括:

S201、将待更新资源文件和第二资源标识的映射关系存储至资源描述文件,并将待更新资源文件和资源描述文件打包成更新资源包。

在本申请实施例中,在需要更新资源的场景中,将待更新资源文件和旧资源标识(第二资源标识)的资源映射关系添加至资源描述文件中,并将待更新资源文件和资源描述文件共同打包成更新资源包。

需要说明的是,资源映射关系可以以资源映射表的形式存储。

示例性的,如图6所示,res.json中携带old_mapping,其中包括图片1和old_id1之间的映射关系,以及XML1和old_id2之间的映射关系,之后将图片、XML和res.json打包成res.split压缩包。

S202、将更新资源包下载至客户端中,以供客户端根据更新资源包进行待更新资源的资源加载。

本申请实施例中,服务器将更新资源包下发至客户端,客户端根据更新资源包进行待更新资源的资源加载过程已在前进行了详细描述,在此不做赘述。

可以理解的是,在资源更新时,服务器将携带待更新资源文件和资源映射关系的更新资源包下发至客户端,不需要发布新版本,使得触达用户更快,客户端可直接基于更新资源包进行待更新资源的资源加载,能够使得线上用户无感知的动态修复资源。

在本申请的另一实施例中,本申请实施例提供一种客户端1,如图7所示,该客户端1包括:

解析单元10,用于在接收到服务器发送的更新资源包的情况下,解析所述更新资源包,得到待更新资源文件和资源映射关系;

分配单元11,用于为所述待更新资源文件分配第一资源标识;

更新单元12,用于将所述第一资源标识更新至所述资源映射关系中,得到更新后的资源映射关系;

加载单元13,用于在应用加载资源的情况下,利用所述更新后的资源映射关系,确定出所述待更新资源文件。

可选的,所述客户端还包括:查找单元和建立单元;

所述查找单元,用于从所述资源映射关系中,查找出所述待更新资源文件对应的第二资源标识;

所述建立单元,用于建立所述第一资源标识和所述第二资源标识之间的映射关系,得到所述更新后的资源映射关系。

可选的,所述第一资源标识的标识前缀和所述第二资源标识的标识前缀不同。

可选的,所述客户端还包括:确定单元;

所述查找单元,还用于将所述第二资源标识传入资源查找器,并通过所述资源查找器从所述更新后的资源映射关系中查找所述第二资源标识;

所述确定单元,用于在从所述更新后的资源映射关系中查找到所述第二资源标识的情况下,从所述更新后的资源映射关系中确定所述第二资源标识映射的第一资源标识;利用所述第一资源标识,确定所述待更新资源文件。

可选的,所述客户端还包括:获取单元;

所述加载单元13,还用于触发资源加载程序,并利用资源加载器将所述更新资源包加载至资源管理器;

所述解析单元10,还用于利用所述资源管理器解析所述更新资源包,得到所述待更新资源文件和资源描述文件;

所述获取单元,用于从所述资源描述文件中获取所述资源映射关系。

可选的,所述待更新资源文件的文件类型包括:图片、可扩展标记语言XML文件。

本申请实施例提供的一种客户端,在接收到服务器发送的更新资源包的情况下,解析更新资源包,得到待更新资源文件和资源映射关系;为待更新资源文件分配第一资源标识,并将第一资源标识更新至资源映射关系中,得到更新后的资源映射关系;在应用加载资源的情况下,利用更新后的资源映射关系,确定出待更新资源文件。由此可见,本实施例提出的客户端,服务器下发更新资源包至客户端,能够快速的更新资源,进一步地,客户端为待更新资源文件分配第一资源标识并利用第一资源标识更新资源映射关系,进而能够准确的利用第二资源标识查找到待更新资源文件,提高了资源更新的准确性。

图8为本申请实施例提供的一种客户端1的组成结构示意图二,在实际应用中,基于上述实施例的同一公开构思下,如图8所示,本实施例的客户端1包括:第一处理器14、第一存储器15及第一通信总线16。

在具体的实施例的过程中,上述解析单元10、分配单元11、更新单元12、加载单元13、查找单元、确定单元、建立单元和获取单元可由位于客户端1上的第一处理器14实现,上述第一处理器14可以为特定用途集成电路(ASIC,Application Specific IntegratedCircuit)、数字信号处理器(DSP,Digital Signal Processor)、数字信号处理图像处理装置(DSPD,Digital Signal Processing Device)、可编程逻辑图像处理装置(PLD,Programmable Logic Device)、现场可编程门阵列(FPGA,Field Programmable GateArray)、CPU、控制器、微控制器、微处理器中的至少一种。可以理解地,对于不同的设备,用于实现上述处理器功能的电子器件还可以为其它,本实施例不作具体限定。

在本申请实施例中,上述第一通信总线16用于第一处理器14和第一存储器15的通信连接;上述第一处理器14执行第一存储器15中存储的运行程序时实现如下的资源加载方法:

在接收到服务器发送的更新资源包的情况下,解析所述更新资源包,得到待更新资源文件和资源映射关系;

为所述待更新资源文件分配第一资源标识,并将所述第一资源标识更新至所述资源映射关系中,得到更新后的资源映射关系;

在应用加载资源的情况下,利用所述更新后的资源映射关系,确定出所述待更新资源文件。

本申请实施例提供一种第一存储介质,其上存储有计算机程序,上述计算机可读存储介质存储有一个或者多个程序,上述一个或者多个程序可被一个或者多个第一处理器执行,应用客户端端中,该计算机程序实现如上述的资源加载方法。

在本申请的再一实施例中,本申请实施例提供一种服务器2,如图9所示,该服务器2包括:

打包单元20,用于将待更新资源文件和第二资源标识的映射关系存储至资源描述文件,并将所述待更新资源文件和所述资源描述文件打包成更新资源包;

下载单元21,用于将所述更新资源包下载至客户端中,以供所述客户端根据所述更新资源包进行待更新资源的资源加载。

本申请实施例提供的一种服务器,将待更新资源文件和第二资源标识的映射关系存储至资源描述文件,并将待更新资源文件和资源描述文件打包成更新资源包;将更新资源包下载至客户端中,以供客户端根据更新资源包进行待更新资源的资源加载。由此可见,本实施例提出的服务器,服务器下发更新资源包至客户端,能够快速的更新资源,进一步地,客户端为待更新资源文件分配第一资源标识并利用第一资源标识更新资源映射关系,进而能够准确的利用第二资源标识查找到待更新资源文件,提高了资源更新的准确性。

图10为本申请实施例提供的一种服务器2的组成结构示意图二,在实际应用中,基于上述实施例的同一公开构思下,如图10所示,本实施例的服务器2包括:第二处理器22、第二存储器23及第二通信总线24。

在具体的实施例的过程中,上述打包单元20和下载单元21可由位于服务器2上的第二处理器22实现,上述第二处理器22可以为ASIC、DSP、DSPD、PLD、FPGA、CPU、控制器、微控制器、微处理器中的至少一种。可以理解地,对于不同的设备,用于实现上述处理器功能的电子器件还可以为其它,本实施例不作具体限定。

在本申请实施例中,上述第二通信总线24用于第二处理器22和第二存储器23之间的通信连接;上述第二处理器22执行第二存储器23中存储的运行程序时实现如下的资源加载方法:

将待更新资源文件和第二资源标识的映射关系存储至资源描述文件,并将所述待更新资源文件和所述资源描述文件打包成更新资源包;将所述更新资源包下载至客户端中,以供所述客户端根据所述更新资源包进行待更新资源的资源加载。

本申请实施例提供一种第二存储介质,其上存储有计算机程序,上述计算机可读存储介质存储有一个或者多个程序,上述一个或者多个程序可被一个或者多个第二处理器执行,应用于服务器中,该计算机程序实现如上述的资源加载方法。

需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本公开的技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台图像显示设备(可以是手机,计算机,服务器,空调器,或者服务器等)执行本公开各个实施例所述的方法。

以上所述,仅为本申请的较佳实施例而已,并非用于限定本申请的保护范围。

相关技术
  • 一种资源加载方法及客户端、服务器、存储介质
  • 资源加载方法、装置、服务器和存储介质
技术分类

06120113023389