资源文件的获取方法、客户端、服务器和系统与流程

文档序号:11594278阅读:267来源:国知局

本申请涉及计算机软件技术领域,尤其涉及资源文件的获取方法、客户端、服务器和系统。



背景技术:

在移动互联网日益兴起的时代下,越来越多的app(application,计算机应用程序)被应用,成为日常生活中必不可少的一部分。app实现业务时需要获取资源文件,而为了加快资源文件获取速度,app会预先将部分资源文件离线下载到app所在的客户端中。因此,资源文件的获取方式成为影响app业务实现速度的关键。

目前,服务端对需要离线下载的各资源文件分别进行加密,并发布各加密的资源文件。app下载发布的各加密的资源文件,将某一功能需要获取资源文件时,查找该功能对应的加密的资源文件,对加密的资源文件进行解密、验签后,将资源文件加载到内存中,进而获取资源文件。

上述方法每次获取资源文件时,均需要执行解密、验签工作。不同功能可能会获取同一资源文件,会重复对该资源文件的解密、验签;造成cpu(centralprocessingunit,中央处理单元)、内存等资源的浪费。



技术实现要素:

为解决上述问题,本申请实施例提出了一种资源文件的获取方法、客户端、服务器和系统。

第一方面,本申请实施例提供了一种资源文件的获取方法,所述方法包括:

根据用户的操作确定功能标识;

根据所述功能标识确定对应的业务标识和资源文件标识;

根据所述业务标识和所述资源文件标识确定内存中是否有第一资源文件;

若有所述第一资源文件,则从所述内存中获取所述第一资源文件。

可选地,所述根据所述业务标识和所述资源文件标识确定内存中是否有第一资源文件,包括:

根据所述业务标识确定内存中是否有第一资源文件包,所述第一资源文件包由服务器发布,验签成功;

若有所述第一资源文件包,则确定所述第一资源文件包中是否有第一资源文件,所述第一资源文件与所述资源文件标识对应。

可选地,所述根据所述业务标识确定内存中是否有第一资源文件包之前,还包括:

下载服务器发布的离线资源包,其中,离线资源包中包括第二资源文件包和所述第二资源文件包的第一验签文件。

可选地,所述下载服务器发布的各业务的离线资源包之后,还包括:

从所述离线资源包中获取所述第二资源文件包;

根据所述第一验签文件验签所述第二资源文件包;

当验签成功后,将所述第二资源文件包加载至内存中。

可选地,所述从所述离线资源包中获取所述第二资源文件包之前,还包括:

创建第一会话session;

将所述离线资源包放入所述第一session中。

可选地,所述将所述第二资源文件包加载至内存中,包括:

确定所述第二资源文件包的虚拟域名;

根据所述虚拟域名生成所述第二资源文件包的第一统一资源定位符url地址;

将所述第二资源文件包和所述第一url地址加载至内存中。

可选地,所述根据所述业务标识确定内存中是否有第一资源文件包,包括:

若存在第二session,则确定有第一资源文件包;

所述第二session将所述业务标识对应的第一资源文件包加载至内存中。

可选地,所述确定所述第一资源文件包中是否有第一资源文件,包括:

获取所述第一资源文件包的第二url地址;

根据所述第二url地址确定所述第一资源文件包中是否有第一资源文件。

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

第一确定模块,用于根据用户的操作确定功能标识;

第二确定模块,用于根据所述第一确定模块确定的功能标识确定对应的业务标识和资源文件标识;

第三确定模块,用于根据所述第二确定模块确定的业务标识和资源文件标识确定内存中是否有第一资源文件;

获取模块,用于当所述第三确定模块确定有所述第一资源文件时,从所述内存中获取所述第一资源文件。

可选地,所述第三确定模块,包括:

第一确定子模块,用于根据所述业务标识确定内存中是否有第一资源文件包,所述第一资源文件包由服务器发布,验签成功;

第二确定子模块,用于当所述第一确定子模块确定有所述第一资源文件包时,确定所述第一资源文件包中是否有第一资源文件,所述第一资源文件与所述资源文件标识对应。

可选地,所述第三确定模块,还包括:

下载子模块,用于下载服务器发布的离线资源包,其中,离线资源包中包括第二资源文件包和所述第二资源文件包的第一验签文件。

可选地,所述第三确定模块,还包括:

