一种数据下载进度显示方法及装置与流程

文档序号:11154797阅读:430来源:国知局
一种数据下载进度显示方法及装置与制造工艺

本发明涉及数据下载领域,特别是涉及一种数据下载显示方法及装置。



背景技术:

大部分的软件都涉及到数据下载,由于数据下载存在网络交互,一般下载一包数据到下一包数据之间会存在一定的时间差,所以软件的进度显示一般都存在卡顿、突兀、不流畅等问题。在网络下载的过程中,下载到的数据会先缓冲到一块缓冲区,达到一定的数据量再进行一次IO操作,并在软件的界面进行进度的刷新。由于网络情况复杂,不稳定性因素非常多,数据刷新操作存在着不同时间差,界面UI百分比显示也就存在着各类不流畅问题。

目前大部分的软件在网络下载进度显示上只作简单的刷新显示,部分软件有对进度作比作优化,但还是存在着不足之处。

目前,软件在处理下载进度显示方案时,一般有两种处理方式,一种是不经任何处理的显示下载进步的百分比。第二种进行了简单的处理,具体处理流程如下:收到一包数据,即显示该包数据的进度,在下一包数据到来之后计算出下一包数据的进度,并将该进度在一定的时间内分段显示。举例如下:

第一包数据显示70.00%;

第二包数据算出进度为75.00%;

然而,按照上述现有方式,有可能分十次在一定时间内显示,比如2秒内,会显示70.05%,70.10%,70.15%......75.00%,每0.2秒显示一次。

上述第一种显示方式最原始,其缺点也最多,第二种显示方式较第一种来说有优化,但其缺点也是显而易见,由于网络速率存在很多不稳定因素,会导致数据包间的时间差及数据包大小都不稳定。若按固定的时间,固定的等分比来处理,会造成百分比显示跳跃、卡顿等问题,影响用户体验。



技术实现要素:

本发明提供一种数据下载显示方法及装置,用以解决目前软件界面显示数据下载进步不流畅的问题。

根据本发明的一个方面,提供了一种数据下载进度显示方法,包括:根据已下载的数据包的大小以及下载数据包所用的时间计算在预期时间段内的数据包的第一预期下载增量;根据数据包的第一预期下载增量显示下载进度。

其中,根据已下载的数据包的大小以及下载数据包所用的时间计算在预期时间段内的数据包的第一预期下载增量,包括:根据目前网络的下载速率从已下载的数据包中剔除异常数据包后,选择指定个数的数据包;根据指定个数的数据包及相应的下载时间,计算出数据包的第一平均下载速率;根据第一平均下载速率计算预期时间段内的数据包的第一预期下载增量。

其中,根据目前网络的下载速率从已下载的数据包中剔除异常数据包,包括:剔除已下载的数据包中,下载速率超过其他所有数据包平均下载速率三倍的数据包;再剔除剩余所有数据包中下载速率最大的以及下载速率最小的预设个数个数据包。

进一步的,上述方法还包括:根据已下载的数据包的大小以及下载数据包所用的时间计算在预期时间段内数据包的第一预期下载增量之后,计算后续接收到的数据包的第二平均下载速率;根据第二平均下载速率确定后续接收到的数据包在预期时间段内的数据包的第二预期下载增量,根据第二预期下载增量对第一预期下载增量进行修正,使用修正后的数据包下载增量显示下载进度。

进一步的,上述方法还包括:在根据数据包的第一预期下载增量显示下载进度之前,根据已下载的数据包占总数据包的百分比以及当前数据包的平均下载速率,计算下载剩余数据包所需时间;在根据数据包的第一预期下载增量显示下载进度时,显示下载剩余数据包所需时间,以及已下载数据包占总数据包的百分比。

根据本发明的第二个方面,提供了一种数据下载进度显示装置,包括:确定模块,用于根据已下载的数据包的大小以及下载数据包所用的时间计算在预期时间段内的数据包的第一预期下载增量;显示模块,用于根据数据包的第一预期下载增量显示下载进度。

其中,上述确定模块,包括:选择单元,用于根据目前网络的下载速率从已下载的数据包中剔除异常数据包后,选择指定个数的数据包;第一计算单元,用于根据指定个数的数据包及相应的下载时间,计算出数据包的第一平均下载速率;第二计算单元,用于根据第一平均下载速率计算预期时间段内的数据包的第一预期下载增量。

其中,选择单元,包括:第一剔除子单元,用于剔除已下载的数据包中,下载速率超过其他所有数据包平均下载速率三倍的数据包;第二剔除子单元,用于再剔除剩余所有数据包中下载速率最大的以及下载速率最小的预设个数个数据包。

