本技术涉及人工智能开发与金融科技领域,尤其涉及资源数据处理方法、装置、计算机设备及存储介质。
背景技术:
1、随着互联网技术的快速发展,越来越多的金融科技公司,例如保险公司、银行等都开发有服务于自身业务的应用程序。在这些应用程序中,通常会具有应用换肤功能,换肤是一种动态替换应用程序资源的功能,应用程序通过加载一个主题资源包,即可将内置的资源替换为资源包内的资源,例如常见的有夜间模式,或者为用户定制的皮肤包等。
2、在现有技术中,应用换肤的方案主要是利用安卓系统的layoutinflater.factory2机制。layoutinflater.factory2是在应用程序加载解析布局文件的接口回调,里面会回传详细的资源加载信息,并且提供了返回资源的接口,通过这些加载信息可以去拦截app资源加载的过程,之后再进行资源替换的处理。然而,这种应用换肤的方案只能实现对于布局文件中的资源替换,对于一些java其他加载资源的场景是没有办法拦截掉的,从而导致应用程序的资源替换的应用范围较小,扩展性差,无法满足用户对于应用程序的资源替换功能的个性化需求。
技术实现思路
1、本技术实施例的目的在于提出一种资源数据处理方法、装置、计算机设备及存储介质,以解决现有的应用换肤的方案只能实现对于布局文件中的资源替换,导致应用程序的资源替换的应用范围较小,扩展性差,无法满足用户对于应用程序的资源替换功能的个性化需求的技术问题。
2、为了解决上述技术问题,本技术实施例提供一种资源数据处理方法,采用了如下所述的技术方案:
3、在应用程序启动之后,判断是否接收到用户触发的资源处理请求;其中,所述资源处理请求携带第一资源索引信息与处理信息;
4、若接收到所述资源处理请求,对所述应用程序发出的资源加载请求进行拦截;
5、从所述资源处理请求中提取出所述第一资源索引信息与所述处理信息;
6、判断所述处理信息是否为替换处理信息;
7、若所述处理信息为替换处理信息,基于预设的哈希表与预设的插件资源包确定出与所述第一资源索引信息对应的目标预加载资源;
8、在所述应用程序中对所述目标预加载资源进行加载。
9、进一步的,所述基于预设的哈希表与预设的插件资源包确定出与所述第一资源索引信息对应的目标预加载资源的步骤,具体包括:
10、若所述处理信息为替换处理信息,从所述哈希表中获取与所述第一资源索引信息对应的第二资源索引信息;
11、调用所述插件资源包;
12、从所述插件资源包中确定出与所述第二资源索引信息对应的指定资源;
13、将所述指定资源作为所述目标预加载资源。
14、进一步的,所述调用所述插件资源包的步骤,具体包括:
15、获取所述插件资源包的下载地址;
16、基于所述下载地址下载所述插件资源包;
17、在预设目录中对所述插件资源包进行解析,以完成对所述插件资源包的调用。
18、进一步的,所述在所述应用程序中对所述目标预加载资源进行加载的步骤,具体包括:
19、对预设的资源获取方法进行拦截,并基于所述目标预加载资源对所述资源获取方法进行重写,得到目标资源获取方法;
20、加载所述目标资源获取方法,从所述插件资源包中获取与所述第二资源索引信息对应的所述目标预加载资源;
21、在所述应用程序中对所述目标预加载资源进行加载。
22、进一步的,在所述基于预设的哈希表与预设的插件资源包确定出与所述第一资源索引信息对应的目标预加载资源的步骤之前,还包括:
23、获取预设的资源文件;
24、基于所述资源文件构建初始插件资源包;
25、对所述初始插件资源包进行压缩处理,得到所述插件资源包;
26、对所述插件资源包进行存储。
27、进一步的,所述对所述插件资源包进行存储的步骤,具体包括:
28、从区块链中获取与数据包类别对应的目标存储区块;
29、获取所述插件资源包的资源包标识;
30、构建所述资源包标识与所述插件资源包之间的关联关系;
31、基于所述关联关系,将所述插件资源包存储至所述目标存储区块内。
32、进一步的,在所述基于预设的哈希表与预设的插件资源包确定出与所述第一资源索引信息对应的目标预加载资源的步骤之前,还包括:
33、获取与所述应用程序对应的应用宿主包的第一资源关系表,以及获取与所述插件资源包对应的第二资源关系表;
34、对所述第一资源关系表与所述第二资源关系表中具有相同名称的资源的id信息进行关联处理,得到关联数据;
35、将所述关联数据存储至所述哈希表内。
36、为了解决上述技术问题,本技术实施例还提供一种资源数据处理装置,采用了如下所述的技术方案:
37、第一判断模块,用于在应用程序启动之后,判断是否接收到用户触发的资源处理请求;其中,所述资源处理请求携带第一资源索引信息与处理信息;
38、拦截模块,用于若接收到所述资源处理请求,对所述应用程序发出的资源加载请求进行拦截;
39、提取模块,用于从所述资源处理请求中提取出所述第一资源索引信息与所述处理信息;
40、第二判断模块,用于判断所述处理信息是否为替换处理信息;
41、确定模块,用于若所述处理信息为替换处理信息,基于预设的哈希表与预设的插件资源包确定出与所述第一资源索引信息对应的目标预加载资源;
42、加载模块,用于在所述应用程序中对所述目标预加载资源进行加载。
43、为了解决上述技术问题,本技术实施例还提供一种计算机设备,采用了如下所述的技术方案:
44、在应用程序启动之后,判断是否接收到用户触发的资源处理请求;其中,所述资源处理请求携带第一资源索引信息与处理信息;
45、若接收到所述资源处理请求,对所述应用程序发出的资源加载请求进行拦截;
46、从所述资源处理请求中提取出所述第一资源索引信息与所述处理信息;
47、判断所述处理信息是否为替换处理信息;
48、若所述处理信息为替换处理信息,基于预设的哈希表与预设的插件资源包确定出与所述第一资源索引信息对应的目标预加载资源;
49、在所述应用程序中对所述目标预加载资源进行加载。
50、为了解决上述技术问题,本技术实施例还提供一种计算机可读存储介质,采用了如下所述的技术方案:
51、在应用程序启动之后,判断是否接收到用户触发的资源处理请求;其中,所述资源处理请求携带第一资源索引信息与处理信息;
52、若接收到所述资源处理请求,对所述应用程序发出的资源加载请求进行拦截;
53、从所述资源处理请求中提取出所述第一资源索引信息与所述处理信息;
54、判断所述处理信息是否为替换处理信息;
55、若所述处理信息为替换处理信息,基于预设的哈希表与预设的插件资源包确定出与所述第一资源索引信息对应的目标预加载资源;
56、在所述应用程序中对所述目标预加载资源进行加载。
57、与现有技术相比,本技术实施例主要有以下有益效果:
58、本技术实施例在应用程序启动之后,首先判断是否接收到用户触发的资源处理请求;若接收到所述资源处理请求,对所述应用程序发出的资源加载请求进行拦截;然后从所述资源处理请求中提取出所述第一资源索引信息与所述处理信息;后续判断所述处理信息是否为替换处理信息;若所述处理信息为替换处理信息,基于预设的哈希表与预设的插件资源包确定出与所述第一资源索引信息对应的目标预加载资源;最后在所述应用程序中对所述目标预加载资源进行加载。本技术实施例在接收到用户触发的资源处理请求后,会智能地对应用程序发出的资源加载请求进行拦截,然后基于预设的哈希表与预设的插件资源包的使用来精确确定出与资源处理请求内携带的第一资源索引信息对应的目标预加载资源,进而可以通过加载插件资源包中的资源以实现快速智能地完成对于应用程序现有的内置资源的替换处理。采用插件资源包的资源替换加载处理方式可以替换应用程序中所有场景下加载的资源,并且可以替换所有种类的资源,从而有效提高了对于应用程序的资源替换的应用范围与扩展性,满足了用户对于应用程序的资源替换功能的个性化需求。