获取子模块,用于从所述离线资源包中获取所述第二资源文件包;

验签子模块,用于根据所述第一验签文件验签所述获取子模块获取的第二资源文件包;

加载子模块,用于当所述验签子模块验签成功后,将所述获取子模块获取的第二资源文件包加载至内存中。

可选地,所述第三确定模块,还包括:

创建子模块,用于创建第一会话session;

放入子模块,用于将所述离线资源包放入所述创建子模块创建的第一session中。

可选地,所述加载子模块,包括:

确定单元,用于确定所述第二资源文件包的虚拟域名;

生成单元,用于根据所述确定单元确定的虚拟域名生成所述第二资源文件包的第一统一资源定位符url地址;

加载单元,用于将所述第二资源文件包和所述生成单元生成的第一url地址加载至内存中。

可选地,所述第一确定子模块,用于当存在第二session时,确定有第一资源文件包;

所述第二session将所述业务标识对应的第一资源文件包加载至内存中。

可选地,所述第二确定子模块,包括:

获取单元,用于获取所述第一资源文件包的第二url地址;

确定单元,用于根据所述获取单元获取的第二url地址确定所述第一资源文件包中是否有第一资源文件。

第三方面,本申请实施例提供了一种资源文件的获取方法,所述方法包括:

将对应业务标识的所有第二资源文件生成一个第三资源文件包;

生成所述第三资源文件包的第二验签文件;

将所述第三资源文件包和所述第二验签文件生成离线资源包;

发布离线资源包,以使客户端根据业务标识获取第二资源文件。

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

第一生成模块,用于将对应同一业务标识的所有第二资源文件生成一个第三资源文件包;

第二生成模块,用于生成所述第一生成模块生成的第三资源文件包的第二验签文件;

第三生成模块,用于将所述第一生成模块生成的第三资源文件包和所述第二生成模块生成的第二验签文件生成离线资源包;

发布模块,用于发布所述第三生成模块生成的离线资源包,以使客户端根据业务标识获取第二资源文件。

第五方面,本申请实施例提供了一种资源文件的获取系统,所述系统包括:客户端和服务器;

其中,所述客户端如上述第二方面提供的客户端,所述服务器如上述第四方面提供的服务器。

有益效果如下:

根据用户的操作确定功能对应的业务标识和资源文件标识后,根据业务标识和资源文件标识确定内存中是否有第一资源文件;若有第一资源文件,则获取第一资源文件,使得对应相同业务标识的不同功能,均从同一资源文件包内获取资源文件,当重复获取同一资源文件时,不再重复对该资源文件的解密、验签,降低了cpu、内存等资源的浪费。

附图说明

下面将参照附图描述本申请的具体实施例,其中:

图1示出了本申请一实施例提供的一种资源文件的获取方法的实施环境示意图;

图2示出了本申请另一实施例提供的一种资源文件的获取方法的流程示意图;

图3示出了本申请另一实施例提供的另一种资源文件的获取方法的流程示意图;

图4示出了本申请另一实施例提供的另一种资源文件的获取方法的流程示意图;

图5示出了本申请另一实施例提供的一种服务器生成离线资源包的示意图;

图6示出了本申请另一实施例提供的另一种客户端检验离线资源包安全性的示意图;

图7示出了本申请另一实施例提供的一种资源文件的获取方法的流程示意图;

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

图9示出了本申请另一实施例提供的一种第三确定模块的结构示意图;

图10示出了本申请另一实施例提供的另一种第三确定模块的结构示意图;

图11示出了本申请另一实施例提供的另一种第三确定模块的结构示意图;

图12示出了本申请另一实施例提供的另一种第三确定模块的结构示意图;

图13示出了本申请另一实施例提供的一种加载子模块的结构示意图;

图14示出了本申请另一实施例提供的一种第二确定子模块的结构示意图;

图15示出了本申请另一实施例提供的一种服务器的结构示意图;

图16示出了本申请另一实施例提供的一种资源文件的获取系统的结构示意图。

具体实施方式

为了使本申请的技术方案及优点更加清楚明白,以下结合附图对本申请的示例性实施例进行进一步详细的说明,显然,所描述的实施例仅是本申请的一部分实施例,而不是所有实施例的穷举。并且在不冲突的情况下,本申请中的实施例及实施例中的特征可以互相结合。