进一步的,上述装置还包括:第一计算模块,用于根据已下载的数据包的大小以及下载数据包所用的时间计算在预期时间段内数据包的第一预期下载增量之后,计算后续接收到的数据包的第二平均下载速率;修正模块,用于根据第二平均下载速率确定后续接收到的数据包在预期时间段内的数据包的第二预期下载增量,根据第二预期下载增量对第一预期下载增量进行修正,使用修正后的数据包下载增量显示下载进度。

其中,上述装置还包括:第二计算模块,用于在根据数据包的第一预期下载增量显示下载进度之前,根据已下载的数据包占总数据包的百分比以及当前数据包的平均下载速率,计算下载剩余数据包所需时间;显示模块,用于在根据数据包的第一预期下载增量显示下载进度时,显示下载剩余数据包所需时间,以及已下载数据包占总数据包的百分比。

本发明有益效果如下:

本发明实施例提供的方案,根据已下载的数据包的大小和下载该数据包所用的时间来预计预期时间段内数据包的下载增量,从来根据预计出的该增量来显示数据下载进度,使得数据下载的进度显示较为流畅,不会出现卡顿的问题,提高了用户体验。

附图说明

图1是本发明实施例1提供的数据下载进度显示方法的流程图;

图2是本发明实施例2中涉及的数据下载进度显示方法的主要处理流程;

图3是本发明实施例3中提供的数据下载进度显示装置的结构框图。

具体实施方式

为了解决现有技术软件界面显示数据下载进步不流畅的问题,本发明提供了一种数据下载显示方法及装置,以下结合附图以及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不限定本发明。

实施例1

本实施例提供了一种数据下载进度显示方法,该方法用于提示软件的数据包下载进度,图1是该方法的流程图,如图1所示,该方法包括如下步骤:

步骤101:根据已下载的数据包的大小以及下载数据包所用的时间计算预期时间段内数据包的第一预期下载增量;

其中,此处预期时间段可以是每次刷新下载进度的最小时间间隔,下载增量即在该最小时间间隔内预先算出的数据包下载量,优选的,在本实施例中,可以以5秒或10秒获取到的数据包个数来确定预期时间段内数据包的第一预期下载增量。

步骤102:根据数据包的第一预期下载增量显示下载进度。

在该步骤102中,具体的,可以是在预期时间段内显示第一预期数据下载增量。

其中,根据已下载的数据包的大小以及下载数据包所用的时间计算预期时间段内的数据包的第一预期下载增量具体可以包括:

根据目前网络的下载速率从已下载的数据包中剔除异常数据包后,选择指定个数的数据包;根据选择的指定个数的数据包以及下载各数据包所用的时间计算出数据包的第一平均下载速率;根据数据包的第一平均下载速率计算预期时间段内的数据包的第一预期下载增量。

其中,根据目前网络的下载速率从已下载的数据包中剔除异常数据包,具体可以包括:

剔除下载速率超过所有数据包平均下载速率三倍的数据包;

再剔除剩余所有数据包中下载速率最大的以及下载速率最小的预设个数个数据包。

进一步的,本实施例中,后续还可以对之前得到的预期数据包下载增量进行修正,基于此,上述方法还可以包括:

根据已下载的数据包的大小以及下载数据包所用的时间计算预期时间段内数据包的第一预期下载增量之后,计算后续接收到的数据包的第二平均下载速率,根据第二平均下载速率确定后续接收到的数据包在预期时间段内的第二预期数据下载增量,根据数据包的第二预期下载增量对数据包的第一预期下载增量进行修正,使用修正后的数据包下载增量显示下载进度。

优选的,本实施例的下载进度显示方案还可以对数据包当前下载进程以及下载剩余时间进行提示,基于此,上述方法还可以包括:

在根据数据包的第一预期下载增量显示下载进度之前,根据已下载的数据包占总数据包的百分比以及当前数据包的平均下载速率,计算下载剩余数据包所需时间;

在根据数据包的第一预期下载增量显示下载进度时,显示下载剩余数据所需时间,以及已下载数据包占总数据包的百分比。

实施例2

本实施例通过公开更多的技术细节来对本发明提供的数据下载进度显示方法进行进一步说明。

图2是本实施例中涉及的数据下载进度显示方法的主要处理流程,如图2所示,该流程主要包括如下处理:

统计当前下载的数据包及确定当前处于的下载过程,根据数据包的历史下载速率进行综合分析,判断当前数据包下载速率及下一包数据到来的相对准确时间及数据量,确定数据下载进度百分比参数,在规定的时间内以动画的方式模拟出当前的下载进度。

在如上流程中,对数据包的统计包括:监测下载过程及数据异常等情况。例如,在下载开始时,记录当前下载的是第一包数据,如果下载过程中遇到网络错误,会发送DownLoadAbort通知,以便及时显示异常情况。

在如上流程中,对数据的下载进度进行预测具体可以包括:

