发明内容
针对现有技术中存在的缺陷,本发明实施例提供一种网络带宽分配方法及终端,实现了根据用户需求为终端运行的应用程序合理分配网络带宽。
第一方面,提供一种网络带宽分配方法,包括:
获取终端正在运行的且占用网络资源的应用程序的优先级;
获取所述终端当前可用的网络带宽;
根据所述终端的网络带宽分配策略和所述应用程序的优先级,将所述当前可用的网络带宽,分配给所述应用程序。
在第一方面的第一种可能的实现方式中,所述获取终端正在运行的且占用网络资源的应用程序的优先级,具体包括:
根据所述终端正在运行的且占用网络资源的应用程序的运行状态,对所述应用程序进行分类;
根据预设的优先级列表中存储的应用程序类别与优先级的映射关系,确定所述应用程序的优先级。
结合第一方面的第一种可能的实现方式,在第二种可能的实现方式中,所述根据预设的优先级列表中存储的应用程序类别与优先级的映射关系,确定所述应用程序的优先级,之后还包括:
若所述优先级列表中存在所述终端正在运行的且占用网络资源的应用程序未对应的优先级,则对所述终端正在运行的、优先级低于所述未对应的优先级的应用程序,顺次提升优先级,以根据所述应用程序的提升后的优先级,分配网络带宽。
结合第一方面或第一方面的第一或第二种可能的实现方式,在第三种可能的实现方式中,所述网络带宽分配策略具体为:为不同优先级的应用程序,分配不同比例的网络带宽;相应地,
所述根据所述终端的网络带宽分配策略和所述应用程序的优先级,将所述当前可用的网络带宽分配给所述应用程序,具体包括:
根据所述网络带宽分配策略,确定所述各应用程序的优先级对应的网络带宽分配比例;
根据所述网络带宽分配比例,对所述当前可用的网络带宽进行划分,确定与所述应用程序的优先级对应的网络带宽分配值;以及
根据所述网络带宽分配值,为具有对应的优先级的应用程序分配网络带宽。
结合第一方面或第一方面的第一或第二种可能的实现方式,在第四种可能的实现方式中,所述网络带宽分配策略具体为:
按照优先级由高至低的顺序,为应用程序分配网络带宽,并仅当为具有较高优先级的应用程序所分配的网络带宽,满足对应的预设期望带宽时,为具有较低优先级的应用程序分配剩余的网络带宽。
第二方面,提供一种终端,包括优先级获取模块、网络带宽获取模块和网络带宽分配模块,其中:
所述优先级获取模块,用于获取终端正在运行的且占用网络资源的应用程序的优先级,并提供给所述网络带宽分配模块;
所述网络带宽获取模块,用于获取所述终端当前可用的网络带宽,并提供给所述网络带宽分配模块;
所述网络带宽分配模块,用于根据所述终端的网络带宽分配策略和所述应用程序的优先级,将所述当前可用的网络带宽分配给所述应用程序。
在第二方面的第一种可能的实现方式中,所述优先级获取模块具体用于:根据所述终端正在运行的且占用网络资源的应用程序的运行状态,对所述应用程序进行分类;根据预设的优先级列表中存储的应用程序类别与优先级的映射关系,确定所述应用程序的优先级。
结合第二方面的第一种可能的实现方式,在第二种可能的实现方式中,所述优先级获取模块还用于:若所述优先级列表中存在所述终端正在运行的且占用网络资源的应用程序未对应的优先级,则对所述终端正在运行的、优先级低于所述未对应的优先级的应用程序,顺次提升优先级,以根据所述应用程序的提升后的优先级,分配网络带宽。
结合第二方面或第二方面的第一或第二种可能的实现方式,在第三种可能的实现方式中,所述网络带宽分配策略具体为:为不同优先级的应用程序,分配不同比例的网络带宽;相应地,所述网络带宽分配模块具体用于:根据所述网络带宽分配策略,确定所述各应用程序的优先级对应的网络带宽分配比例;根据所述网络带宽分配比例,对所述当前可用的网络带宽进行划分,确定与所述应用程序的优先级对应的网络带宽分配值;以及根据所述网络带宽分配值,为具有对应的优先级的应用程序分配网络带宽。
结合第二方面或第二方面的第一或第二种可能的实现方式,在第四种可能的实现方式中,所述网络带宽分配策略具体为:按照优先级由高至低的顺序,为应用程序分配网络带宽,并仅当为具有较高优先级的应用程序所分配的网络带宽,满足对应的预设期望带宽时,为具有较低优先级的应用程序分配剩余的网络带宽。
根据本发明实施例提供的网络带宽分配方法和终端,由于根据需分配网络带宽的各应用程序的优先级,终端当前可用的网络带宽,以及预设的网络带宽分配策略,为应用程序分配网络带宽,实现了根据用户需求为终端运行的应用程序合理分配网络带宽,使得在网络环境较差的情况,也可以根据用户的需求,保障优先级较高的应用程序正常运行,避免了由于各应用程序自由抢占带宽而导致的应用程序均无法正常运行,或无法根据用户需求运行相应的应用程序的问题。
具体实施方式
目前的智能手机中,没有对于应用程序所占用网络带宽进行协调分配处理的机制,各种与网络连接的应用程序基于抢占式的方法来各取所需。因此,当智能手机中同时运行多个与网络连接的应用程序时,各应用程序的用户网络体验具有不确定性,例如用户在刷新微博的过程中,后台有程序在访问服务器更新天气信息,***账户在同步账户信息,同时后台在线音乐又处于音乐缓冲过程中等。这些应用程序进行网络带宽抢占,可能导致各应用均获取到较少的网络带宽,未达到支持应用程序所需的最低带宽,导致歌曲缓冲失败,微博刷不出来等,无法满足用户需求。
本实施例的网络带宽分配方法可以由终端来执行,该终端可以例如为智能手机、个人电脑等。
图1为本发明一个实施例的网络带宽分配方法的流程示意图,如图1所示,该网络带宽分配方法包括以下流程:
101,获取终端正在运行的且占用网络资源的应用程序的优先级;
具体地,终端中例如预先配置有优先级列表,终端根据该优先级列表获知当前运行的、且与网络连接的应用程序的优先级。其中,终端根据优先级列表确定应用程序的优先级可以采用任意方式,例如:优先级列表中存储有根据用户需求所建立的各应用程序的标识与优先级的映射关系,终端根据当前运行的、且与网络连接的应用程序的标识查询优先级列表,即可确定应用程序的优先级;优先级列表中还可以存储根据用户需求所建立的应用程序的类型与优先级的映射关系,终端根据应用程序的业务特性或运行状态等,对当前运行的、且与网络连接的应用程序进行分类,交查询优先级列表中与该分类对应的优先级,即可确定应用程序的优先级。本实施例中,对于获取终端运行的与网络连接的应用程序的优先级的具体方式不做限制。
102,获取所述终端当前可用的网络带宽;
具体地,终端获取当前可用的网络带宽可以采用现有技术中的任意网络带宽获取方式来实现,本实施例中不做限制。更为具体地,可根据实际需要,将终端设置为持续监测可用的网络带宽;也可根据例如节省电量等需要,将终端设置为执行本实施例的网络带宽分配方法时,获取终端可用的网络带宽;还可以将终端设备为当网络状态发生变化时,获取终端可用的网络带宽。
103,根据所述终端的网络带宽分配策略和所述应用程序的优先级,将所述当前可用的网络带宽分配给所述应用程序。
具体地,终端还预先配置有一种或多种网络带宽分配策略,当配置有多种网络带宽分配策略时,可以由终端根据当前网络带宽自行选择较为优化的网络带宽分配策略,也可以由用户可根据需求选择当前应用的网络带宽分配策略。终端在获取到当前运行的、与网络连接的应用程序的优先级,以及终端当前可用的网络带宽后,结合当前应用的网络带宽分配策略,为与网络链接的应用程序分配网络带宽,以优先为优先级较高的应用程序分配充足的带宽,以保障优先级高的应用程序能够正常运行。
根据本实施例的网络带宽分配方法,由于根据需分配网络带宽的各应用程序的优先级,终端当前可用的网络带宽,以及预设的网络带宽分配策略,为应用程序分配网络带宽,实现了根据用户需求为终端运行的应用程序合理分配网络带宽,使得在网络环境较差的情况,也可以根据用户的需求,保障优先级较高的应用程序正常运行,避免了由于各应用程序自由抢占带宽而导致的应用程序均无法正常运行,或无法根据用户需求运行相应的应用程序的问题。
在上述实施例的基础上,本实施例的网络带宽分配方法中,对获取终端正在运行的且占用网络资源的应用程序的优先级的过程进行说明。
具体地,所述获取所述终端正在运行的且占用网络资源的应用程序的优先级,具体包括:
根据所述终端正在运行的与网络连接的应用程序的运行状态,对所述应用程序进行分类;
根据预设的优先级列表中存储的应用程序类别与优先级的映射关系,确定所述应用程序的优先级。
更为具体地,应用程序的运行状态例如包括前台运行、后台运行和隐藏运行等,相应地,按照运行状态所划分的应用程序的类型例如包括前台程序、后台服务和被隐藏的程序等。例如,在终端中,腾讯微博在最前端显示,其对应的分类为前台程序;天气时钟在后台更新天气信息,其对应的分类为后台服务;“音乐播放器”被隐藏在后台在线播放,其对应的分类为被隐藏的程序。
相应地,终端根据存储有上述各类别与优先级的映射关系的优先级列表,来确定各应用程序的优先级。该优先级列表例如可以采用现有安卓(Android)***中设置的用于管理内存的优先级列表。表1为安卓***中设置的用于管理内存的优先级列表的示例,在表1中,“oom_adj”值越低,代表该应用程序的优先级越高。以表1中,仅前台程序、用户可见的程序、后台服务和被隐藏的程序四种类型涉及网络连接,需分配网络带宽为例,前台程序具有最高的优先级,用户可见的程序的优先级仅低于前台程序、后台服务的优先级低于用户可见的程序且高于被隐藏的程序,被隐藏的程序的优先级最低。
表1
类别名称 |
oom_adj |
解释 |
FOREGROUD_APP |
0 |
前台程序 |
VISIBLE_APP |
1 |
用户可见的程序 |
SECONDARY_SERVER |
2 |
后台服务 |
HOME_APP |
4 |
主界面 |
HIDDEN_APP |
7 |
被隐藏的程序 |
CONTENT_PROVIDER |
14 |
内容提供者 |
EMPTY_APP |
15 |
空程序,既不提供服务,也不提供内容 |
根据本实施例的网络带宽分配方法,由于根据应用程序的运行状态,动态确定应用程序的优先级,能够保障前台运行的应用程序运行流畅,符合常规状态下的用户需求。而且,通过采用安卓***中设置的用于管理内存的优先级列表,使得当执行本发明实施例的终端为采用安卓***的智能终端时,无需额外设置用于分配网络带宽的优先级列表,有效节约了终端的***资源。
进一步地,在上述实施例的网络带宽分配方法中,所述根据预设的优先级列表中存储的应用程序类别与优先级的映射关系,确定所述应用程序的优先级,之后还包括:
若所述优先级列表中存在所述终端正在运行的且占用网络资源的应用程序未对应的优先级,则对所述终端正在运行的、优先级低于所述未对应的优先级的应用程序,顺次提升优先级,以根据所述应用程序的提升后的优先级,分配网络带宽
具体地,例如:终端当前未运行有前台程序,仅运行有用户可见的程序、后台服务和被隐藏的程序,则在根据表1所示的应用类型与优先级的映射关系、确定用户可见的程序、后台服务和被隐藏的程序对应的优先级后,对其顺次进行优先级提升,即:将用户可见的程序对应的优先级提升为前台程序对应的优先级,将后台服务对应的优先级提升为被隐藏的程序对应的优先级。并且,在后续根据优先级进行网络带宽分配时,根据提升后的优先级为各应用程序分配网络带宽。
根据上述实施例的网络带宽分配方法,通过执行上述优先级提升,使得当终端未运行优先级较高的应用程序时,能够将网络带宽充分分配给终端所运行的较低优先级的应用程序,充分利用网络带宽,避免因为优先级较高的应用程序保留网络带宽而造成网络带宽浪费。
在上述实施例的基础上,本实施例的网络带宽分配方法中,对根据网络带宽分配策略和当前可用的网络带宽,按照所述应用程序的优先级,分配网络带宽的过程进行扩展说明。
图2为本发明另一个实施例的网络带宽分配方法的流程示意图,如图2所示,该方法包括以下流程:
201,获取终端正在运行的且占用网络资源的应用程序的优先级;
202,获取所述终端当前可用的网络带宽;
203,根据网络带宽分配策略,确定所述各应用程序的优先级对应的网络带宽分配比例;
具体地,网络带宽分配策略例如是:为具有不同优先级的应用程序分配不同比例的网络带宽(该网络带宽分配策略例如称为第一网络带宽分配策略)。更为具体地,例如:为前台程序分配80%的当前可用的网络带宽、为用户可见的程序分配10%的当前可用的网络带宽、为后台服务分配7%的当前可用的网络带宽、为隐藏的程序分配3%的当前可用的网络带宽。
204,根据所述网络带宽分配比例,对所述当前可用的网络带宽进行划分,确定与所述应用程序的优先级对应的网络带宽分配值;
例如:终端当前可用的网络带宽为200KB/S,则按照上述第一网络带宽分配策略,确定出:对应前台程序的网络带宽分配值为160KB/S,对应用户可见的程序的网络带宽分配值为20KB/S,对应后台服务的网络带宽分配值为14KB/S,对应隐藏的程序的网络带宽分配值为6KB/S。
205,根据所述网络带宽分配值,为具有对应的优先级的应用程序分配网络带宽。
具体地,若终端所运行的对应各优先级的应用程序的数量为一个,则将该优先级对应的网络带宽分配值全部分配给该应用程序;若终端所运行的对应各优先级的应用程序的数量为多个,例如终端在后台同时运行QQ和MSN,则终端可以将对应后台服务的14KB/S的网络带宽,平均分配给QQ和MSN,也可以令QQ和MSN共享14KB/S的网络带宽,并由QQ和MSN两者抢占该共享的网络带宽。
进一步地,结合本实施例中的第一网络带宽分配策略,对上述实施例二中的根据提升后的优先级为各应用程序分配网络带宽,进行举例说明。
例如:终端当前未运行有前台程序,仅运行有用户可见的程序、后台服务和被隐藏的程序,则根据第一网络带宽分配策略执行网络带宽分配时,为终端当前运行的用户可见的程序分配160KB/S的网络带宽,为后台服务分配20KB/S的网络带宽,并为隐藏的程序分配14KB/S的网络带宽。
可以看出,在该示例中,通过对优先级进行顺次提升,并根据提升后的优先级为各应用程序分配网络带宽,避免了大量网络带宽的浪费,并使得优先级较低的用户可见的程序能够获得大量网络带宽资源,从而正常运行。
在上述实施例的基础上,本实施例的网络带宽分配方法中,提供基于另一种网络带宽分配策略,进行网络带宽分配的扩展说明。
图3为本发明又一个实施例的网络带宽分配方法的流程示意图,如图3所示,该方法包括以下流程:
301,获取终端正在运行的且占用网络资源的应用程序的优先级;
302,获取所述终端当前可用的网络带宽;
303,根据网络带宽分配策略(例如称为第二网络带宽分配策略),按照优先级由高至低的顺序,为应用程序分配网络带宽,并仅当为具有较高优先级的应用程序所分配的网络带宽,满足对应的预设期望带宽时,为具有较低优先级的应用程序分配剩余的网络带宽。
具体地,第二网络带宽分配策略例如包括各优先级对应的期望带宽值。终端首先将当前可用的网络带宽与最高优先级对应的期望带宽值进行比较,若当前可用的网络带宽小于等于最高优先级对应的期望带宽值,则将当前可用的网络带宽全部分配给优先级最高的应用程序;若当前可用的网络带宽大于最高优先级对应的期望带宽值,则根据最高优先级对应的期望带宽值为优先级最高的应用程序分配网络带宽;按照类似的方式,将剩余的可用网络带宽分配给其余优先级的应用程序,其中:剩余的可用网络带宽=当前可用的网络带宽-已分配的可用网络带宽(即最高优先级对应的期望带宽值)。
例如:前台程序对应的期望带宽值为100KB/S,用户可见的程序对应的期望带宽值为150KB/S,后台服务和被隐藏的程序对应的期望带宽值均为120KB/S,终端检测到的当前可用的网络带宽为200KB/S。则终端为前台程序分配100KB/S的网络带宽,并为用户可见的程序分配100KB/S的网络带宽,未向后台服务和被隐藏的程序分配网络带宽。
根据本实施例的网络带宽分配方法,由于在终端的当前可用的网络带宽符合优先级较高的应用程序对应的期望带宽值时,根据优先级较高的应用程序对应的期望带宽值分配网络带宽,充分保障优先级较高的应用程序的运行流畅度,提高用户体验。
进一步地,结合本实施例中的第二网络带宽分配策略,对上述实施例二中的根据提升后的优先级为各应用程序分配网络带宽,进行举例说明。
例如:终端当前未运行有前台程序,仅运行有用户可见的程序、后台服务和被隐藏的程序,则根据第二网络带宽分配策略执行网络带宽分配时,为终端当前运行的用户可见的程序分配150KB/S的网络带宽,并为后台服务分配50KB/S的网络带宽。
可以看出,在该示例中,通过对优先级进行顺次提升,并根据提升后的优先级为各应用程序分配网络带宽,避免了大量网络带宽的浪费,并使得优先级较低的用户可见的程序能够流畅运行。
图4为本发明一个实施例的终端的结构示意图。如图4所示,该终端包括优先级获取模块41、网络带宽获取模块42和网络带宽分配模块43,其中:
优先级获取模块41,用于获取终端正在运行的且占用网络资源的应用程序的优先级,并提供给所述网络带宽分配模块43;
网络带宽获取模块42,用于获取所述终端当前可用的网络带宽,并提供给所述网络带宽分配模块43;
网络带宽分配模块43,用于根据所述终端的网络带宽分配策略和所述应用程序的优先级,将所述当前可用的网络带宽分配给所述应用程序。
本实施例的终端执行网络带宽分配的具体流程与上述任一实施例的网络带宽分配方法相同,故此处不再赘述。
根据本实施例的终端,由于根据需分配网络带宽的各应用程序的优先级,终端当前可用的网络带宽,以及预设的网络带宽分配策略,为应用程序分配网络带宽,实现了根据用户需求为终端运行的应用程序合理分配网络带宽,使得在网络环境较差的情况,也可以根据用户的需求,保障优先级较高的应用程序正常运行,避免了由于各应用程序自由抢占带宽而导致的应用程序均无法正常运行,或无法根据用户需求运行相应的应用程序的问题。
进一步地,在上述实施例的终端中,所述优先级获取模块具体用于:根据所述终端正在运行的且占用网络资源的应用程序的运行状态,对所述应用程序进行分类;根据预设的优先级列表中存储的应用程序类别与优先级的映射关系,确定所述应用程序的优先级。
根据本实施例的终端,由于根据应用程序的运行状态,动态确定应用程序的优先级,能够保障前台运行的应用程序运行流畅,符合常规状态下的用户需求。而且,通过采用安卓***中设置的用于管理内存的优先级列表,使得当执行本发明实施例的终端为采用安卓***的智能终端时,无需额外设置用于分配网络带宽的优先级列表,有效节约了终端的***资源。
进一步地,在上述实施例的终端中,所述优先级获取模块还用于:若所述优先级列表中存在所述终端正在运行的且占用网络资源的应用程序未对应的优先级,则对所述终端正在运行的、优先级低于所述未对应的优先级的应用程序,顺次提升优先级,以根据所述应用程序的提升后的优先级,分配网络带宽。
根据本实施例的终端,通过执行上述优先级提升,使得当终端未运行优先级较高的应用程序时,能够将网络带宽充分分配给终端所运行的较低优先级的应用程序,充分利用网络带宽,避免因为优先级较高的应用程序保留网络带宽而造成网络带宽浪费。
进一步地,在上述实施例的终端中,所述网络带宽分配策略具体为:为不同优先级的应用程序,分配不同比例的网络带宽;相应地,所述网络带宽分配模块具体用于:根据网络带宽分配策略,确定所述各应用程序的优先级对应的网络带宽分配比例;根据所述网络带宽分配比例,对所述当前可用的网络带宽进行划分,确定与所述应用程序的优先级对应的网络带宽分配值;以及根据所述网络带宽分配值,为具有对应的优先级的应用程序分配网络带宽。
进一步地,在上述实施例的终端中,所述网络带宽分配策略具体为:按照优先级由高至低的顺序,为应用程序分配网络带宽,并仅当为具有较高优先级的应用程序所分配的网络带宽,满足对应的预设期望带宽时,为具有较低优先级的应用程序分配剩余的网络带宽。
根据本实施例的终端,由于在终端的当前可用的网络带宽符合优先级较高的应用程序对应的期望带宽值时,根据优先级较高的应用程序对应的期望带宽值分配网络带宽,充分保障优先级较高的应用程序的运行流畅度,提高用户体验。
图5为本发明另一个实施例的终端的结构示意图。如图5所示,该终端包括处理器51和存储器52,其中:
存储器52用于存储终端的应用程序与优先级的映射关系;
处理器51用于获取终端正在运行的且占用网络资源的应用程序,并查询存储器52,以获取终端正在运行的且占用网络资源的应用程序的优先级;获取所述终端当前可用的网络带宽;并根据所述终端的网络带宽分配策略和所述应用程序的优先级,将所述当前可用的网络带宽分配给所述应用程序。
其中,处理器51例如采用任意的中央处理器(CentralProcessingUnit,CPU)来硬件实现;存储器52例如采用任意的只读存储器(Read-OnlyMemory,ROM)或随机存取存储器(RandomAccessMemory,RAM)等来硬件实现。
本实施例的终端执行网络带宽分配的具体流程与上述任一实施例的网络带宽分配方法相同,故此处不再赘述。
根据本实施例的终端,由于根据需分配网络带宽的各应用程序的优先级,终端当前可用的网络带宽,以及预设的网络带宽分配策略,为应用程序分配网络带宽,实现了根据用户需求为终端运行的应用程序合理分配网络带宽,使得在网络环境较差的情况,也可以根据用户的需求,保障优先级较高的应用程序正常运行,避免了由于各应用程序自由抢占带宽而导致的应用程序均无法正常运行,或无法根据用户需求运行相应的应用程序的问题。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。