参见图1,为本发明实施例提供的资源文件的获取方法的实施环境示意图。该实施环境包括客户端101和服务器102。

其中,客户端101可以应用本发明实施例提供的资源文件的获取方法根据用户的操作确定功能对应的业务标识和资源文件标识后,先根据业务标识在内存中是否有第一资源文件包,其中,第一资源文件包由服务器102发布,验签成功;若有第一资源文件包,则确定第一资源文件包中是否有第一资源文件,其中,第一资源文件与资源文件标识对应;若有第一资源文件,则获取第一资源文件;

服务器102可以应用本发明实施例提供的资源文件的获取方法将对应同一业务标识的所有第二资源文件生成一个第三资源文件包;生成所述第三资源文件包的第二验签文件;将所述第三资源文件包和所述第二验签文件生成离线资源包;发布离线资源包,以使客户端101从离线资源包的第三资源文件包中获取第二资源文件。

结合上述实施环境,参见图2所示的实施例,本实施例提供了一种资源文件的获取方法,本实施例提供的方法流程具体如下:

201:根据用户的操作确定功能标识;

202:根据功能标识确定对应的业务标识和资源文件标识;

203:根据业务标识确定内存中是否有第一资源文件;

可选地,根据业务标识和资源文件标识确定内存中是否有第一资源文件,包括:

根据业务标识确定内存中是否有第一资源文件包,第一资源文件包由服务器发布,验签成功;

若有第一资源文件包,则确定第一资源文件包中是否有第一资源文件,第一资源文件与资源文件标识对应。

可选地,根据业务标识确定内存中是否有第一资源文件包之前,还包括:

下载服务器发布的离线资源包,其中,离线资源包中包括第二资源文件包和第二资源文件包的第一验签文件。

可选地,下载服务器发布的各业务的离线资源包之后,还包括:

从离线资源包中获取第二资源文件包;

根据第一验签文件验签第二资源文件包;

当验签成功后,将第二资源文件包加载至内存中。

可选地,从离线资源包中获取第二资源文件包之前,还包括:

创建第一会话session;

将离线资源包放入第一session中。

可选地,将第二资源文件包加载至内存中,包括:

确定第二资源文件包的虚拟域名;

根据虚拟域名生成第二资源文件包的第一统一资源定位符url地址;

将第二资源文件包和第一url地址加载至内存中。

可选地,根据业务标识确定内存中是否有第一资源文件包,包括:

若存在第二session,则确定有第一资源文件包;

第二session将业务标识对应的第一资源文件包加载至内存中。

可选地,确定第一资源文件包中是否有第一资源文件,包括:

获取第一资源文件包的第二url地址;

根据第二url地址确定第一资源文件包中是否有第一资源文件。

204:若有第一资源文件,则从内存中获取第一资源文件。

本实施例还提供了另一种资源文件的获取方法,参见图3,本实施例提供的方法流程具体如下:

301:将对应同一业务标识的所有第二资源文件生成一个第三资源文件包;

302:生成第三资源文件包的第二验签文件;

303:将第三资源文件包和第二验签文件生成离线资源包;

304:发布离线资源包,以使客户端根据业务标识获取第二资源文件。

有益效果:

根据用户的操作确定功能对应的业务标识和资源文件标识后,根据业务标识和资源文件标识确定内存中是否有第一资源文件;若有第一资源文件,则获取第一资源文件,使得对应相同业务标识的不同功能,均从同一资源文件包内获取资源文件,当重复获取同一资源文件时,不再重复对该资源文件的解密、验签,降低了cpu、内存等资源的浪费。

结合上述实施环境,本实施例提供了一种资源文件的获取方法。为了便于说明,本实施例以客户端为图1中的客户端101,服务器为图1中的服务器102,app包含3个业务,分别为业务1、业务2和业务3为例,对本实施例提供的方法进行详细地举例说明。

参见图4,本实施例提供的方法流程具体如下:

401:服务器将对应同一业务标识的所有第二资源文件生成一个第三资源文件包;

在应用中,虽然展现给用户的是各个功能,但不同功能间可能使用相同的资源文件,本实施例将具有相同资源文件的不同功能确定为属于同一业务。例如:另存为功能需要弹出文件夹的对话框,以使用户选择存储的具体位置,打开功能也需要弹出文件夹的对话框,以使用户选择待打开文件的具体位置,因此,将另存为功能和打开功能确定为属于文件处理业务。