通过之前统计的各类参数,将时间及进度比向下传给显示模块。下载开始后,首先会先收集几包数据进行分析,判断,然后再显示进度,以获得开始数据的相对稳定。下载中,分析不同时间段数据包,给出相对准确的进度预测。

本实施例数据下载进度预测的处理逻辑包括如下处理:

下载开始后,获取到的数据包情况如下:

->(10kb,0.1s)->(1kb,0.1s)->(2kb,0.15s)->(2kb,0.1s)->(1kb,0.1s)->(1kb,0.15s)->(3kb,0.2s)......->(3kb,0.1s)->(2kb,0.1s)。

初始处理根据网速情况选适当数据包取均值,例如,取5个数据包,将上述数据包中的(10kb,0.1s),(1kb,0.1s),(2kb,0.15s),(2kb,0.1s),(1kb,0.1s)这五包数据取出来,筛选不正常数据包,将第一个数据包(10kb,0.1s)剔除掉,因为该数据包中的数据量与下载所用时间的比值超过了平均值的3倍,去掉该数据后会将第6包数据补上来。然后再按各数据包的数据量与下载所用时间的比值进行排序,去除比值最大的10%的数据包和比值最小的10%数据包。需要说明的是,本实施例中举例为选择5个数据进行分析,如果选择50个数据包,则可以去除10包数据。然后根据剩余的40个包数据计算平均数据包大小以及平均间隔时间。本实施中,去除(1kb,0.15s),剩余(1kb,0.1s),(2kb,0.15s),(2kb,0.1s),(1kb,0.1s),得到平均数据包大小为0.15kb,平均间隔时间0.1125s。

然后进行加权处理,上面得到数据包0.15kb,间隔0.1125s。假如,文件总大小1M,则当前下载进度约为0.015%,由于肉眼能观察到的刷新为0.1秒,在不影响视觉的情况下刷新频率不应该高于这个值,故,本实施例中预设时间间隔一般为1秒,在数据包下载进度慢的情况下会将最小显示度值所需时间作为间隔时间,例如,一个数据包的数据进度不是0.015%而是0.0015%,百分比最小显示为0.01%,这种情况下会设置间隔时间为66秒了。

在得到进度增量以及平均间隔时间后,还可以进行进度增量的修正,对后续数据包继续统计,求均值。重新计算进度增量与间隔时间,对之前计算得到的数据增量以及间隔时间进行修正。在异常情况下重新复位重新开始统计流程。

在本实施例中,数据下载进度显示可以采用动画的方式,显示会比一般软件直接刷新UI流畅。由预测模块给出的时间和进度,在速率快的情况下,会由较为流畅的显示效果,速率慢的情况下进度刷新会很平顺,不会出现卡顿等问题。

实施例3

本实施例提供了一种数据下载进度显示装置,该装置用于实现上述实施例1中提供的数据下载进度显示方法,图3是该装置的结构框图,如图3所示,该装置30包括如下组成部分:

确定模块31,用于根据已下载的数据包的大小以及下载数据包所用的时间计算预期时间段内数据包的第一预期下载增量;

显示模块32,用于根据数据包的第一预期下载增量显示下载进度。

其中,上述确定模块31具体可以包括:

选择单元,用于根据目前网络的下载速率从已下载的数据包中剔除异常数据包后,选择指定个数的数据包;

第一计算单元,用于根据指定个数的数据包以及下载各数据包所用的时间计算出数据包的第一平均下载速率;

第二计算单元,用于根据数据包的第一平均下载速率计算预期时间段内的数据包的第一预期下载增量。

其中,上述选择单元具体可以包括:

第一剔除子单元,用于剔除下载速率超过所有数据包平均下载速率三倍的数据包;

第二剔除子单元,用于再剔除剩余所有数据包中下载速率最大的以及下载速率最小的预设个数个数据包。

进一步的,上述装置30还可以包括:

第一计算模块,根据已下载的数据包的大小以及下载数据包所用的时间计算预期时间段内数据包的第一预期下载增量之后,计算后续接收到的数据包的第二平均下载速率;

修正模块,用于根据第二平均下载速率确定后续接收到的数据包在预期时间段内的第二预期数据下载增量,根据数据包的第二预期下载增量对数据包的第一预期下载增量进行修正,使用修正后的数据包下载增量显示下载进度。

进一步的,上述装置还可以包括:

第二计算模块,用于在根据数据包的第一预期下载增量显示下载进度之前,根据已下载的数据包占总数据包的百分比以及当前数据包的平均下载速率,计算下载剩余数据包所需时间;显示模块,用于在根据数据包的第一预期下载增量显示下载进度时,显示下载剩余数据所需时间,以及已下载数据包占总数据包的百分比。

尽管为示例目的,已经公开了本发明的优选实施例,本领域的技术人员将意识到各种改进、增加和取代也是可能的,因此,本发明的范围应当不限于上述实施例。

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