欢迎光临小豌豆知识网!
当前位置:首页 > 物理技术 > 测量测试> 数据预缓存方法、装置、电子设备及存储介质独创技术52743字

数据预缓存方法、装置、电子设备及存储介质

2021-03-06 15:57:35

数据预缓存方法、装置、电子设备及存储介质

  技术领域

  本发明涉及数据处理技术领域,特别是涉及一种数据预缓存方法、装置、电子设备及存储介质。

  背景技术

  随着网络技术的飞速发展,用户越来越依赖于通过网络获取各种信息。为了满足用户需求,供用户使用的客户端的种类越来越多,功能也越来越丰富。用户能够通过客户端获取各种信息,比如观看视频、收听音乐等。

  客户端通常需要连接蜂窝网络使用。但是,由于基站覆盖度较小,或者处于室内等原因,可能会出现蜂窝网络信号较弱或者无蜂窝网络信号的情况。当用户进入这些蜂窝网络信号较弱或者无蜂窝网络信号的区域时,蜂窝网络基本处于不可用状态,从而无法正常使用客户端,降低用户体验。

  发明内容

  本发明实施例的目的在于提供一种数据预缓存方法、装置、电子设备及存储介质,以实现在处于弱网区域时,仍然可以正常使用客户端,提升用户体验。具体技术方案如下:

  在本发明实施的第一方面,首先提供了一种数据预缓存方法,执行于客户端,所述方法包括:

  定时获取所述客户端所在移动终端的GPS定位信息,所述GPS定位信息包括定位位置;

  依据当前定位位置,判断是否存在所述移动终端即将进入的弱网区域;

  在判定为存在所述即将进入的弱网区域时,计算穿过所述即将进入的弱网区域所需的时长;

  依据所述时长下载预缓存数据,并缓存所述预缓存数据。

  可选地,所述依据当前定位位置,判断是否存在所述移动终端即将进入的弱网区域,包括:获取预设蜂窝网络质量地图中包含的各弱网区域的圆心位置和直径;针对每个弱网区域,计算当前定位位置与所述弱网区域的圆心位置之间的第一距离;在所述第一距离大于所述弱网区域的半径,且小于所述弱网区域的半径与预设距离阈值的总和时,将所述弱网区域判定为所述即将进入的目标弱网区域。

  可选地,所述GPS定位信息还包括定位时间戳;所述计算穿过所述即将进入的弱网区域所需的时长,包括:依据至少两个GPS定位信息包括的定位位置和定位时间戳,计算移动速度;获取预设蜂窝网络质量地图中包含的,所述即将进入的弱网区域的直径;在所述即将进入的弱网区域为一个时,将所述即将进入的弱网区域的直径除以所述移动速度得到的商,作为所述时长;在所述即将进入的弱网区域为多个时,从所述即将进入的弱网区域中选取直径最大的弱网区域,将选取的弱网区域的直径除以所述移动速度得到的商,作为所述时长。

  可选地,在所述依据所述时长下载预缓存数据,并缓存所述预缓存数据之后,所述方法还包括:依据当前定位位置,判断是否进入目标弱网区域;所述目标弱网区域为所述即将进入的弱网区域中的一个;在判定为进入所述目标弱网区域时,读取缓存的所述预缓存数据,并展示所述预缓存数据。

  可选地,所述依据当前定位位置,判断是否进入目标弱网区域,包括:获取预设蜂窝网络质量地图中包含的,所述即将进入的弱网区域的圆心位置和直径;针对每个即将进入的弱网区域,计算当前定位位置与所述即将进入的弱网区域的圆心位置之间的第二距离;在所述第二距离小于等于所述即将进入的弱网区域的半径时,将所述即将进入的弱网区域作为所述目标弱网区域,判定为进入所述目标弱网区域。

  可选地,在所述展示所述预缓存数据之后,所述方法还包括:依据当前定位位置,判断是否离开所述目标弱网区域;在判定为离开所述目标弱网区域时,停止依据所述时长下载预缓存数据。

  可选地,所述依据所述时长下载预缓存数据,包括:获取在所述客户端浏览所述时长所需的数据量;下载大于等于所述数据量的数据,将下载的数据作为所述预缓存数据。

  可选地,所述依据当前定位位置,判断是否离开所述目标弱网区域,包括:获取预设蜂窝网络质量地图中包含的所述目标弱网区域的圆心位置和直径;计算当前定位位置与所述目标弱网区域的圆心位置之间的第三距离;在所述第三距离大于等于所述目标弱网区域的半径时,判定为离开所述目标弱网区域。

  在本发明实施的第二方面,还提供了一种数据预缓存装置,应用于客户端,所述装置包括:

  获取模块,用于定时获取所述客户端所在移动终端的GPS定位信息,所述GPS定位信息包括定位位置;

  第一判断模块,用于依据当前定位位置,判断是否存在所述移动终端即将进入的弱网区域;

  计算模块,用于在所述第一判断模块判定为存在所述即将进入的弱网区域时,计算穿过所述即将进入的弱网区域所需的时长;

  缓存模块,用于依据所述时长下载预缓存数据,并缓存所述预缓存数据。

  可选地,所述第一判断模块包括:第一获取单元,用于获取预设蜂窝网络质量地图中包含的各弱网区域的圆心位置和直径;第一距离计算单元,用于针对每个弱网区域,计算当前定位位置与所述弱网区域的圆心位置之间的第一距离;第一比较单元,用于在所述第一距离大于所述弱网区域的半径,且小于所述弱网区域的半径与预设距离阈值的总和时,将所述弱网区域判定为所述即将进入的目标弱网区域。

  可选地,所述GPS定位信息还包括定位时间戳;所述计算模块包括:速度计算单元,用于依据至少两个GPS定位信息包括的定位位置和定位时间戳,计算移动速度;直径获取单元,用于获取预设蜂窝网络质量地图中包含的,所述即将进入的弱网区域的直径;第一时长计算单元,用于在所述即将进入的弱网区域为一个时,将所述即将进入的弱网区域的直径除以所述移动速度得到的商,作为所述时长;第二时长计算单元,用于在所述即将进入的弱网区域为多个时,从所述即将进入的弱网区域中选取直径最大的弱网区域,将选取的弱网区域的直径除以所述移动速度得到的商,作为所述时长。

  可选地,所述装置还包括:第二判断模块,用于依据当前定位位置,判断是否进入目标弱网区域;所述目标弱网区域为所述即将进入的弱网区域中的一个;展示模块,用于在所述第二判断模块判定为进入所述目标弱网区域时,读取缓存的所述预缓存数据,并展示所述预缓存数据。

  可选地,所述第二判断模块包括:第二获取单元,用于获取预设蜂窝网络质量地图中包含的,所述即将进入的弱网区域的圆心位置和直径;第二距离计算单元,用于针对每个即将进入的弱网区域,计算当前定位位置与所述即将进入的弱网区域的圆心位置之间的第二距离;第二比较单元,用于在所述第二距离小于等于所述即将进入的弱网区域的半径时,将所述即将进入的弱网区域作为所述目标弱网区域,判定为进入所述目标弱网区域。

  可选地,所述装置还包括:第三判断模块,用于依据当前定位位置,判断是否离开所述目标弱网区域;停止模块,用于在所述第三判断单元判定为离开所述目标弱网区域时,停止依据所述时长下载预缓存数据。

  可选地,所述缓存模块包括:第四获取单元,用于获取在所述客户端浏览所述时长所需的数据量;下载单元,用于下载大于等于所述数据量的数据,将下载的数据作为所述预缓存数据。

  可选地,所述第三判断模块包括:第三获取单元,用于获取预设蜂窝网络质量地图中包含的所述目标弱网区域的圆心位置和直径;第三距离计算单元,用于计算当前定位位置与所述目标弱网区域的圆心位置之间的第三距离;第三比较单元,用于在所述第三距离大于等于所述目标弱网区域的半径时,判定为离开所述目标弱网区域。

  在本发明实施的又一方面,还提供了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;存储器,用于存放计算机程序;处理器,用于执行存储器上所存放的程序时,实现上述任一所述的数据预缓存方法。

  在本发明实施的又一方面,还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机实现上述任一所述的数据预缓存方法。

  在本发明实施的又一方面,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机实现上述任一所述的数据预缓存方法。

  本发明实施例提供的数据预缓存方法、装置、电子设备及存储介质,客户端定时获取所述客户端所在移动终端的GPS定位信息,所述GPS定位信息包括定位位置;依据当前定位位置,判断是否存在所述移动终端即将进入的弱网区域;在判定为存在所述即将进入的弱网区域时,计算穿过所述即将进入的弱网区域所需的时长;依据所述时长下载预缓存数据,并缓存所述预缓存数据。由此可知,本发明实施例中,通过在进入弱网区域之前,依据穿过即将进入的弱网区域所需的时长,预先下载并缓存预缓存数据,以便预缓存数据可以支撑在即将进入的弱网区域内的浏览需求,从而保证在弱网区域内依然能够正常使用客户端,提升用户体验。

  附图说明

  为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍。

  图1为本发明实施例中的一种数据预缓存方法的步骤流程图。

  图2为本发明实施例中的一种客户端上报弱网信息的步骤流程图。

  图3为本发明实施例中的一种服务端生成蜂窝网络质量地图的步骤流程图。

  图4为本发明实施例中的一种弱网区域的示意图。

  图5为本发明实施例中的另一种数据预缓存方法的步骤流程图。

  图6为本发明实施例中的再一种数据预缓存方法的步骤流程图。

  图7为本发明实施例中的一种数据预缓存装置的结构框图。

  图8为本发明实施例中的另一种数据预缓存装置的结构框图。

  图9为本发明实施例中的一种电子设备的结构框图。

  具体实施方式

  下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行描述。

  图1为本发明实施例中的一种数据预缓存方法的步骤流程图。图1所示的数据预缓存方法应用于客户端。客户端可以为安装于移动终端等设备上的APP(应用程序)。移动终端可以为手机、平板电脑、可穿戴设备,等等。

  如图1所示,数据预缓存方法可以包括以下步骤:

  步骤101,定时获取所述客户端所在移动终端的GPS定位信息,所述GPS定位信息包括定位位置。

  移动终端具有GPS(Global Positioning System,全球定位系统)定位功能,可以实时进行GPS定位。客户端在运行过程中,可以定时获取该客户端所在移动终端的GPS定位信息。GPS定位信息可以包括定位位置、定位时间戳、定位精度,等等。

  对于获取GPS定位信息的具体时间间隔,可以根据实际情况设置任意适用的数值,比如,设置每隔2秒、3秒、5秒、8秒等,获取一次GPS定位信息,本发明实施例对此不做限制。

  步骤102,依据当前定位位置,判断是否存在所述移动终端即将进入的弱网区域。

  客户端在获取到一个GPS定位信息后,依据该GPS定位信息中包括的当前定位位置,判断是否存在移动终端即将进入的弱网区域。

  弱网区域是指蜂窝网络信息较弱,或者无蜂窝网络信号的区域。本发明实施例中,可以预先生成包含多个弱网区域的蜂窝网络质量地图,基于该蜂窝网络质量地图判断是否存在移动终端即将进入的弱网区域。对于具体的处理过程,将在下面的实施例中详细介绍。

  步骤103,在判定为存在所述即将进入的弱网区域时,计算穿过所述即将进入的弱网区域所需的时长。

  步骤104,依据所述时长下载预缓存数据,并缓存所述预缓存数据。

  由于在弱网区域内客户端无法正常联网使用,因此在判定为存在即将进入的弱网区域时,可以预先下载并缓存部分预缓存数据,以便在进入弱网区域后,可以正常展示预缓存数据。本发明实施例中,可以计算穿过即将进入的弱网区域所需的时长,依据该时长下载预缓存数据,以便预缓存数据可以支撑从用户进入弱网区域到用户离开弱网区域期间的展示需求。

  本发明实施例中,通过在进入弱网区域之前,依据穿过即将进入的弱网区域所需的时长,预先下载并缓存预缓存数据,以便预缓存数据可以支撑在即将进入的弱网区域内的浏览需求,从而保证在弱网区域内依然能够正常使用客户端,提升用户体验。

  下面,对生成蜂窝网络质量地图的过程进行介绍。生成蜂窝网络质量地图的过程可以包括客户端执行的部分和服务端执行的部分。客户端用于上报弱网信息,服务端用于根据客户端上报的信息生成蜂窝网络质量地图。

  图2为本发明实施例中的一种客户端上报弱网信息的步骤流程图。

  如图2所示,客户端上报弱网信息的过程可以包括以下步骤:

  步骤201,获取网络请求质量数据。

  客户端在每发送一次网络请求后,可以获取网络请求质量数据。网络请求质量数据可以包括请求耗时、请求结果、网络速度等信息。其中,请求结果包括请求成功和请求失败。

  步骤202,判断是否使用蜂窝网络。若是,则执行步骤203;若否,则返回步骤201。

  客户端判断自身是否使用蜂窝网络。若客户端使用蜂窝网络,则继续执行步骤203,若客户端未使用蜂窝网络,则返回步骤201。

  步骤203,判断是否具有GPS使用权限。若是,则执行步骤204;若否,则返回步骤201。

  步骤204,将网络请求质量数据输入弱网检测模型。

  步骤205,根据弱网检测模型的输出判断当前蜂窝网络是否为弱网状态。若是,则执行步骤206;若否,则返回步骤201。

  在客户端使用蜂窝网络的情况下,可以判断当前的蜂窝网络是否处于弱网状态。

  本发明实施例中,可以利用预先训练的弱网检测模型判断当前蜂窝网络是否为弱网状态。比如,弱网检测模型可以采用卷积神经网络模型等形式。在训练弱网检测模型的过程中,获取大量的正样本数据和负样本数据。正样本数据包括在弱网状态下的网络请求质量数据及标注信息为弱网状态,负样本包括在非弱网状态下的网络请求质量数据及标注信息为非弱网状态。基于正样本数据和负样本数据对待训练的弱网检测模型进行训练。将样本数据中的网络请求质量数据作为待训练的弱网检测模型的输入,依据待训练的弱网检测模型的输出和样本数据中的标注信息计算损失值,在损失值小于预设的损失阈值时,确定训练完成,将训练完成的模型作为弱网检测模型。

  比如,标注信息表示实际的蜂窝网络为弱网状态的概率,弱网状态对应的标注信息为1,非弱网状态对应的标注信息为0。待训练的弱网检测模型的输出表示预测的蜂窝网络为弱网状态的概率。可以将标注信息与待训练的弱网检测模型的输出之间的差值作为损失值。比如,弱网检测模型的输出为0.8,标注信息为1,则损失值可以为0.2。对于损失阈值的具体数值,可以根据实际经验选用任意适用的值。比如可以设置损失阈值为0.1、0.2、0.3,等等。

  在训练得到弱网检测模型后,将弱网检测模型存储于客户端中。将步骤201中获取的网络请求质量数据输入弱网检测模型,得到弱网检测模型输出的当前蜂窝网络为弱网状态的概率。在当前蜂窝网络为弱网状态的概率大于预设的概率阈值时,判定为当前蜂窝网络是弱网状态。对于概率阈值的具体数值,可以根据实际经验选用任意适用的值。比如可以设置概率阈值为0.7、0.8、0.9,等等。

  步骤206,获取客户端所在移动终端的GPS定位信息。

  在判断出当前蜂窝网络为弱网状态后,获取客户端所在移动终端的GPS定位信息。可选地,在获取GPS定位信息的过程中,可以按照用户指定的定位精度,获取对应精度的GPS定位信息。其中,GPS定位信息可以包括定位位置、定位时间戳、定位精度,等等。

  步骤207,判断定位位置是否发生变化。若是,则执行步骤208;若否,则返回步骤201。

  步骤208,将GPS定位信息和弱网状态上报至服务端。

  如果定位位置发生变化,则说明产生新的处于弱网状态的定位位置,因此客户端将GPS定位信息和弱网状态上报至服务端。如果定位位置未发生变化,则无需重复上报。

  图3为本发明实施例中的一种服务端生成蜂窝网络质量地图的步骤流程图。

  如图3所示,服务端生成蜂窝网络质量地图的过程可以包括以下步骤:

  步骤301,获取客户端上报的GPS定位信息和弱网状态。

  步骤302,判断定位位置是否已经存在。若是,则执行步骤304;若否,则执行步骤303。

  步骤303,新建该定位位置。

  步骤304,更新定位位置的上报次数。

  如果是新建的该定位位置,则将该定位位置的上报次数更新为一次。如果是已经存在的定位位置,则将该定位位置的上报次数增加一次。

  步骤305,判断当前时间距离上次聚类时间是否达到第一预设时长。若是,则执行步骤306;若否,则返回步骤301。

  本发明实施例中,每次聚类后可以记录本次的聚类时间,可以设置每隔第一预设时长进行一次聚类,生成一次蜂窝网络质量地图。对于第一预设时长的具体数值,可以根据实际经验选用任意适用的值。比如可以设置第一预设时长为30分钟、1小时、2小时,等等。

  步骤306,选取定位时间戳距离当前时间的时长小于第二预设时长,且上报次数超过预设数量阈值的定位位置。

  由于较长时间之前的定位位置对应的蜂窝网络状态可能不再准确,比如,由于基站故障导致某个定位位置在一个星期之前处于弱网状态,但是当前已经排除了基站故障,因此该定位位置在当前可能处于非弱网状态。为了避免利用这些蜂窝网络状态不准确的定位位置进行聚类而导致结果不准确,可以选取定位时间戳距离当前时间的时长小于第二预设时长的定位位置。对于第二预设时长的具体数值,可以根据实际经验选用任意适用的值。比如可以设置第二预设时长为12小时、1天、2天,等等。

  由于上报次数较少的定位位置对应的蜂窝网络状态可能不准确,比如,某个定位位置只上报了10次,那么可能是由于检测错误导致该定位位置被判定为处于弱网状态,而实际上该定位位置可能并非真正处于弱网状态。为了避免利用这些蜂窝网络状态不准确的定位位置进行聚类而导致结果不准确,可以选取上报次数超过预设数量阈值的定位位置。对于预设数量阈值的具体数值,可以根据实际经验选用任意适用的值。比如可以设置数量阈值为300次、500次、800次,等等。

  因此,本发明实施例中,在当前时间距离上次聚类时间达到第一预设时长时,选取定位时间戳距离当前时间的时长小于第二预设时长,且上报次数超过预设数量阈值的定位位置。

  步骤307,对选取的定位位置进行聚类。

  聚类过程可以包括:

  (1)按照城市进行划分,选取当前城市包含的定位位置。

  (2)对当前城市按照预设面积进行划分,每个预设面积内包含的定位位置形成一个数据集合,一个数据的形式为<定位位置,上报次数>。

  对于预设面积的具体数值,可以根据实际经验选用任意适用的值。比如可以设置预设面积为1平方公里、2平方公里,等等。

  (3)对当前预设面积对应的数据集合,计算聚类后得到的簇的个数k。

  对当前预设面积对应的数据集合中的数据,进行三维直方图统计,三维直方图的高度表示同一定位位置对应的上报次数,通过遍历三维直方图可以找到其中的峰顶对应的上报次数。将其中上报次数大于预设次数阈值的峰顶个数作为簇的个数k。对于预设次数阈值的具体数值,可以根据实际经验选用任意适用的值。比如可以设置次数阈值为1000次、1500次,等等。

  (4)对当前预设面积对应的数据集合,以k个峰顶对应的定位位置作为初始质心,进行k-means聚类,得到k个簇。

  步骤308,依据聚类结果生成蜂窝网络质量地图。

  生成蜂窝网络质量地图的过程可以包括:

  (1)针对当前预设面积对应的每个簇,计算簇里每两个定位位置之间的距离,以距离最大的两个定位位置之间的距离作为直径,以距离最大的两个定位位置的中点作为圆心,将每个簇都抽象为一个圆形区域。

  图4为本发明实施例中的一种弱网区域的示意图。图4中,一个圆形区域即为由一个簇抽象得到的圆形区域。

  (2)针对当前城市中的全部预设面积内包含的圆形区域,将存在交集的圆形区域合并为一个,能够包含这些存在交集的圆形区域的最小圆形区域,得到当前城市包含的弱网区域。其中,一个圆形区域为一个弱网区域。

  (3)将当前城市包含的弱网区域,作为当前城市对应的蜂窝网络质量地图中的弱网区域,并将每个弱网区域的直径和圆心位置写入该弱网区域对应的索引文件中。

  图5为本发明实施例中的另一种数据预缓存方法的步骤流程图。图5所示的数据预缓存方法应用于客户端。

  如图5所示,数据预缓存方法可以包括以下步骤:

  步骤501,客户端启动。

  步骤502,判断是否存在新版本的蜂窝网络质量地图。若是,则执行步骤503;若否,则执行步骤504。

  客户端启动后,向服务端发送版本获取请求,版本获取请求中可以携带客户端当前所在城市等信息。服务端接收到版本获取请求后,将客户端当前所在城市对应的蜂窝网络质量地图的版本信息返回给客户端。客户端将服务器返回的版本信息,与客户端本地保存的当前所在城市对应的蜂窝网络质量地图的版本信息进行比较。如果比较结果不一致,则确定服务端存在新版本的蜂窝网络质量地图;否则,确定服务端不存在新版本的蜂窝网络质量地图。

  步骤503,下载新版本的蜂窝网络质量地图。

  客户端在判断出服务端存在新版本的蜂窝网络质量地图后,从服务端下载客户端当前所在城市对应的新版本的蜂窝网络质量地图。

  步骤504,判断是否使用蜂窝网络。若是,则执行步骤505;若否,则结束。

  客户端判断自身是否使用蜂窝网络。若客户端使用蜂窝网络,则继续执行步骤505,若客户端未使用蜂窝网络,则无需执行本发明实施例的数据与缓存方法。

  步骤505,判断是否具有GPS使用权限。若是,则执行步骤507;若否,则执行步骤506。

  步骤506,判断是否完成GPS授权。若是,则执行步骤507;若否,则结束。

  在客户端当前没有GPS使用权限时,客户端可以展示用于提示用户进行GPS授权的提示信息,如果用户对该客户端授权GPS,则确定完成GPS授权。

  步骤507,定时获取所述客户端所在移动终端的GPS定位信息。

  客户端具有GPS使用权限后,在运行过程中,定时获取移动终端的GPS定位信息。可选地,在获取GPS定位信息的过程中,可以按照用户指定的定位精度,获取对应精度的GPS定位信息。其中,GPS定位信息可以包括定位位置、定位时间戳、定位精度,等等。

  步骤508,判断是否存在所述移动终端即将进入的弱网区域。若是,则执行步骤509;若否,则结束。

  客户端在获取到一个GPS定位信息后,依据当前定位位置,判断是否存在移动终端即将进入的弱网区域。

  在一种可选实施方式中,依据当前定位位置,判断是否存在所述移动终端即将进入的弱网区域的过程,可以包括以下步骤A1~A3:

  步骤A1,获取预设蜂窝网络质量地图中包含的各弱网区域的圆心位置和直径。

  客户端获取本地保存的当前所在城市对应的蜂窝网络质量地图,该蜂窝网络质量地图中包含至少一个圆形的弱网区域,每个弱网区域具有对应的索引文件,索引文件中包括该弱网区域的圆心位置和直径。

  步骤A2,针对每个弱网区域,计算当前定位位置与所述弱网区域的圆心位置之间的第一距离。

  客户端针对当前所在城市对应的蜂窝网络质量地图中包含的每个弱网区域,计算当前定位位置(定位的经纬度)与该弱网区域的圆心位置(圆心的经纬度)之间的第一距离。

  如果假设地球是一个完美的球体,它的半径记为R。如果以0度经线为基准,那么根据地球表面任意两点的经纬度就可以计算出这两点间的地表距离(这里忽略地球表面地形对计算带来的误差,仅仅是理论上的估算值)。设点A的经纬度为(LonA,LatA),点B的经纬度为(LonB,LatB),那么根据三角推导,可以得到计算两点距离的如下公式一:

  D=R×Arccos[sin(LatA)×sin(LatB)+cos(LatA)×cos(LatB)×cos(LonA-LonB)]

  公式一

  公式一中,D表示点A和点B之间的距离,R表示地球的半径,sin表示正弦函数,cos表示余弦函数,Arccos表示反余弦函数。R和D的单位相同。

  因此,可以将当前定位位置作为上述点A,将所述弱网区域的圆心位置作为上述点B,利用上述公式计算当前定位位置与所述弱网区域的圆心位置之间的第一距离。

  步骤A3,在所述第一距离大于所述弱网区域的半径,且小于所述弱网区域的半径与预设距离阈值的总和时,将所述弱网区域判定为所述即将进入的目标弱网区域。

  在当前定位位置与某个弱网区域的圆心位置之间的第一距离大于该弱网区域的半径,且小于该弱网区域的半径与预设距离阈值的总和时,将该弱网区域判定为即将进入的目标弱网区域。即将进入的目标弱网区域可能有一个或多个。

  对于预设距离阈值的具体数值,可以根据实际情况设置任意适用的数值,比如,可以设置距离阈值为50米、80米、100米,等等,本发明实施例对此不做限制。

  步骤509,计算穿过即将进入的弱网区域所需的时长。

  在判定为存在即将进入的弱网区域后,计算穿过即将进入的弱网区域所需的时长。

  在一种可选实施方式中,计算穿过所述即将进入的弱网区域所需的时长的过程,可以包括以下步骤B1~B3:

  步骤B1,依据至少两个GPS定位信息包括的定位位置和定位时间戳,计算移动速度。

  客户端可以获取至少两个GPS定位信息中包括的定位位置和定位时间戳。

  如果获取两个GPS定位信息中包括的定位位置和定位时间戳,则计算两个定位位置之间的距离,以及计算两个定位时间戳之间的时长,并距离除以时长的商,将得到的商作为移动速度。

  如果获取至少三个GPS定位信息中包括的定位位置和定位时间戳,则分别计算相邻两个定位位置之间的距离,以及计算相邻两个定位时间戳之间的时长,计算相邻两个定位位置之间的距离除以相邻两个定位位置之间的时长的商,将得到的商作为相邻两个定位位置之间的移动速度,最后计算全部移动速度的平均值,作为最终的移动速度。

  步骤B2,获取预设蜂窝网络质量地图中包含的,所述即将进入的弱网区域的直径。

  步骤B3,在所述即将进入的弱网区域为一个时,将所述即将进入的弱网区域的直径除以所述移动速度得到的商,作为所述时长;在所述即将进入的弱网区域为多个时,从所述即将进入的弱网区域中选取直径最大的弱网区域,将选取的弱网区域的直径除以所述移动速度得到的商,作为所述时长。

  步骤510,依据所述时长下载预缓存数据,并缓存所述预缓存数据。

  客户端依据穿过所述即将进入的弱网区域所需的时长,下载预缓存数据。

  在一种可选实施方式中,依据所述时长下载预缓存数据的过程,可以包括:获取在所述客户端浏览所述时长所需的数据量;下载大于等于所述数据量的数据,将下载的数据作为所述预缓存数据。比如,可以基于在所述客户端的历史浏览数据,获取最近第三预设时长内的浏览数据量,计算该浏览数据量与第三预设时长的比值,将该比值作为浏览速度;然后计算该浏览速度与穿过即将进入的弱网区域所需的时长的乘积,将该乘积作为在客户端浏览所述时长所需的数据量。对于第三预设时长的具体数值,可以根据实际经验选用任意适用的值。比如可以设置第三预设时长为10分钟、20分钟、30分钟,等等。下载预缓存数据后,缓存该预缓存数据,以便后续在进入某个弱网区域后,能够在网络状态较差的情况下展示预缓存数据。

  比如,当用户边走边浏览网页时,根据GPS定位信息可以判断出即将进入一个弱网区域,弱网区域的区域直径是200米,按照正常速度,用户需要走6~8分钟才能穿过该弱网区域,那么用户会面临6~8分钟里无法通过蜂窝网络继续浏览网页信息。采用本发明实施例的数据预缓存方法后,可以在用户距离该弱网区域一定距离的时候,比如50米或100米等,开始预加载网页信息流页面,比如预缓存10个页面的内容,每个页面中包含10条内容,等等。这样当用户进入该弱网区域后,可以支持用户浏览10页已经缓存的页面内容,能够支撑用户在该弱网区域内的浏览需求,用户可以在无感知网络中断的情况下穿过弱网区域。

  再比如,当用户边走边观看视频时,根据GPS定位信息可以判断出即将进入一个弱网区域,弱网区域的区域直径是200米,按照正常速度,用户需要走6~8分钟才能穿过该弱网区域,那么用户会面临6~8分钟里无法通过蜂窝网络继续观看视频。采用本发明实施例的数据预缓存方法后,可以在用户距离该弱网区域一定距离的时候,比如50米或100米等,将视频的缓存片段的时长增加为10分钟。这样当用户进入该弱网区域后,可以支持用户观看10分钟已经缓存的视频,能够支撑用户在该弱网区域内的观看需求,用户可以在无感知网络中断的情况下穿过弱网区域。

  本发明实施例通过在服务端对客户端的蜂窝网络监测数据进行大数据的聚类算法,可以制作出蜂窝网络质量地图,并且定期更新蜂窝网络质量地图。客户端在启动后,从服务端下载最新版本的蜂窝网络质量地图,基于蜂窝网络质量地图,判断是否即将进入弱网区域,并在进入弱网区域之前,提前缓存在弱网区域内所需浏览的数据,以便用户无感知地通过弱网区域,提升用户体验。

  图6为本发明实施例中的再一种数据预缓存方法的步骤流程图。图6所示的数据预缓存方法应用于客户端。

  如图6所示,数据预缓存方法可以包括以下步骤:

  步骤601,定时获取所述客户端所在移动终端的GPS定位信息,所述GPS定位信息包括定位位置。

  步骤602,依据当前定位位置,判断是否存在所述移动终端即将进入的弱网区域。

  步骤603,在判定为存在所述即将进入的弱网区域时,计算穿过所述即将进入的弱网区域所需的时长。

  步骤604,依据所述时长下载预缓存数据,并缓存所述预缓存数据。

  步骤605,依据当前定位位置,判断是否进入目标弱网区域。

  客户端处于移动状态,获取的GPS定位信息会实时变化。客户端在依据所述时长下载预缓存数据,并缓存所述预缓存数据之后,继续定时获取客户端所在移动终端的GPS定位信息,并依据当前定位位置,判断是否进入所述即将进入的弱网区域中的一个目标弱网区域。

  在一种可选实施方式中,依据当前定位位置,判断是否进入目标弱网区域的过程,可以包括以下步骤C1~C3:

  步骤C1,获取预设蜂窝网络质量地图中包含的,所述即将进入的弱网区域的圆心位置和直径。

  客户端获取本地保存的当前所在城市对应的蜂窝网络质量地图中,所述即将进入的弱网区域的索引文件,从该索引文件中获取所述即将进入的弱网区域的圆心位置和直径。

  步骤C2,针对每个即将进入的弱网区域,计算当前定位位置与所述即将进入的弱网区域的圆心位置之间的第二距离。

  在计算当前定位位置与所述即将进入的弱网区域的圆心位置之间的第二距离时,可以利用上述公式一进行计算。计算时,将当前定位位置作为点A,将所述即将进入的弱网区域的圆心位置作为点B。

  步骤C3,在所述第二距离小于等于所述即将进入的弱网区域的半径时,将所述即将进入的弱网区域作为所述目标弱网区域,判定为进入所述目标弱网区域。

  在当前定位位置与某个即将进入的弱网区域的圆心位置之间的第二距离,小于等于该即将进入的弱网区域的半径时,可以认为用户进入该即将进入的弱网区域,因此将该即将进入的弱网区域作为用户进入的目标弱网区域。

  步骤606,在判定为进入所述目标弱网区域时,读取缓存的所述预缓存数据,并展示所述预缓存数据。

  在判定为进入目标弱网区域时,由于在弱网区域内的蜂窝网络质量较差,无法正常使用蜂窝网络,因此可以读取提前缓存的所述预缓存数据,并展示该预缓存数据,以便在弱网区域内仍然能够继续使用客户端,用户可能无感知蜂窝网络断开。

  步骤607,依据当前定位位置,判断是否离开所述目标弱网区域。

  客户端在进入目标弱网区域后,继续定时获取客户端所在移动终端的GPS定位信息,并依据当前定位位置,判断是否离开所述目标弱网区域。

  在一种可选实施方式中,依据当前定位位置,判断是否离开所述目标弱网区域的过程,可以包括以下步骤D1~D3:

  步骤D1,获取预设蜂窝网络质量地图中包含的所述目标弱网区域的圆心位置和直径。

  客户端获取本地保存的当前所在城市对应的蜂窝网络质量地图中,所述目标弱网区域的索引文件,从该目标弱网区域的索引文件中获取所述目标弱网区域的圆心位置和直径。

  步骤D2,计算当前定位位置与所述目标弱网区域的圆心位置之间的第三距离。

  在计算当前定位位置与所述目标弱网区域的圆心位置之间的第三距离时,可以利用上述公式一进行计算。计算时,将当前定位位置作为点A,将所述目标弱网区域的圆心位置作为点B。

  步骤D3,在所述第三距离大于等于所述目标弱网区域的半径时,判定为离开所述目标弱网区域。

  在当前定位位置与目标弱网区域的圆心位置之间的第三距离大于等于该目标弱网区域的半径时,可以认为用户离开该目标弱网区域。

  步骤608,在判定为离开所述目标弱网区域时,停止依据所述时长下载预缓存数据。

  在判定为离开所述目标弱网区域时,蜂窝网络恢复正常,此时可以不再继续依据穿过即将进入的弱网区域所需的时长下载预缓存数据,可以继续采用原始的缓存机制缓存数据,从而避免耗费过多的网络流量。比如,在浏览网页之前可以不再提前缓存页面内容,采用实时推荐机制。再比如,在观看视频时,可以恢复到原始缓存10秒视频数据的缓存机制。

  图7为本发明实施例中的一种数据预缓存装置的结构框图。图7所示的数据预缓存装置应用于客户端。

  如图7所示,数据预缓存装置可以包括以下模块:

  获取模块701,用于定时获取所述客户端所在移动终端的GPS定位信息,所述GPS定位信息包括定位位置;

  第一判断模块702,用于依据当前定位位置,判断是否存在所述移动终端即将进入的弱网区域;

  计算模块703,用于在所述第一判断模块判定为存在所述即将进入的弱网区域时,计算穿过所述即将进入的弱网区域所需的时长;

  缓存模块704,用于依据所述时长下载预缓存数据,并缓存所述预缓存数据。

  图8为本发明实施例中的另一种数据预缓存装置的结构框图。图8所示的数据预缓存装置应用于客户端。

  如图8所示,数据预缓存装置可以包括以下模块:

  获取模块801,用于定时获取所述客户端所在移动终端的GPS定位信息,所述GPS定位信息包括定位位置;

  第一判断模块802,用于依据当前定位位置,判断是否存在所述移动终端即将进入的弱网区域;

  计算模块803,用于在所述第一判断模块判定为存在所述即将进入的弱网区域时,计算穿过所述即将进入的弱网区域所需的时长;

  缓存模块804,用于依据所述时长下载预缓存数据,并缓存所述预缓存数据。

  可选地,所述第一判断模块802包括:第一获取单元8021,用于获取预设蜂窝网络质量地图中包含的各弱网区域的圆心位置和直径;第一距离计算单元8022,用于针对每个弱网区域,计算当前定位位置与所述弱网区域的圆心位置之间的第一距离;第一比较单元8023,用于在所述第一距离大于所述弱网区域的半径,且小于所述弱网区域的半径与预设距离阈值的总和时,将所述弱网区域判定为所述即将进入的目标弱网区域。

  可选地,所述GPS定位信息还包括定位时间戳;所述计算模块803包括:速度计算单元8031,用于依据至少两个GPS定位信息包括的定位位置和定位时间戳,计算移动速度;直径获取单元8032,用于获取预设蜂窝网络质量地图中包含的,所述即将进入的弱网区域的直径;第一时长计算单元8033,用于在所述即将进入的弱网区域为一个时,将所述即将进入的弱网区域的直径除以所述移动速度得到的商,作为所述时长;第二时长计算单元8034,用于在所述即将进入的弱网区域为多个时,从所述即将进入的弱网区域中选取直径最大的弱网区域,将选取的弱网区域的直径除以所述移动速度得到的商,作为所述时长。

  可选地,所述装置还包括:第二判断模块805,用于依据当前定位位置,判断是否进入目标弱网区域;所述目标弱网区域为所述即将进入的弱网区域中的一个;展示模块806,用于在所述第二判断模块判定为进入所述目标弱网区域时,读取缓存的所述预缓存数据,并展示所述预缓存数据。

  可选地,所述第二判断模块805包括:第二获取单元8051,用于获取预设蜂窝网络质量地图中包含的,所述即将进入的弱网区域的圆心位置和直径;第二距离计算单元8052,用于针对每个即将进入的弱网区域,计算当前定位位置与所述即将进入的弱网区域的圆心位置之间的第二距离;第二比较单元8053,用于在所述第二距离小于等于所述即将进入的弱网区域的半径时,将所述即将进入的弱网区域作为所述目标弱网区域,判定为进入所述目标弱网区域。

  可选地,所述装置还包括:第三判断模块807,用于依据当前定位位置,判断是否离开所述目标弱网区域;停止模块808,用于在所述第三判断单元判定为离开所述目标弱网区域时,停止依据所述时长下载预缓存数据。

  可选地,所述第三判断模块807包括:第三获取单元8071,用于获取预设蜂窝网络质量地图中包含的所述目标弱网区域的圆心位置和直径;第三距离计算单元8072,用于计算当前定位位置与所述目标弱网区域的圆心位置之间的第三距离;第三比较单元8073,用于在所述第三距离大于等于所述目标弱网区域的半径时,判定为离开所述目标弱网区域。

  可选地,所述缓存模块804包括:第四获取单元8041,用于获取在所述客户端浏览所述时长所需的数据量;下载单元8042,用于下载大于等于所述数据量的数据,将下载的数据作为所述预缓存数据。

  本发明实施例中,通过在进入弱网区域之前,依据穿过即将进入的弱网区域所需的时长,预先下载并缓存预缓存数据,可以使在进入弱网区域后,网络无法正常使用的状况下,展示预缓存数据,从而保证在弱网区域内依然能够正常使用客户端,提升用户体验。

  本发明实施例还提供了一种电子设备,如图9所示,包括处理器901、通信接口902、存储器903和通信总线904,其中,处理器901,通信接口902,存储器903通过通信总线904完成相互间的通信。

  存储器903,用于存放计算机程序;

  处理器901,用于执行存储器903上所存放的程序时,实现如下步骤:

  定时获取所述客户端所在移动终端的GPS定位信息,所述GPS定位信息包括定位位置;

  依据当前定位位置,判断是否存在所述移动终端即将进入的弱网区域;

  在判定为存在所述即将进入的弱网区域时,计算穿过所述即将进入的弱网区域所需的时长;

  依据所述时长下载预缓存数据,并缓存所述预缓存数据。

  可选地,所述依据当前定位位置,判断是否存在所述移动终端即将进入的弱网区域,包括:获取预设蜂窝网络质量地图中包含的各弱网区域的圆心位置和直径;针对每个弱网区域,计算当前定位位置与所述弱网区域的圆心位置之间的第一距离;在所述第一距离大于所述弱网区域的半径,且小于所述弱网区域的半径与预设距离阈值的总和时,将所述弱网区域判定为所述即将进入的目标弱网区域。

  可选地,所述GPS定位信息还包括定位时间戳;所述计算穿过所述即将进入的弱网区域所需的时长,包括:依据至少两个GPS定位信息包括的定位位置和定位时间戳,计算移动速度;获取预设蜂窝网络质量地图中包含的,所述即将进入的弱网区域的直径;在所述即将进入的弱网区域为一个时,将所述即将进入的弱网区域的直径除以所述移动速度得到的商,作为所述时长;在所述即将进入的弱网区域为多个时,从所述即将进入的弱网区域中选取直径最大的弱网区域,将选取的弱网区域的直径除以所述移动速度得到的商,作为所述时长。

  可选地,在所述依据所述时长下载预缓存数据,并缓存所述预缓存数据之后,所述方法还包括:依据当前定位位置,判断是否进入目标弱网区域;所述目标弱网区域为所述即将进入的弱网区域中的一个;在判定为进入所述目标弱网区域时,读取缓存的所述预缓存数据,并展示所述预缓存数据。

  可选地,所述依据当前定位位置,判断是否进入目标弱网区域,包括:获取预设蜂窝网络质量地图中包含的,所述即将进入的弱网区域的圆心位置和直径;针对每个即将进入的弱网区域,计算当前定位位置与所述即将进入的弱网区域的圆心位置之间的第二距离;在所述第二距离小于等于所述即将进入的弱网区域的半径时,将所述即将进入的弱网区域作为所述目标弱网区域,判定为进入所述目标弱网区域。

  可选地,在所述展示所述预缓存数据之后,所述方法还包括:依据当前定位位置,判断是否离开所述目标弱网区域;在判定为离开所述目标弱网区域时,停止依据所述时长下载预缓存数据。

  可选地,所述依据所述时长下载预缓存数据,包括:获取在所述客户端浏览所述时长所需的数据量;下载大于等于所述数据量的数据,将下载的数据作为所述预缓存数据。

  可选地,所述依据当前定位位置,判断是否离开所述目标弱网区域,包括:获取预设蜂窝网络质量地图中包含的所述目标弱网区域的圆心位置和直径;计算当前定位位置与所述目标弱网区域的圆心位置之间的第三距离;在所述第三距离大于等于所述目标弱网区域的半径时,判定为离开所述目标弱网区域。

  上述终端提到的通信总线可以是外设部件互连标准(Peripheral ComponentInterconnect,简称PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,简称EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。

  通信接口用于上述终端与其他设备之间的通信。

  存储器可以包括随机存取存储器(Random Access Memory,简称RAM),也可以包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。

  上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(Digital Signal Processing,简称DSP)、专用集成电路(Application SpecificIntegrated Circuit,简称ASIC)、现场可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。

  在本发明提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机实现上述实施例中任一所述的数据预缓存方法。

  在本发明提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机实现上述实施例中任一所述的数据预缓存方法。

  在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。

  需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

  本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

  以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

《数据预缓存方法、装置、电子设备及存储介质.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

文档为doc格式(或pdf格式)