上述业务和功能之间的关系为:业务是使用相同资源文件的所有功能的组合,除了上述关系之前,还可以为:业务是实现类似功能的组合。例如:保存功能和另存为功能均属于存储业务。除此之外,业务还可以是具体其他内在联系的不同功能的组合,本实施例不对同一业务中不同功能之间的具体内在联系进行限定。

app中包括多种功能,而不同的功能可能属于同一业务,例如:保存功能 和另存为功能均可属于存储业务。本步骤按业务种类将资源文件进行分类,将对应同一业务标识的需要下载的所有第二资源文件生成一个第三资源文件包。

例如,若app共包括10个资源文件,分别为资源文件1至资源文件11,其中资源文件1至资源文件5为业务1的资源文件,资源文件6至资源文件10为业务2的资源文件,资源文件11为业务3的资源文件。对于业务1的资源文件1至资源文件5,需要将资源文件1和资源文件2下载至客户端,对于业务2的资源文件6至资源文件10,需要将资源文件9下载至客户端,对于业务3的资源文件11,不需要将其下载至客户端。此时,服务器仅将资源文件1和资源文件2件生成一个第三资源文件包1,将资源文件9生成一个第三资源文件包2。

经过步骤401,有需要下载资源文件的每一个业务均只有唯一一个资源文件包,即业务1的资源文件包为第三资源文件包1,业务2的的资源文件包为第三资源文件包2。没有需要下载资源文件的业务没有资源文件包,即业务3没有资源文件包。

另外,步骤401按业务将资源文件进行分类,对于一些业务区分不明显的app也可以按使用频率等将资源文件进行分类。

402:服务器加密第三资源文件包,并生成第三资源文件包的第二验签文件;

本步骤的具体实现方式包括但不限于:将第三资源文件包加密,通过私钥加密生成第三资源文件包的第二验签文件。

例如图5所示,服务器将离线资源包.tar文件进行md5(messagedigestalgorithm,消息摘要算法第五版)计算,并通过私钥加密生成验签文件cert。

403:服务器将第三资源文件包和第二验签文件生成离线资源包;

本实施例不对将第三资源文件包和第二验签文件生成离线资源包的具体实施方式进行限定,例如:将第三资源文件包和第二验签文件打包成下载包,将下载包作为离线资源包。

仍以图5为例,将.tar和cert打包成为最终的下载包.zip文件。

需要说明的是,本步骤可以直接将第三资源文件包和第二验签文件生成离线资源包,但是为了保证第三资源文件的安全性,可选地,本步骤将加密的第三资源文件包和第二验签文件生成离线资源包。

经过步骤401至步骤403会生成离线资源包,该离线资源包中包括需要进行离线下载的所有资源。需要进行离线下载的所有资源按业务进行分类,属于同一业务的需要离的所有资源文件存储一同一资源文件包中。

也就是说,离线资源包包括资源文件包,资源文件包包括资源文件。不同资源文件包对应不同业务,属于同一业务的资源文件存储于同一资源文件包中。

404:服务器发布离线资源包;

由于app中不同业务对应不同的资源文件,但是同一个业务中的不同功能会有共享的资源文件,因此,通过步骤401至404可以按照业务为维度将同一业务需要下载的所有资源文件生成一个第三资源文件包,不仅能够减少服务器的发布数量,方便管理,还能统一更新同一业务的离线资源包。

目前不论是ios(苹果公司开发的移动操作系统)或者android(安卓操作系统)系统,app升级需持续较长的时间,特别是ios至少需要一周的审核发布时间。在这种情况下,通过发布离线资源包,可以使app预先离线资源包中的资源文件预先离线下载至app所属客户端,缩短app升级周期。

另外,离线资源包下载至app中容易受到非法的篡改,为了防止离线资源包中的资源文件被篡改,造成安全性问题。可以通过在步骤402中加密第三资源文件包,并生成第三资源文件包的第二验签保证离线资源包中资源文件的安全性,步骤403中加密的第三资源文件包和第二验签文件生成离线资源包,步骤404发布该离线资源包完成资源文件的加密过程。

此外,步骤401至步骤404发布的离线资源包是按照业务将多个资源文件组合成的一个离线资源包,其包结构与实际在服务器上的结构一致,以当前目 录作为根目录进行打包(例如tar格式)。

需要说明的是,步骤401至步骤404并非每次执行本实施例提供的方法获取资源文件时均执行的步骤,仅在需要更新资源文件或者存在新的需要下载的源文件时才执行步骤401至步骤404以使发布的离线资源包为最新的离线资源包。本实施例不对触发执行步骤401至步骤404的具体条件进行限定。

405:客户端下载服务器发布的离线资源包;

其中,离线资源包中包括第二资源文件包和第二资源文件包的第一验签文件。

本步骤的具体实施方式,包括但不限于:当用户点击进入app,客户端发起请求离线资源包列表,将最新的离线资源包列表与本地做对比,如果有更新,则根据需要发起网络请求到服务器下载离线资源包。服务器收到请求消息后,进行匹配,如果发现客户端版本较老则将新的业务离线资源包信息返回给客户端。如果客户端需要下载离线资源包,则发起网络请求到服务器直接下载离线资源包置。

由于服务器在步骤404时会发布各种离线资源包,本步骤中客户端需要根据实际情况从客户端中挑选需要的离线资源包并下载,因此本步骤中下载的离线资源包为步骤404中发布的离线资源包中的一部分。本步骤中各第二资源文件包也为步骤404中发布的部分离线资源包中的第三资源文件包。本步骤中第一验签文件也为步骤404中发布的部分离线资源包中的第二验签文件。

本实施例不限定第二资源文件包和第三资源文件包的具体关系,也不限定第一验签文件和第二验签文件之间的具体关系。

在挑选离线资源包时,可以先确定需要资源文件的业务,将该业务的离线资源包确定为挑选的离线资源包。

另外,本步骤并非每次均要执行的步骤,仅在需要下载离线资源包时才执行步骤405以获得最新的离线资源包。本实施例不对需要下载离线资源包的具体判断标准进行限定。例如:当某一业务被用户点击时,确定需要下载该业务 的离线资源包。

此外,由于离线资源包发布是阶段性的,在新的离线资源包发布之前,现有离线资源包中的资源文件均可以重复使用,为了避免每次使用时均下载一次离线资源包,因此在步骤405下载离线资源包后,在存储设备中存储下载的离线资源包,以备后续重复使用。

406:客户端根据用户的操作确定功能标识,根据功能标识确定对应的业务标识和资源文件标识;

当用户在客户端点击一个功能时,客户端会获取用户点击的功能标识,再根据预设规则,确定对应的业务标识和资源文件标识。或者,用户点击一个功能后,根据该功能执行步骤,触发执行另一个功能,此时,客户端会触发的功能标识,再根据预设规则,确定对应的业务标识和资源文件标识。

例如,用户点击另存为功能时,客户端会获取用户点击的另存为功能的标识,再根据预设规则,确定对应的保存业务标识和弹出存储对话框所需的资源文件标识。

再例如,用户点击另存为前一版本功能时,若根据该功能执行步骤,会触发执行展现版本列表功能,以使用户选择存储的老版本,此时,客户端会触发展现版本列表的功能标识,再根据预设规则,确定对应的版本管理业务标识和展示框调用相关的资源文件标识。

需要说明的是,本实施例仅以先执行步骤405再执行步骤406为例进行说明。具体实施时,还可以根据具体情况,先执行步骤406确定业务标识和资源文件标识,再执行步骤405根据业务标识下载服务器发布的离线资源包。本实施例不对步骤405和步骤406的具体执行顺序进行限定。

407:客户端根据业务标识确定内存中是否有第一资源文件包,若无第一资源文件包,则执行步骤408,若有第一资源文件包,则执行步骤409;

其中,第一资源文件包由服务器发布,验签成功,且与业务标识对应。

由于资源文件包中包括同一业务的资源文件,因此资源文件包与业务对 应。

具体的,若存在与业务相关的管理对象session(会话),且第二session将业务标识对应的第一资源文件包加载至内存中,则可以根据业务标识确定是否有与该业务标识对应的第二session,或存在第二session,则确定有第一资源文件包,若不存在第二session,则确定没有第一资源文件包。

408:客户端获取业务标识对应的离线资源包,并确认其的安全性;

若客户端的存储设备中存储有业务标识对应的离线资源包,则从存储设备中获取该离线资源包。若客户端的存储设备中未存储有业务标识对应的离线资源包,则执行步骤405从中服务器下载该离线资源包。

对于从存储设备中获取该离线资源包的情况,可以从步骤405中下载并存储的离线资源包中获取第二资源文件包,根据第一验签文件验签第二资源文件包,若验签成功则将第二资源文件包加载至内存中,若验签失败则删除该离线资源包,重新执行步骤405以重新下载该离线资源包。

若步骤405中下载了多个离线资源包,则此步骤可以从下载的多个离线资源包中选择一个验证其安全性。例如:当某一业务被用户点击时,则选择被点击的业务的离线资源包,验证其安全性。

另外,安全性验证方法可以有多种,若服务器通过图5的方法生成离线资源包,则本步骤可以通过图6所示的方法进行安全性验证。即:在客户端,进入某个业务前,将下载并存储于存储设备的该业务的离线资源包.zip文件解压,之后计算.tar文件的md5值,利用公钥进行验签,将结果与cert文件中的比较。若二者不相同,则认为验签不通过,删除该离线资源包。若二者相同,则认为验签通过,将第二资源文件包加载至内存中。

客户端应用通过对离线资源包中的资源文件包进行验签,来判断离线资源包是否有被篡改。

此外,本步骤在执行时,还可以创建第一session,将步骤405中下载并存储的离线资源包放入所述第一session中,在第一session中获取第二资源文件 包;根据第一验签文件验签第二资源文件包;当验签成功后,将第二资源文件包加载至内存中。

其中,session为与业务相关的管理对象,session可以在获取到业务的请求参数后,根据请求参数查找该业务的离线资源包,将其验签并加载到内存。由于离线资源包中包括同一业务的资源文件,而session又与业务相关,因此同一个session的离线资源包中的资源文件可以是共享的。对于同一session上的所有请求,都会优先在该session的离线资源包中查找。通过session不仅方便管理同一业务的不同请求,而且可以提高同一业务请求的执行效率。

对于验签成功则将第二资源文件包加载至内存中的步骤,由于url(uniformresourelocator,统一资源定位符)可以使权限管理、域的管理更加方便,因此该步骤可以通过如下三个子步骤实现:

子步骤1:确定第二资源文件包的虚拟域名;

由于离线资源包是根据当前资源的目录打包的,因此,在客户端为了保持与线上访问的一致性,下发离线资源包的同时,会指定服务器域名,此域名可以是任意符合域名规则的名称。

本实施例不对确定第二资源文件包的虚拟域名的具体方法进行限定,若离线资源包中含有虚拟域名的文件,可以从该文件中获取虚拟域名,若离线资源包中不含有虚拟域名的文件,可以自行生成虚拟域名。生成方式可以随机生成,也可以按预先制定的生成规则生成。

子步骤2:根据虚拟域名生成第二资源文件包的第一url地址;

子步骤3:将第二资源文件包和第一url地址加载至内存中。

例如:服务器为了灵活配置服务器地址,在离线资源包中只使用当前目录作为根目录进行打包成.tar文件。如:

https://www.domain.com/business/travel/www/index.html。

将其分为两个部分,其中虚拟域名为:

https://www.domain.com/business/travel。

在客户端内存加载时,结合虚拟域名,将其拼接成合法的url地址。通过虚拟域名,可以使客户端访问资源文件变得异常简单,不像以往的单个资源文件散落在文件夹中造成的资源文件的困难。

通过执行步骤408,将离线资源包统一验签、加载进内存,加载过程中结合虚拟域名,因此,对于访问指定的url资源在内存上就一一与其对应起来。

409:确定第一资源文件包中是否有第一资源文件,若有第一资源文件,则执行步骤410,若没有第一资源文件,则执行步骤411;

其中,第一资源文件与资源文件标识对应。

有两种情况可以触发执行本步骤,

第一种情况为:步骤407中客户端确定内存中有服务器发布的,且与业务标识对应的第一资源文件包。

第二种情况为:步骤408中客户端获取业务标识对应的离线资源包,验签成功,将第二资源文件包加载至内存中后执行步骤409。

对于第二种情况,将第二资源文件包加载至内存后即成为本步骤中的第一资源文件包。

本步骤在具体实施时,可以获取第一资源文件包的第二url地址;客户端根据第二url地址确定第一资源文件包中是否有第一资源文件。

410:客户端获取第一资源文件;

客户端从内存中的第一资源文件包中获取第一资源文件。

由于步骤408中会对离线资源包进行安全性验证,即对离线资源包中的资源文件进行验签,验签成功的第二资源文件包才会被加载至内存中。因此内存中的资源文件均为验签成功的资源文件,在执行步骤410时可以直接获取,不需要再次进行验签。

现有的实现方式中,每次获取资源文件均会对其进行验签,不论其之前是否被验签过。此种方式往往会造成cpu、内存的浪费,频繁的加解密在客户端上也是不可取的,甚至严重影响用户体验。且当同一时间需要访问大量资源文 件的时候,就会造成应用卡顿、页面打开慢等影响。特别在诸如列表页,需要访问大量的资源文件。而且,对于列表页,用户的来回滚动,在很短时间内会触发重复访问同一资源的情况,这时会造成每个文件的重复验签。

而本实施例中仅在步骤408第一次加载资源文件包(资源文件包中包含多个资源文件)至内存时验签一次,此后无论读取该资源文件包中的任何资源文件均不需要再次进行验签,减少了验签次数,避免了验签造成的cpu、内存等资源的浪费。

411:客户端从服务器中获取第一资源文件。

获取第一资源文件后可以将获取到的第一资源文件缓存于内存中,或者缓存与内存对应的session中。

图7示出了本实施例提供方法的具体流程图。当用户打开客户端应用后,从服务器获取离线资源包列表,服务器返回离线资源包列表。当客户端需要下载离线资源包时,从服务器处下载离线资源包。客户端获取url地址后,根据url地址获取资源文件。

另外,本实施例提供的方法服务器根据业务维度对资源文件进行分类和打包。因为,每个业务的功能不同所对应的资源不同,但是同一个业务会有共享的资源,按照业务为维度不仅能够减少服务器发布离线资源包的数量,还能减少客户端下载离线资源包的次数、方便管理,统一更新整个业务的离线资源包。

需要说明的是,本申请提供的资源文件的获取方法中,第一、第二、第三仅为序号,用于区别资源文件包、资源文件、验签文件在该方法中所在的步骤,并无其他意义。第一资源文件包、第二资源文件包与第三资源文件包之间可以相同,也可以不同,也可以部分相同,同理,第一资源文件可以与第二资源文件相同也可以不同,第一验签文件可以与第二验签文件相同也可以不同,本实施例不对不同序号的资源文件包、资源文件或验签文件之间具体关系进行限定。

有益效果:

根据用户的操作确定功能对应的业务标识和资源文件标识后,先根据业务标识在内存中确定与业务标识对应的资源文件包;再从资源文件包中获取与资源文件标识对应的资源文件,使得对应相同业务标识的不同功能,均从同一资源文件包内获取资源文件,当重复获取同一资源文件时,不再重复对该资源文件的解密、验签,降低了cpu、内存等资源的浪费。

基于同一发明构思,本实施例提供了一种客户端,由于客户端解决问题的原理与图2所示的一种资源文件的获取方法相似,因此客户端的实施可以参见图2所示的方法的实施例,重复之处不再赘述。

参见图8,该客户端包括:

第一确定模块801,用于根据用户的操作确定功能标识;

第二确定模块802,用于根据第一确定模块801确定的功能标识确定对应的业务标识和资源文件标识;

第三确定模块803,用于根据第二确定模块802确定的业务标识和资源文件标识确定内存中是否有第一资源文件;

获取模块804,用于当第三确定模块803确定有第一资源文件时,从内存中获取第一资源文件。

参见图9,第三确定模块803,包括:

第一确定子模块8031,用于根据业务标识确定内存中是否有第一资源文件包,第一资源文件包由服务器发布,验签成功;

第二确定子模块8032,用于当第一确定子模块8031确定有第一资源文件包时,确定第一资源文件包中是否有第一资源文件,第一资源文件与资源文件标识对应。

参见图10,第三确定模块803,还包括

下载子模块8033,用于下载服务器发布的离线资源包,其中,离线资源包中包括第二资源文件包和第二资源文件包的第一验签文件。

参见图11,第三确定模块803,还包括:

获取子模块8034,用于从离线资源包中获取第二资源文件包;

验签子模块8035,用于根据第一验签文件验签获取子模块8034获取的第二资源文件包;

加载子模块8036,用于当验签子模块8035验签成功后,将获取子模块8034获取的第二资源文件包加载至内存中。

参见图12,该第三确定模块803,还包括:

创建子模块8037,用于创建第一session;

放入子模块8038,用于将离线资源包放入创建子模块8037创建的第一session中。

参见图13,加载子模块8036,包括:

确定单元80361,用于确定第二资源文件包的虚拟域名;

生成单元80362,用于根据确定单元80361确定的虚拟域名生成第二资源文件包的第一url地址;

加载单元80363,用于将第二资源文件包和生成单元80362生成的第一url地址加载至内存中。

其中,第一确定子模块8031,用于当存在第二session时,确定有第一资源文件包;

其中,第二session将业务标识对应的第一资源文件包加载至内存中。

参见图14,第二确定子模块8032,包括:

获取单元80321,用于获取第一资源文件包的第二url地址;

确定单元80322,用于根据获取单元80321获取的第二url地址确定第一资源文件包中是否有第一资源文件。

有益效果如下:

根据用户的操作确定功能对应的业务标识和资源文件标识后,根据业务标识和资源文件标识确定内存中是否有第一资源文件;若有第一资源文件,则获 取第一资源文件,使得对应相同业务标识的不同功能,均从同一资源文件包内获取资源文件,当重复获取同一资源文件时,不再重复对该资源文件的解密、验签,降低了cpu、内存等资源的浪费。

基于同一发明构思,本实施例提供了一种服务器,由于服务器解决问题的原理与图3所示的一种资源文件的获取方法相似,因此服务器的实施可以参见图3所示的方法的实施例,重复之处不再赘述。

参见图15,该服务器包括:

第一生成模块1501,用于将对应同一业务标识的所有第二资源文件生成一个第三资源文件包;

第二生成模块1502,用于生成第一生成模块1501生成的第三资源文件包的第二验签文件;

第三生成模块1503,用于将第一生成模块1501生成的第三资源文件包和第二生成模块1502生成的第二验签文件生成离线资源包;

发布模块1504,用于发布第三生成模块1503生成的离线资源包,以使客户端根据业务标识获取第二资源文件。

有益效果如下:

将对应同一业务标识的所有资源文件生成一个资源文件包,发布包括资源文件包的离线资源包,以使客户端根据业务标识获取资源文件。使得对应相同业务标识的不同功能,均从同一资源文件包内获取资源文件,当重复获取同一资源文件时,不再重复对该资源文件的解密、验签,降低了cpu、内存等资源的浪费。

基于同一发明构思,本实施例提供了一种资源文件的获取系统,该系统用于执行上述实施例所提供的资源文件的获取方法,参见图16,该系统包括:

客户端1601和服务器1602;

其中,客户端1601如上述图8至图14所示的实施例提供的客户端,详见上述图8至图14所示的实施例;

服务器1602如上述图15所示的实施例提供的服务器,详见上述图15所示的实施例。

有益效果如下:

服务器将对应同一业务标识的所有资源文件生成一个资源文件包,发布包括资源文件包的离线资源包,客户端根据用户的操作确定功能对应的业务标识和资源文件标识后,根据业务标识和资源文件标识确定内存中是否有第一资源文件;若有第一资源文件,则获取第一资源文件,使得对应相同业务标识的不同功能,均从同一资源文件包内获取资源文件,当重复获取同一资源文件时,不再重复对该资源文件的解密、验签,降低了cpu、内存等资源的浪费。

上述实施例中,均可以采用现有的功能元器件模块来实施。例如,处理模块可以采用现有的数据处理元器件,至少,现有定位技术中采用的定位服务器上便具备实现该功能元器件;至于接收模块,则是任意一个具备信号传输功能的设备都具备的元器件;同时,处理模块进行的a、n参数计算、强度调整等采用的都是现有的技术手段,本领域技术人员经过相应的设计开发即可实现。

为了描述的方便,以上所述装置的各部分以功能分为各种模块或单元分别描述。当然,在实施本发明时可以把各模块或单元的功能在同一个或多个软件或硬件中实现。

本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产 品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1