CN116744329A - 一种网络加速方法和电子设备 - Google Patents
一种网络加速方法和电子设备 Download PDFInfo
- Publication number
- CN116744329A CN116744329A CN202211295450.9A CN202211295450A CN116744329A CN 116744329 A CN116744329 A CN 116744329A CN 202211295450 A CN202211295450 A CN 202211295450A CN 116744329 A CN116744329 A CN 116744329A
- Authority
- CN
- China
- Prior art keywords
- application
- network
- acceleration
- background
- module
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 230000001133 acceleration Effects 0.000 title claims abstract description 164
- 238000000034 method Methods 0.000 title claims abstract description 93
- 238000005259 measurement Methods 0.000 claims abstract description 54
- 230000005540 biological transmission Effects 0.000 claims abstract description 25
- 238000004891 communication Methods 0.000 claims description 58
- 238000012545 processing Methods 0.000 claims description 31
- 238000004590 computer program Methods 0.000 claims description 7
- 239000000758 substrate Substances 0.000 claims 1
- 238000007726 management method Methods 0.000 description 55
- 230000006870 function Effects 0.000 description 29
- 230000008569 process Effects 0.000 description 23
- 230000001413 cellular effect Effects 0.000 description 22
- 238000010295 mobile communication Methods 0.000 description 14
- 238000010586 diagram Methods 0.000 description 10
- 230000005236 sound signal Effects 0.000 description 10
- 238000001914 filtration Methods 0.000 description 9
- 230000008447 perception Effects 0.000 description 9
- 238000001303 quality assessment method Methods 0.000 description 7
- 238000004458 analytical method Methods 0.000 description 6
- 238000012544 monitoring process Methods 0.000 description 6
- 230000004044 response Effects 0.000 description 6
- 238000013461 design Methods 0.000 description 5
- 238000001514 detection method Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 5
- 230000008859 change Effects 0.000 description 4
- 230000007774 longterm Effects 0.000 description 4
- 238000013441 quality evaluation Methods 0.000 description 4
- 229920001621 AMOLED Polymers 0.000 description 3
- 230000000903 blocking effect Effects 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 238000011156 evaluation Methods 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 238000013528 artificial neural network Methods 0.000 description 2
- 230000003416 augmentation Effects 0.000 description 2
- 239000011230 binding agent Substances 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 230000006855 networking Effects 0.000 description 2
- 239000002096 quantum dot Substances 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 206010063385 Intellectualisation Diseases 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000004069 differentiation Effects 0.000 description 1
- 230000003203 everyday effect Effects 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 230000001537 neural effect Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000005855 radiation Effects 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 239000000523 sample Substances 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W24/00—Supervisory, monitoring or testing arrangements
- H04W24/02—Arrangements for optimising operational condition
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0803—Configuration setting
- H04L41/0823—Configuration setting characterised by the purposes of a change of settings, e.g. optimising configuration for enhancing reliability
- H04L41/083—Configuration setting characterised by the purposes of a change of settings, e.g. optimising configuration for enhancing reliability for increasing network speed
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W24/00—Supervisory, monitoring or testing arrangements
- H04W24/08—Testing, supervising or monitoring using real traffic
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W36/00—Hand-off or reselection arrangements
- H04W36/0005—Control or signalling for completing the hand-off
- H04W36/0083—Determination of parameters used for hand-off, e.g. generation or modification of neighbour cell lists
- H04W36/0085—Hand-off measurements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W36/00—Hand-off or reselection arrangements
- H04W36/14—Reselecting a network or an air interface
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W36/00—Hand-off or reselection arrangements
- H04W36/16—Performing reselection for specific purposes
- H04W36/165—Performing reselection for specific purposes for reducing network power consumption
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W36/00—Hand-off or reselection arrangements
- H04W36/24—Reselection being triggered by specific parameters
- H04W36/30—Reselection being triggered by specific parameters by measured or perceived connection quality data
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
本申请提供一种网络加速方法和电子设备,涉及终端领域。第一应用启动后,周期性采集用于传输第一应用数据流的第一网络通道的QoE测量结果。在第一网络通道的QoE测量结果满足条件的情况下,如果第一应用进入后台运行,对第一应用的数据流进行后台加速,包括取消对第一应用的数据流使用网络的带宽和速率的限制,以及提高第一应用的数据流的发送优先级中至少一项。使得在网络拥塞、波动等情况下,后台应用依然能有流畅的上网体验,更好地提升用户的上网体验。
Description
技术领域
本申请涉及终端领域,尤其涉及一种网络加速方法和电子设备。
背景技术
随着电子设备的智能化程度越来越高,电子设备中安装运行的应用软件也越来越多。很多应用软件在运行过程中需要通过网络与相应的服务器通信,以实现该应用软件提供的各种功能。用户上网过程中经常会打开多个应用软件并随时来回切换。目前,考虑到功耗等问题,通常会限制后台应用的带宽和速率,来保证前台应用的体验。即使有针对应用的加速方案,也是针对前台应用的。这就会导致很多日常使用的,比如社交通话、音乐等后台场景,可能出现卡顿,导致用户体验较差。
发明内容
本申请实施例提供一种网络加速方法和电子设备,对指定的后台应用或后台应用指定业务场景进行网络加速,使得在网络拥塞、波动等情况下,指定的后台应用或后台应用指定业务场景依然能有流畅的上网体验,更好地提升用户的上网体验。
为达到上述目的,本申请的实施例采用如下技术方案:
第一方面,提供了一种网络加速方法,该方法包括:第一应用在电子设备上启动,第一应用使用电子设备建立的第一网络通道传输数据流;响应于第一应用在电子设备上启动,电子设备周期性采集第一网络通道的体验质量QoE测量结果;第一应用进入后台运行;如果第一网络通道的QoE测量结果满足条件,对第一应用的数据流进行后台加速;其中,对第一应用的数据流进行后台加速包括取消对第一应用的数据流使用网络的带宽和速率的限制,以及提高第一应用的数据流的发送优先级中至少一项。
在该方法中,对于后台应用也可以执行网络加速策略。这样,对于音乐播放类、音频通话类以及视频通话类等,即使在后台运行也可以被用户感知的应用或应用的业务场景,可以取消对其使用网络资源的限制,提高其在后台运行时通过网络通道发送数据流的优先级,降低其在后台运行时产生卡顿的几率,提高用户使用体验。
作为本申请第一方面的一种实现方式,第一应用进入后台运行之前,第一应用进入第一业务场景;上述对第一应用的数据流进行后台加速,包括:对第一应用的第一业务场景的数据流进行后台加速。
作为本申请第一方面的一种实现方式,该方法还包括:第一应用退出第一业务场景;电子设备停止对第一应用的第一业务场景的数据流进行后台加速。
在该方法中,可以对应用的指定业务场景执行后台加速。也就是说,可以对应用的一些业务场景进行后台加速,对应用的另一些业务场景不进行后台加速。
作为本申请第一方面的一种实现方式,第一应用进入后台运行包括:第二应用进入前台运行,使得第一应用进入后台运行。
作为本申请第一方面的一种实现方式,在对第一应用的数据流进行后台加速之前,先确定第一应用的处理优先级大于第二应用的处理优先级。也就是说,确定后台应用的处理优先级大于前台应用的处理优先级,才会对后台应用进行网络加速。这样,可以避免后台应用的网络加速影响前台应用的使用体验。比如,前台应用是实时对战类游戏,如果对后台应用执行网络加速,优先发送后台应用的数据流,可能会导致实时对战类游戏产生卡顿,影响前台应用的使用体验。就可以将实时对战类游戏应用的处理优先级设置的较高,避免受后台应用网络加速的影响。
作为本申请第一方面的一种实现方式,第一应用进入后台运行,包括:第一应用在电子设备上运行,且第一应用的窗口不进行显示或第一应用的窗口被电子设备上运行的其他应用的窗口遮挡。
作为本申请第一方面的一种实现方式,当第一网络通道是蜂窝网络时,提高第一应用的数据流的发送优先级包括:修改第一网络通道中分组数据汇聚协议PDCP中第一应用的数据流对应的套接字上发送的数据包的发送优先级的值,使得提高PDCP中第一应用的数据流对应的套接字上发送的数据包的发送优先级。这样就可以保证第一应用的数据流被优先发送,减少第一应用运行时的卡顿现象。
作为本申请第一方面的一种实现方式,第一网络通道的QoE测量结果满足条件,包括:第一网络通道的QoE测量结果为优,或者,第一网络通道的QoE测量结果不是差。
作为本申请第一方面的一种实现方式,电子设备周期性采集第一网络通道的体验质量QoE测量结果,包括:电子设备周期性采集第一应用的数据流的通信参数和统计信息,根据第一应用的数据流的通信参数和统计信息获取第一网络通道的体验质量QoE测量结果;其中,通信参数包括协议类型、源网际协议IP地址和端口/目的IP地址和端口、报文特征中的至少一项,统计信息包括往返时延RTT、丢包率、收发字节数、速率中的至少一项。
在一种实现方式中,对于不同场景,在根据第一应用的数据流的通信参数和统计信息获取第一网络通道的QoE测量结果时,可以设置不同的策略。
作为本申请第一方面的一种实现方式,如果第一网络通道的QoE测量结果不满足条件,将第一应用的数据流切换至第二网络通道;第二网络通道的网络质量比第一网络通道优,其中,网络质量通过网络质量参数确定,网络质量参数包括以下至少一项:带宽、时延和空口速率。
如果应用当前使用的网络通道的QoE变差,就可以将应用的数据流切换至网络质量更好的网络通道上去。即使应用在后台运行,也可以进行切换。这样就可以减少卡顿,提高应用的使用体验。
第二方面,提供了一种电子设备,该电子设备具有实现上述第一方面所述的方法的功能。该功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。该硬件或软件包括一个或多个与上述功能相对应的模块。
第三方面,提供了一种电子设备,包括:处理器和存储器;该存储器用于存储计算机执行指令,当该电子设备运行时,该处理器执行该存储器存储的该计算机执行指令,以使该电子设备执行如上述第一方面中任一项所述的方法。
第四方面,提供了一种电子设备,包括:处理器;所述处理器用于与存储器耦合,并读取存储器中的指令之后,根据所述指令执行如上述第一方面中任一项所述的方法。
第五方面,提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机可以执行上述第一方面中任一项所述的方法。
第六方面,提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机可以执行上述第一方面中任一项所述的方法。
第七方面,提供了一种装置(例如,该装置可以是芯片系统),该装置包括处理器,用于支持电子设备实现上述第一方面中所涉及的功能。在一种可能的设计中,该装置还包括存储器,该存储器,用于保存电子设备必要的程序指令和数据。该装置是芯片系统时,可以由芯片构成,也可以包含芯片和其他分立器件。
其中,第二方面至第七方面中任一种设计方式所带来的技术效果可参见第一方面中不同设计方式所带来的技术效果,此处不再赘述。
附图说明
图1为本申请实施例提供的一种电子设备的硬件结构示意图;
图2为本申请实施例提供的网络加速方法所适用的一种场景示意图;
图3为本申请实施例提供的网络加速方法所适用的另一场景示意图;
图4为本申请实施例提供的网络加速方法所适用的又一场景示意图;
图5为本申请实施例提供的网络加速方法所适用的又一场景示意图;
图6为本申请实施例提供的网络加速方法所适用的又一场景示意图;
图7为本申请实施例提供的网络加速方法的流程示意图;
图8为本申请实施例提供的一种电子设备的软件架构示意图;
图9为本申请实施例提供的网络加速方法的流程示意图;
图10为本申请实施例提供的一种报文监测方法的示意图;
图11为本申请实施例提供的一种芯片系统结构组成示意图。
具体实施方式
在本申请实施例的描述中,以下实施例中所使用的术语只是为了描述特定实施例的目的,而并非旨在作为对本申请的限制。如在本申请的说明书和所附权利要求书中所使用的那样,单数表达形式“一种”、“所述”、“上述”、“该”和“这一”旨在也包括例如“一个或多个”这种表达形式,除非其上下文中明确地有相反指示。还应当理解,在本申请以下各实施例中,“至少一个”、“一个或多个”是指一个或两个以上(包含两个)。术语“和/或”,用于描述关联对象的关联关系,表示可以存在三种关系;例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B的情况,其中A、B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。
在本说明书中描述的参考“一个实施例”或“一些实施例”等意味着在本申请的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特点。由此,在本说明书中的不同之处出现的语句“在一个实施例中”、“在一些实施例中”、“在其他一些实施例中”、“在另外一些实施例中”等不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除非是以其他方式另外特别强调。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。术语“连接”包括直接连接和间接连接,除非另外说明。“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。
在本申请实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
本申请实施例提供的网络加速方法可以应用于安装了各种应用的电子设备。上述电子设备可以包括手机、平板电脑、笔记本电脑、个人电脑(personal computer,PC)、超级移动个人计算机(ultra-mobile personal computer,UMPC)、手持计算机、上网本、智能家居设备(比如,智能电视、智慧屏、大屏、智能音箱、智能空调等)、个人数字助理(personaldigital assistant,PDA)、可穿戴设备(比如,智能手表、智能手环等)、车载设备、虚拟现实设备等,本申请实施例对此不做任何限制。
图1示出了一种电子设备的结构示意图。电子设备100可以包括处理器110,外部存储器接口120,内部存储器121,通用串行总线(universal serial bus,USB)接口130,充电管理模块140,电源管理模块141,电池142,天线1,天线2,移动通信模块150,无线通信模块160,音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,传感器模块180,按键190,马达191,摄像头192,显示屏193,以及用户标识模块(subscriberidentification module,SIM)卡接口194等。其中,传感器模块180可以包括压力传感器,触摸传感器等。
可以理解的是,本申请实施例示意的结构并不构成对电子设备100的具体限定。在本申请另一些实施例中,电子设备100可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
处理器110可以包括一个或多个处理单元,例如:处理器110可以包括应用处理器(application processor,AP),调制解调处理器,图形处理器(graphics processingunit,GPU),图像信号处理器(image signal processor,ISP),控制器,存储器,视频编解码器,数字信号处理器(digital signal processor,DSP),基带处理器,和/或神经网络处理器(neural-network processing unit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。例如,处理器110用于执行本申请实施例中的网络加速方法。
其中,控制器可以是电子设备100的神经中枢和指挥中心。控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。
处理器110中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器110中的存储器为高速缓冲存储器。该存储器可以保存处理器110刚用过或循环使用的指令或数据。如果处理器110需要再次使用该指令或数据,可从存储器中直接调用。避免了重复存取,减少了处理器110的等待时间,因而提高了系统的效率。
USB接口130是符合USB标准规范的接口,具体可以是Mini USB接口,Micro USB接口,USB Type C接口等。USB接口130可以用于连接充电器为电子设备100充电,也可以用于电子设备100与外围设备之间传输数据。
外部存储器接口120可以用于连接外部存储卡,例如Micro SD卡,实现扩展电子设备100的存储能力。外部存储卡通过外部存储器接口120与处理器110通信,实现数据存储功能。例如将音乐,视频等文件保存在外部存储卡中。
内部存储器121可以用于存储计算机可执行程序代码,可执行程序代码包括指令。处理器110通过运行存储在内部存储器121的指令,从而执行电子设备100的各种功能应用以及数据处理。内部存储器121可以包括存储程序区和存储数据区。其中,存储程序区可存储操作系统,至少一个功能所需的应用程序(比如声音播放功能,图像播放功能等)。
此外,内部存储器121可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件,闪存器件,通用闪存存储器(universal flash storage,UFS)等。
充电管理模块140用于从充电器接收充电输入。其中,充电器可以是无线充电器,也可以是有线充电器。在一些有线充电的实施例中,充电管理模块140可以通过USB接口130接收有线充电器的充电输入。
电源管理模块141用于连接电池142,充电管理模块140与处理器110。电源管理模块141接收电池142和/或充电管理模块140的输入,为处理器110,内部存储器121,外部存储器,显示屏193,摄像头192,和无线通信模块160等供电。
在其他一些实施例中,电源管理模块141也可以设置于处理器110中。在另一些实施例中,电源管理模块141和充电管理模块140也可以设置于同一个器件中。
电子设备100的无线通信功能可以通过天线1,天线2,移动通信模块150,无线通信模块160,调制解调处理器以及基带处理器等实现。
天线1和天线2用于发射和接收电磁波信号。电子设备100中的每个天线可用于覆盖单个或多个通信频带。不同的天线还可以复用,以提高天线的利用率。例如:可以将天线1复用为无线局域网的分集天线。在另外一些实施例中,天线可以和调谐开关结合使用。
移动通信模块150可以提供应用在电子设备100上的包括2G/3G/4G/5G等无线通信的解决方案。移动通信模块150可以包括至少一个滤波器,开关,功率放大器,低噪声放大器(low noise amplifier,LNA)等。移动通信模块150可以由天线1接收电磁波,并对接收的电磁波进行滤波,放大等处理,传送至调制解调处理器进行解调。移动通信模块150还可以对经调制解调处理器调制后的信号放大,经天线1转为电磁波辐射出去。
调制解调处理器可以包括调制器和解调器。其中,调制器用于将待发送的低频基带信号调制成中高频信号。解调器用于将接收的电磁波信号解调为低频基带信号。随后解调器将解调得到的低频基带信号传送至基带处理器处理。低频基带信号经基带处理器处理后,被传递给应用处理器。应用处理器通过音频设备(不限于扬声器170A,受话器170B等)输出声音信号,或通过显示屏193显示图像或视频。在一些实施例中,调制解调处理器可以是独立的器件。在另一些实施例中,调制解调处理器可以独立于处理器110,与移动通信模块150或其他功能模块设置在同一个器件中。
无线通信模块160可以提供应用在电子设备100上的包括无线局域网(wirelesslocal area networks,WLAN)(如无线保真(wireless fidelity,Wi-Fi)网络),蓝牙(bluetooth,BT),全球导航卫星系统(global navigation satellite system,GNSS),调频(frequency modulation,FM),近距离无线通信技术(near field communication,NFC),红外(infrared,IR)技术等无线通信的解决方案。无线通信模块160可以是集成至少一个通信处理模块的一个或多个器件。无线通信模块160经由天线2接收电磁波,将电磁波信号调频以及滤波处理,将处理后的信号发送到处理器110。无线通信模块160还可以从处理器110接收待发送的信号,对其进行调频,放大,经天线2转为电磁波辐射出去。
在一些实施例中,电子设备100的天线1和移动通信模块150耦合,天线2和无线通信模块160耦合,使得电子设备100可以通过无线通信技术与网络以及其他设备通信。所述无线通信技术可以包括全球移动通讯系统(global system for mobile communications,GSM),通用分组无线服务(general packet radio service,GPRS),码分多址接入(codedivision multiple access,CDMA),宽带码分多址(wideband code division multipleaccess,WCDMA),时分码分多址(time-division code division multiple access,TD-SCDMA),长期演进(long term evolution,LTE),BT,GNSS,WLAN,NFC,FM,和/或IR技术等。所述GNSS可以包括全球卫星定位系统(global positioning system,GPS),全球导航卫星系统(global navigation satellite system,GLONASS),北斗卫星导航系统(beidounavigation satellite system,BDS),准天顶卫星系统(quasi-zenith satellitesystem,QZSS)和/或星基增强系统(satellite based augmentation systems,SBAS)。
电子设备100可以通过音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,以及应用处理器等实现音频功能。例如音乐播放,录音等。
音频模块170用于将数字音频信号转换成模拟音频信号输出,也用于将模拟音频输入转换为数字音频信号。音频模块170还可以用于对音频信号编码和解码。在一些实施例中,音频模块170可以设置于处理器110中,或将音频模块170的部分功能模块设置于处理器110中。
扬声器170A,也称“喇叭”,用于将音频电信号转换为声音信号。电子设备100可以通过扬声器170A收听音乐,或收听免提通话。
受话器170B,也称“听筒”,用于将音频电信号转换成声音信号。当电子设备100接听电话或语音信息时,可以通过将受话器170B靠近人耳接听语音。
麦克风170C,也称“话筒”,“传声器”,用于将声音信号转换为电信号。当拨打电话或发送语音信息时,用户可以通过人嘴靠近麦克风170C发声,将声音信号输入到麦克风170C。电子设备100可以设置至少一个麦克风170C。在另一些实施例中,电子设备100可以设置两个麦克风170C,除了监听语音信息,还可以实现降噪功能。在另一些实施例中,电子设备100还可以设置三个,四个或更多麦克风170C,实现采集声音信号,降噪,还可以识别声音来源,实现定向录音功能等。
耳机接口170D用于连接有线耳机。耳机接口170D可以是USB接口130,也可以是3.5mm的开放移动电子设备平台(open mobile terminal platform,OMTP)标准接口,美国蜂窝电信工业协会(cellular telecommunications industry association of the USA,CTIA)标准接口。
按键190包括开机键,音量键等。按键190可以是机械按键。也可以是触摸式按键。电子设备100可以接收按键输入,产生与电子设备100的用户设置以及功能控制有关的键信号输入。
马达191可以产生振动提示。马达191可以用于来电振动提示,也可以用于触摸振动反馈。
电子设备100通过GPU,显示屏193,以及应用处理器等实现显示功能。GPU为图像处理的微处理器,连接显示屏193和应用处理器。GPU用于执行数学和几何计算,用于图形渲染。处理器110可包括一个或多个GPU,其执行程序指令以生成或改变显示信息。
显示屏193用于显示图像,视频等。显示屏193包括显示面板。显示面板可以采用液晶显示屏(liquid crystal display,LCD),有机发光二极管(organic light-emittingdiode,OLED),有源矩阵有机发光二极体或主动矩阵有机发光二极体(active-matrixorganic light emitting diode的,AMOLED),柔性发光二极管(flex light-emittingdiode,FLED),Miniled,MicroLed,Micro-oLed,量子点发光二极管(quantum dot lightemitting diodes,QLED)等。在一些实施例中,电子设备100可以包括1个或N个显示屏193,N为大于1的正整数。
摄像头192用于捕获静态图像或视频。在一些实施例中,电子设备100可以包括1个或N个摄像头192,N为大于1的正整数。
SIM卡接口194用于连接SIM卡。SIM卡可以通过插入SIM卡接口194,或从SIM卡接口194拔出,实现和电子设备100的接触和分离。电子设备100可以支持1个或N个SIM卡接口,N为大于1的正整数。
本申请实施例并未特别限定一种网络加速方法的执行主体的具体结构,只要可以通过运行记录有本申请实施例的一种网络加速方法的代码,以根据本申请实施例提供的一种网络加速方法进行处理即可。例如,本申请实施例提供的网络加速方法的执行主体可以是电子设备中能够调用程序并执行程序的功能模块,或者为应用于电子设备中的处理装置,例如,芯片。
在本申请实施例中,上述电子设备是可以运行操作系统,安装应用程序的电子设备。可选地,电子设备运行的操作系统可以是系统,/>系统,/>系统等。
如图1所示的电子设备中可以安装运行多个应用,例如:社交通信应用、游戏应用、音视频应用和新闻应用等。这些应用可以通过所在的电子设备与其他电子设备(例如,应用对应的服务器)建立网络连接。
作为示例,应用A可以通过所在的电子设备中的无线网卡(也可记为Wi-Fi网卡)与应用A对应的服务器建立网络连接;也就是说应用A通过无线通信方式与服务器通信。应用A还可以通过所在的电子设备中的数据业务网卡与应用A对应的服务器建立网络连接;也就是说,应用A通过移动通信方式与服务器通信。其中,无线网卡为支持无线局域网(WirelessLocal Area Network,WLAN)上网的装置;数据业务网卡为支持分组无线服务(Generalpacket radio service,GPRS)、增强型数据速率GSM演进技术(Enhanced Data Rate forGSM Evolution,EDGE)、时分同步码分多址(Time Division-Synchronous Code DivisionMultiple Access,TD-SCDMA)、高速下行链路分组接入(High Speed Downlink PacketAccess,HSDPA)、宽带码分多址(Wideband Code Division Multiple Access,WCDMA)、长期演进(Long Term Evolution,LTE)、第五代移动通信技术(5th Generation MobileCommunication Technology,5G)等移动通信技术上网的装置。
本申请实施例中将两个电子设备之间传输的数据序列记为数据流。数据流也可以称为业务流。在实际应用中,基于数据流的业务场景,数据流可以为视频流、音频流、下载流、会话流等。两个电子设备之间交互数据流的通道记为网络通道。为了便于描述,可以将一个电子设备通过无线网卡与其他电子设备之间建立的网络通道记为Wi-Fi网络;将一个电子设备通过数据业务网卡与其他电子设备之间建立的网络通道记为蜂窝网络。
应用可以通过Wi-Fi网络或蜂窝网络与服务器传输数据流。
在一种示例中,应用通过蜂窝网络与服务器传输数据流。参见图2的(a),用户使用手机中的应用1(游戏类应用)玩游戏,手机中的应用1通过手机中的数据业务网卡与应用1的服务器1建立网络连接,应用1和服务器1之间产生的数据流1(例如,游戏对战时产生的数据流)通过手机上的数据业务网卡和基站之间的蜂窝网络传输。参见图2的(b),用户还使用手机中的应用2(聊天类应用)聊天,其中,手机中的应用2通过手机的数据业务网卡与应用2的服务器2建立网络连接,应用2和服务器2之间产生的数据流2(例如,聊天时产生的数据流)通过手机上的数据业务网卡和基站之间的蜂窝网络传输。
在另一种示例中,应用通过Wi-Fi网络与服务器传输数据流。参见图3的(a),用户使用手机中的应用1(游戏类应用)玩游戏,手机中的应用1通过手机中的无线网卡与应用1的服务器1建立网络连接,应用1和服务器1之间产生的数据流1(例如,游戏对战时产生的数据流)通过手机上的无线网卡和无线路由器之间的Wi-Fi网络传输。参见图3的(b),用户还使用手机中的应用2(聊天类应用)聊天,其中,手机中的应用2通过手机的无线网卡与应用2的服务器2建立网络连接,应用2和服务器2之间产生的数据流2(例如,聊天时产生的数据流)通过手机上的无线网卡和无线路由器之间的Wi-Fi网络传输。
在另一种示例中,当有多个应用与其对应的服务器传输数据流时,其中一些应用通过蜂窝网络与服务器传输数据流,另一些应用通过Wi-Fi网络与服务器传输数据流。参见图4,用户使用手机中的应用1(游戏类应用)玩游戏,手机中的应用1通过手机中的数据业务网卡与应用1的服务器1建立网络连接,应用1和服务器1之间产生的数据流1(例如,游戏对战时产生的数据流)通过手机上的数据业务网卡和基站之间的蜂窝网络传输。用户还使用手机中的应用2(聊天类应用)聊天,其中,手机中的应用2通过手机的无线网卡与应用2的服务器2建立网络连接,应用2和服务器2之间产生的数据流2(例如,聊天时产生的数据流)通过手机上的无线网卡和无线路由器之间的Wi-Fi网络传输。
在用户使用应用的过程中,如果应用数据流的传输速率较慢,就会出现卡顿现象。为了避免应用卡顿,电子设备的操作系统可以设置一些网络加速策略。例如,操作系统设置的网络加速策略可以是基于当前网络通道的质量进行评估,在应用当前使用的网络通道的质量较差的情况下,将应用或应用的部分数据流切换到质量更好的网络通道。一些三方应用也可以设置网络加速策略。例如,视频应用可以根据网络通道的质量调整视频分辨率以及缓存策略等。
示例性的,一种场景中,电子设备的操作系统设置了网络加速策略。例如,操作系统设置的网络加速策略可以基于对应用当前使用的网络通道的用户体验质量(quality ofexperience,QoE)的评估,在应用当前使用的网络通道的QoE较差的情况下,切换为使用其他网络通道。
QoE通常用来表示终端用户对移动网络提供的业务性能的主观感受。QoE可以通过接近量化的方法来表示终端用户对业务与网络的体验和感受,并反映当前业务和网络的质量与用户期望间的差距。从通信网络的角度来说,要想获得更好的QoE的最佳方案就是提供一个优良的端到端的服务质量QoS(quality of service)。广义的QoS为“决定用户满意程度的服务性能的综合效果”,包含多个层面较为广泛的内容。狭义QoS为底层分组数据传输的性能指标,如时延、抖动、带宽、误码等。QoS机制主要负责从网络的角度进行业务管理和提供业务的差异性,网络实体根据不同的质量需求来处理不同业务。但从终端用户的角度来体验QoS是一个更广、更主观的问题,即QoE所定义的范畴。其中,探测应用当前使用的网络通道的QoE以及评估QoE优劣的具体方式将在下述具体实施例中详细介绍。
在一种示例中,应用通过一个网络通道传输数据流时,如果探测到该网络通道的QoE较差,则自动切换至另一网络通道传输数据流。示例性的,如图5所示,手机上设置有无线网卡1,支持2.4GHz的收发;还设有无线网卡2,支持5.0GHz的收发。手机中的应用1和服务器1之间产生的数据流1(例如,游戏对战时产生的数据流)通过手机上的无线网卡2和无线路由器2之间的Wi-Fi网络传输。探测到无线网卡2和无线路由器2之间的Wi-Fi网络的QoE较差,则将应用1的数据流切换至通过手机上的无线网卡1和无线路由器1之间的Wi-Fi网络传输。
在又一种示例中,应用通过一个网络通道传输数据流时,如果探测到该网络通道的QoE较差,则自动将该应用的数据流切换到多条网络通道上并行传输,以便通过多条质量较优的网络通道进行上网。示例性的,参见图6,手机上设置有无线网卡1,支持2.4GHz的收发;还设有无线网卡2,支持5.0GHz的收发;还设有数据业务网卡。用户使用应用1进行下载时,产生下载流1a,用户使用应用1进行会话时,产生会话流1b。下载流1a和会话流1b均可以通过无线网卡1和2.4GHz的无线路由器之间的Wi-Fi网络传输。如果探测到应用1的数据流1a的QoE较差,则将数据流1a分配到多个网络通道上并行传输。如图6所示,数据流1a可能包括多个子数据流,可以将多个子数据流分为3组数据流:下载流1a-1,下载流1a-2和下载流1a-3。将3个数据流分别分发到3个网络通道上传输。
需要说明的是,图5和图6中的无线路由器可以为同时支持2.4GHz的收发和5.0GHz的收发的一个无线路由器,还可以是分别支持2.4GHz的收发和5.0GHz的收发的两个路由器。
可以看出,通过操作系统设置网络加速策略或者通过应用设置网络加速策略,可以在一定程度上避免应用卡顿,提高应用的使用体验。但是目前,网络加速策略都是针对前台应用的。对于后台应用,通常会限制其使用的带宽和速率,以降低功耗,且可以避免后台应用与前台应用抢夺资源,影响前台应用的传输速率。
然而,一些应用,比如社交通话、音乐、视频等,即使在后台运行,如果出现卡顿,也会导致用户体验较差。本申请实施例提供一种网络加速方法,操作系统和应用协同处理,在不影响前台应用体验的情况下,对后台应用进行网络加速,保证指定的应用在后台运行时的流畅性体验。
参考图7,本申请实施例提供的网络加速方法包括:
S201、响应于用户打开应用A的操作,应用A启动。
在本申请实施例中,应用A可以是电子设备中任意能够联网使用网络的应用程序。例如可以是视频通话应用、音乐播放应用等。响应于用户打开应用A的操作,应用A启动,电子设备可以显示应用A的相关界面。此时应用A是前台应用。前台应用,即在电子设备上运行,且显示其窗口,其窗口获取焦点,并且其窗口未被其他应用窗口遮挡的应用。相应的,后台应用,即在电子设备上运行,但是不显示其窗口,或者其窗口被其他应用窗口遮挡的应用。
可以理解的,应用A在前台运行,可以是应用A启动后在前台运行,也可以是应用A从后台切换到前台运行。
通常,操作系统会对应用的进程提供多种分组。例如,后台分组(THREAD_GROUP_BACKGROUND)、前台分组(THREAD_GROUP_FOREGROUND)等分组,其中前台分组的调度优先级高于后台分组。前台应用的进程在前台分组中,后台应用的进程在后台分组中。CPU在分配资源时,前台分组中的进程比后台分组中的进程的优先级更高。
示例性的,电子设备建立了网络通道(比如,蜂窝网络或Wi-Fi网络),应用A通过该网络通道传输数据流。当应用A是前台应用时,其进程属于前台分组,在网络通道上传输数据流时发送优先级高于后台分组中的进程。当应用A进入后台运行,其进程移入后台分组,在网络通道上传输数据流时发送优先级比前台分组中的进程低;操作系统可能会限制其使用的带宽和速率。
S202、如果应用A开启了网络加速策略,则周期性探测应用A使用的网络通道的QoE。
在本申请实施例中,电子设备中存储有应用配置库,该应用配置库可以由开发人员预先设置,也可以由用户在使用电子设备的过程中设置或添加。该应用配置库中存储有支持网络加速的应用的标识。
在一种示例中,应用配置库中存储了多个应用程序是否支持网络加速的信息,多个应用程序包括应用A。
如表1所示,示例性示出部分应用程序是否支持网络加速的信息。
表1
或者,应用配置库中可以仅存储支持网络加速的应用程序的信息(网络加速名单)。如表2所示,示例性示出部分支持网络加速的应用程序的信息。
表2
电子设备可以在应用配置库中查询是否存在应用A的应用标识,若应用配置库中存在应用A的应用标识,则表示应用A支持网络加速。
当然,上述确定应用A是否支持网络加速的方式仅用于举例。实际应用中,该应用配置库还可以存储多个应用标识,每个应用标识采用不同的字符表示该应用标识表示的应用是否支持网络加速。作为示例,可以采用“1”表示支持网络加速,采用“0”表示不支持网络加速。其他确定应用是否支持网络加速的方式不再一一举例。
在应用A支持网络加速的情况下,电子设备查询应用A的数据流特征,以得到应用A使用的网络通道的QoE。在具体实现时,电子设备的系统中存在Netfilter组件,通过该组件可以获取到特定应用标识对应的应用的数据流。让后可以根据应用的数据流确定应用使用的网络通道的QoE。示例性的,网络通道的QoE结果可以包括:优、中、差;或者包括流畅、卡顿等。电子设备根据数据流评估网络通道QoE的具体方法将在后面实施例中详细介绍。
S203、应用A进入后台运行。
在一种示例中,应用B切换为前台运行,应用A进入后台运行。在另一种示例中,应用A进入后台运行,电子设备显示桌面或锁屏界面。一般来说,应用B切换到前台运行,传输应用B数据流采用的网络通道与传输应用A数据流采用的网络通道是同一个网络通道。
S204、确定应用A或应用A的指定业务场景支持后台加速。
如果支持后台加速,则操作系统和应用协同处理,在不影响前台应用体验的情况下,在应用进入后台运行时,对该应用或应用的指定业务场景进行网络加速。
示例性的,应用的开发人员可以设置应用是否支持后台加速,还可以设置一个应用中支持后台加速的业务场景。可选的,用户也可以在电子设备的用户界面设置某个应用是否支持后台加速;可选的,还可以设置一个应用中支持后台加速的业务场景。
示例性的,电子设备可以在应用配置库中保存设置的支持后台加速的应用或应用的指定业务场景。
在一种示例中,应用配置库中保存应用是否支持后台加速的信息。示例性的,如表3所示,应用配置库中包括支持后台加速的应用和不支持后台加速的应用的信息。
表3
在另一些实施例中,应用配置库中保存支持后台加速的应用或应用的场景的信息。示例性的,如表4所示,应用配置库中包括支持后台加速的应用或应用场景的信息。
表4
当配置为对应用中某些场景进行后台加速,那么如果应用进入相应场景,且该应用进入后台运行,则操作系统和应用协同处理,对该应用在支持后台加速的业务场景下产生的数据流进行网络加速。比如,应用A是及时通讯应用(比如),应用A在视频通话场景可以产生视频流,在下载场景产生下载流。可以配置为,对应用A的视频通话场景进行后台加速。那么,当应用A进入后台运行时,可以对应用A的视频流进行网络加速,保证应用A的视频流的流畅性;对应用A的下载流可以不进行网络加速,保持限制应用A的下载流能够使用的带宽和速率。
S205、确定应用A使用的网络通道的QoE满足条件,则对应用A或应用A的指定业务场景进行后台加速。
在一些实施例中,当应用A进入后台运行,且应用A(或应用A的指定业务场景)支持后台加速,则确定应用A使用的网络通道的QoE是否满足条件。如果确定应用A使用的网络通道的QoE满足条件,则对应用A(或应用A的指定业务场景)进行后台加速。其中,网络通道的QoE满足条件可以包括:网络通道的QoE测量结果为优,或者,网络通道的QoE结果不为差等。也就是说,在网络通道QoE较好的情况下,才会对后台应用进行网络加速。如果网络通道QoE不满足条件,说明网络通道的质量已经较差,如果再对后台应用进行网络加速,可能会影响前台应用的体验。
在一些实施例中,电子设备中还配置了各个应用的处理优先级。示例性的,如表5所示,可以用数字表示应用对应的处理优先级,数字越大对应的处理优先级越低。
表5
在一种示例中,应用A进入后台运行,应用B切换为前台运行。在对应用A(或应用A的指定业务场景)进行后台加速之前,需要比较应用A和应用B的处理优先级。如果确定应用A的处理优先级大于应用B的处理优先级,则对应用A(或应用A的指定业务场景)进行后台加速;如果确定应用A的处理优先级小于或等于应用B的处理优先级,则不对应用A(或应用A的指定业务场景)进行后台加速。这样,可以避免对后台应用进行网络加速影响前台应用的体验。比如,应用A为应用B为/>当/>切换为前台应用,进入后台运行;如果确定/>支持网络加速,且/>使用的网络通道(即/>使用的网络通道)的QoE结果为优,但是/>的处理优先级小于的处理优先级,则不对/>进行后台加速;以防止/>占用网络通道的大量传输资源,导致/>的数据流传输速率下降带来卡顿,影响用户打游戏的体验。
在一种实现方式中,对后台应用进行网络加速(即进行后台加速),可以是取消对后台应用使用网络通道资源的限制,停止限制后台应用的带宽和速率。在一种实现方式中,对后台应用进行网络加速(即进行后台加速),可以是提高该应用的数据流在网络通道上的发送优先级,使得该应用的数据流可以被优先发送,降低产生卡顿几率。
相应的,在一种实现方式中,对应用的指定业务场景进行网络加速,可以是取消对应用的指定业务场景在进入后台运行时使用网络通道资源的限制,停止限制该指定业务场景的数据流的带宽和速率。在一种实现方式中,对应用的指定业务场景进行网络加速,可以是提高该应用指定业务场景的数据流在网络通道上的发送优先级,使得该应用指定业务场景的数据流可以被优先发送,降低产生卡顿几率。
本申请实施例提供的网络加速方法,当应用进入后台运行后,在不影响前台应用体验的条件下,可以对后台应用或应用指定业务场景进行网络加速,使得该后台应用或后台应用的指定业务场景的数据流可以被优先发送,降低该应用产生卡顿几率,提高后台应用的使用体验。
本申请实施例提供的网络加速方法,可以在具有上述图1所示硬件结构的电子设备100中实现。
上述电子设备100的软件系统可以采用分层架构,事件驱动架构,微核架构,微服务架构,或云架构。本发明实施例以分层架构的Android系统为例,示例性说明电子设备100的软件结构。分层架构将软件分成若干个层,每一层都有清晰的角色和分工。层与层之间通过接口通信。
参考图8,在一些实施例中,电子设备100的技术架构包括:应用层、服务层、策略层和内核层。应该理解的是,图8中仅示出了与本申请实施例相关的部分层和部分组件,实际应用中,电子设备100还可以包括图8中未示出的层级和组件。当然,也可以仅包含图8所示的组件中的部分组件。
其中,应用层中存在各种应用,例如,如即时通信类应用,视频类应用,游戏类应用等。
服务层中存在网络加速服务模块、感知模块和路径管理模块。
其中,网络加速服务模块是应用与感知模块交互的通道,网络加速服务模块可以基于Binder机制为应用与感知模块转发消息(例如,注册请求)。其中,Binder是一种进程间通信机制,可以实现不同进程之间的通信。
感知模块用于探测上层应用的各种事件。作为示例,感知模块可以探测应用的打开、退出,还可以探测当前切换到前台/后台的应用,还可以探测应用的安装、卸载等。当感知模块探测到应用打开或应用切换到前台时,可以通知下层模块(决策模块)开启网络加速功能,以及启用数据流的监控功能。当感知模块探测到应用切换到后台时,可以通知下层模块(决策模块)开启后台加速功能。
路径管理模块可以用于探测电子设备支持的Wi-Fi网络和蜂窝网络的状态(开启或关闭等)。作为示例,若电子设备中设置有2.4GHz频段的无线网卡1和5.0GHz频段的无线网卡2。路径管理模块可以探测2.4GHz频段的无线网络为开启还是关闭状态;还可以探测5.0GHz频段的无线网络为开启或关闭状态。若电子设备中设有运营商A的数据业务网卡1和运营商B的数据业务网卡2。路径管理模块可以探测运营商A的数据业务网卡1为开启还是关闭状态;还可以探测运营商B的数据业务网卡2为开启还是关闭状态。其中,电子设备与其他电子设备之间建立了网络通道,即网络通道开启;电子设备与其他电子设备之间的网络通道断开,即网络通道关闭。比如,电子设备通过无线网卡与无线路由器建立Wi-Fi通信连接,即开启了Wi-Fi网络。
路径管理模块还可以周期性的探测Wi-Fi网络和蜂窝网络的信道质量。作为示例,路径管理模块可以探测2.4GHz频段的Wi-Fi网络的信道质量,还可以探测5.0GHz频段的Wi-Fi网络的信道质量。也可以探测运营商A的蜂窝网络的信道质量,还可以探测运营商B的蜂窝网络的信道质量。
路径管理模块还可以存储多条网络通道的路径,示例性的,可以存储应用当前使用的网络通道及备用网络通道的路径。路径管理模块还可以用于根据决策模块的策略变化更新网络通道的选取,触发网络通道QoE探测,动态选取最优网络通道。路径管理模块可以启动选取的最优网络通道,即将网络通道从休眠状态转换为唤醒状态,唤醒状态的网络通道可以直接被使用。路径管理模块可以关闭非最优通道,即将网络通道从唤醒状态转换为休眠状态,休眠状态的网络通道暂时无法被使用。
策略层中设有流量管理模块和决策模块。
其中,流量管理模块用于对内核层上报的数据流进行统计,评估各个数据流的网络质量,得出网络通道的QoE。
决策模块存储应用程序中不同业务场景的数据流的传输质量提升策略,以便根据应用程序当前的业务场景执行相应的传输质量提升策略。例如,在应用当前的业务场景为A场景时,可以向应用发送QoE测量结果,以便应用根据QoE测量结果进行网络加速(例如,若应用为视频应用,视频应用可以根据QoE测量结果调整视频分辨率以及缓存策略等);在应用当前的业务场景为B场景时,可以请求路径管理模块选择一条比当前正在使用的网络通道质量更优的网络通道,以便将应用的数据流切换到更优的网络通道上。
决策模块还可以根据Wi-Fi网络的信道质量,确定应用的数据流切换至Wi-Fi网络的时机。例如,如果根据Wi-Fi网络的信道质量确定不满足预设的质量要求(信号不稳定),先不进行网络通道切换,将应用的数据流保持在当前使用的网络通道;当根据Wi-Fi网络的信道质量确定待切入的Wi-Fi网络的质量满足预设的质量要求(网络质量优),将应用的数据流切换到待切入Wi-Fi网络。
决策模块还可以根据后台加速策略,确定进入后台运行的应用或应用指定业务场景的数据流优先发送,以保证后台应用流畅性。
内核层存在策略执行模块和流量上报模块。其中,流量上报模块用于收集数据流信息,并上报收集的数据流信息。策略执行模块用于执行网络通道的切换,还可以用于执行调整数据流的发送优先级顺序等。
在本申请另一实施例中,上述实施例中一个模块(组件)可以拆分为两个或多个模块,或者位于同一层级的两个或多个模块可以合并为同一模块。比如,可以将路径探测模块和路径管理模块合并为一个模块。
作为示例,服务层的路径管理模块可以拆分为路径探测模块和路径控制模块,路径探测模块可以用于探测电子设备支持的Wi-Fi网络和蜂窝网络的状态和质量。路径控制模块可以用于根据决策模块的策略变化更新网络通道的选取,触发网络通道质量探测,动态选取最优通道。
为了便于理解,以下结合具体场景,对本申请实施例提供的网络加速方法进行具体介绍。
以对应用A的指定业务场景进入后台运行时执行后台加速为例,参见图9,为本申请实施例提供的基于图8所示的各个模块实现的一种网络加速方法的时序图,包括:
步骤301、响应于用户打开应用A的操作,应用A启动。应用A向网络加速服务模块发送注册请求。
应用A可以是电子设备中任意能够联网使用网络的应用程序。示例性的,应用A为即时通信应用。
应用A可以根据保存的信息确定应用A是否支持后台加速。如果应用A存在一些业务场景支持后台加速,应用A向网络加速服务模块发送注册请求。该注册请求用于通知网络加速服务模块应用A支持后台加速的业务场景的信息。本申请中将支持后台加速的业务场景,称为指定业务场景。示例性的,应用A为音乐播放应用,包括播放场景、下载场景;音乐播放应用通知网络加速服务模块,支持后台加速的业务场景包括播放场景和下载场景。示例性的,应用A为即时通信应用,包括视频通话场景、下载场景;即时通信应用通知网络加速服务模块,支持后台加速的业务场景包括视频通话场景。
步骤302、网络加速服务模块向感知模块发送注册请求。
感知模块接收到应用A的注册请求后,可以进行以下判断:(1)查询应用配置库确定应用A是否支持网络加速;(2)确定应用A是否在前台运行;(3)确定应用A是否具备相关权限。
若感知模块确定应用A支持网络加速,应用A在前台运行,且具备相关权限,确定应用A注册成功。而后,感知模块可以通过网络加速服务模块向应用A发送注册结果,注册结果为成功,即可以执行后续步骤303-步骤305。
在一些实施例中,若感知模块确定应用A注册失败,向应用A发送注册结果为失败。
步骤303、感知模块向决策模块发送注册请求。
决策模块接收到注册请求,获取并保存应用A支持后台加速的业务场景。示例性的,应用A为音乐播放应用,决策模块接收到注册请求,根据注册请求获取到应用A的包名,以及应用A支持后台加速的业务场景为播放场景和下载场景;决策模块保存应用A的包名,以及播放场景和下载场景。
步骤304、感知模块向网络加速服务模块发送注册结果,注册结果为成功。
步骤305、网络加速服务模块向应用A发送注册结果。
需要说明的是,本申请实施例并不限定步骤303和步骤304执行的先后顺序,可以是先执行步骤303,再执行步骤304;也可以是先执行步骤304,再执行步骤303;还可以是同时执行步骤303和步骤304。
步骤306、感知模块感知到应用A启动,查询应用A是否支持网络加速。
可以理解的,感知模块感知到应用A启动,可能在步骤303和步骤304之前,也可能在步骤303和步骤304之后,图9中步骤303、步骤304和步骤306执行的先后顺序仅为一种示例。
示例性的,感知模块可以通过RunningProcess、ActivityLifecycleCallbacks、UsageStatsManager等函数监测当前的前台应用(例如,应用A),并获取前台应用的标识。或者,若终端设备为Android系统,可以通过Android自带的无障碍功能监测当前的前台应用,并获取前台应用的标识。或者,若终端设备为Linux系统,可以读取Linux系统内核保存在/proc目录下的process进程信息监测当前的前台应用,并获取前台应用的标识。具体判断过程可以参考现有技术,在此不做赘述。其中,应用的标识用于唯一识别一个应用,可以和应用的包名具有一一对应的关系,也可以采用应用的包名。
感知模块中可以包括应用配置库,应用配置库中存储有支持网络加速的应用的标识。感知模块可以通过查询应用配置库来确定应用A是否支持网络加速。
步骤307、若确定应用A支持网络加速,感知模块向决策模块发送网络质量评估请求。
若感知模块通过查询应用配置库确定应用A支持网络加速,可以向决策模块发送网络质量评估请求。决策模块接收到网络质量评估请求后,可以执行步骤308。
其中,网络质量评估请求用于请求决策模块进行网络质量评估。网络质量评估请求中可以包括应用标识、应用的配置信息以及网络质量评估的标准。其中,应用的配置信息是指应用进行业务时的报文特征,报文特征为应用传输数据流时的数据包的头部特征。
或者,感知模块感知到应用A切换到前台,可以通知决策模块,决策模块可以查询应用配置库确定应用A是否支持网络加速,若确定应用A支持网络加速,可以执行步骤308。
步骤308、决策模块向内核层的流量上报模块注册报文监听钩子。
报文监听钩子可以周期性探测应用A当前使用的网络通道的路径,以及监测应用A使用的网络通道传输的数据流的通信参数和统计信息。
应用A在实现某个功能时,可能产生一个或多个数据流。若检测到产生多个数据流,可以周期性检测应用A的每条数据流的通信参数和统计信息。
下面具体描述报文监听钩子如何监测应用A的数据流的通信参数和统计信息,并将监测到的数据流的通信参数和统计信息发送给流量管理模块。
电子设备的系统中存在Netfilter组件,通过该组件可以获取到特定应用标识对应的应用的数据流。流量上报模块可以通过调用Netfilter组件获取应用A的数据流的报文。具体实现时,流量上报模块上报给流量管理模块的信息不仅包括应用A的数据流的报文,还包括应用A的数据流的报文的一些通信参数和统计信息。
参见图10,流量上报模块可以预先注册报文监听钩子(例如,nf_hook钩子函数)。在流量上报模块调用Netfilter组件后,Netfilter组件上报应用A的数据流的报文,流量上报模块接收到Netfilter组件上报的数据流的报文之后,调用预先注册的nf_hook钩子函数。
该nf_hook钩子函数对接收到的数据流的报文进行以下操作:报文解析、查流表和报文分析等操作。
在进行报文解析时,可以查看该报文是否存在应用标识以及该报文的四元组(或五元组),以得到解析结果。若存在应用标识,则可以确定该报文对应的应用程序。四元组中包括源IP、目的IP、源端口、目的端口;五元组中包括:源IP、目的IP、源端口、目的端口以及协议号。另外,报文(数据包)本身也携带了头部特征。数据流的报文的四元组(或五元组)以及报文的头部特征等参数可以统称为数据流的通信参数。
在进行报文解析之后,根据解析结果查询流表,并更新流表的统计信息。流表中存储了各个应用中数据流的标识信息、以及各个数据流的报文总数、收发字节数(包括接收字节数和发送字节数)、错误包数量等。进一步的,可以根据报文总数确定是否下行无响应,例如,连续两个周期内接收到的报文总数相同,则确定下行无响应。可以根据收发字节数确定传输速率,例如,上一周期和本周期接收到的字节数的差值与周期的比值为本周期下行速率。可以根据报文中携带的序列号确定丢包情况,例如,丢包率(loss tolerance或packetloss rate)可以是缺失的序列号的数目与现有的序列号的数目的比值。当然,上述参数的确定方式仅用于举例,在实际应用中,还可以通过其他方式确定上述参数。
数据流的报文总数、错误包数量、丢包率、收发字节数、速率(上行速率、下行速率)等信息可以统称为数据流的统计信息。
实际应用中,各个流的统计信息还可以包括其他信息,例如,数据流随时间变化的流量分布信息、数据流的报文的时延信息等。
当然,若流表中不存在某个数据流的标识信息或相关统计信息时,则可以在流表中增加该数据流的标识以及相关的统计信息。
在查流表并更新流表信息之后,则可以对报文进行分析。例如,过滤报文,从而得到全部或部分报文。
作为一种示例,该过滤过程可以是过滤某个数据流的心跳包报文。则经过过滤处理后,得到该数据流的心跳包报文。该过滤处理过程可以是:通过预先设置某些特征,将满足该特征的报文保留。即满足预先设置的某些特征的报文就为过滤后的报文。
其中,心跳包报文为按照一定的时间间隔存在于数据流中的报文。心跳包报文在固定位置(例如第6个字节)存在固定特征(例如0x64或0x65)。由于该心跳包报文为按照一定时间存在的报文,因此可以基于该心跳包报文计算获得时延(例如,手机向服务器发送心跳请求报文开始,到手机接收到服务器反馈的心跳响应报文为止,总共经历的时间)。
上述示例以过滤心跳包为例进行说明,实际应用中,还可以过滤处理以获得满足其它特征的数据包报文。
作为另一示例,过滤条件还可以包括:选择保留特定长度的数据包报文。在具体实现时,确定数据包报文的长度是否为预先设置的特定长度,若是,则保留该报文,若否,则将该报文过滤掉。
经过上述处理后,得到的过滤后的部分报文被存储在套接字缓存(Socket-Buffer,SKB)队列(queues)中。
SKB队列中存储的数据流的报文上报时的策略包括:立即上报和定期上报。
若为立即上报,流量上报模块中的特定线程及时查看队列,将队列中的报文及时上报给流量管理模块。
若为定期上报,流量上报模块中设置了定时器,基于该定时器设置的时间以一定的周期查看SKB队列中的报文,将队列中的部分或全部报文上报给流量管理模块。
当然,实际应用中,SKB队列中存储的数据流的报文有些是需要立即上报的,有些是需要定期上报的。同样的原理,流量上报模块中的特定线程及时查看队列,将队列中的需要立即上报的报文及时上报给流量管理模块。流量上报模块中还设置了定时器,基于该定时器设置的时间以一定的周期查看SKB队列中的报文,将队列中的需要定期上报的报文上报给流量管理模块。
需要说明,上报报文时,还可以一并上报该报文相关的统计信息。
基于上述理解,流量上报模块并不是将Netfilter组件发送的所有报文均上报给流量管理模块。而是,将满足特定特征的报文(可以携带该满足特定特征的报文的通信参数和统计信息)上报给流量管理模块。同时上报该满足特征的报文相关的通信参数和统计信息。
作为示例,若报文1和报文2均属于同一数据流的报文。接收到报文1后查流表时,根据报文1更新流表中关于该数据流的统计信息,然而,报文1不满足特定特征,所以报文1被过滤掉,不会上报给流量管理模块。接收到报文2后查流表时,根据报文2更新流表中关于该数据流的统计信息,报文2满足特定特征,所以报文2不会被过滤掉,报文2会被上报给流量管理模块。即虽然上报了部分报文,然而,统计信息是基于该数据流下的所有报文得到的。
步骤309、流量上报模块向流量管理模块周期性上报数据流的通信参数和统计信息。
其中,数据流的通信参数可以包括协议类型、源IP地址和端口/目的IP地址和端口、报文特征。其中,协议类型为应用传输数据流时的协议类型,源IP地址和端口为发送数据流时使用的IP地址和端口,目的IP地址和端口为接收数据流时使用的IP地址和端口,报文特征为应用传输数据流时的数据包的头部特征。数据流的通信参数可以是从数据流的报文的四元组或五元组获取到的。
例如,某社交通信类应用在进行音视频通话时,数据流对应的数据包的头部特征为97开头,即data[0]=97,传输数据包时采用UDP协议,源IP地址和端口分别为221.11.6.XX和8080,目的IP地址和端口分别为221.14.4.XX和5050。
数据流的统计信息可以包括往返时延(round trip time,RTT)、丢包率、收发字节数、速率(上行速率、下行速率)等。其中,收发字节数包括发送字节数(即上传流量)和接收字节数(即下载流量)。丢包率为丢失数据包数量占所发送数据包的比率。上行速率为发送数据流的速率,下行速率为接收数据流的速率。RTT表示从电子设备(发送端)发送数据开始,到接收收到来自对端(接收端)的确认(对端接收到数据后便立即发送确认),总共经历的时长。
例如,某社交通信类应用在进行音视频通话时,收发字节数分别为10MB/8MB,上行速率和下行速率分别为200kbit/180kbit,RTT为50ms。
当然,实际应用中,流量上报模块还可以向流量管理模块上报应用网络报文的其他参数,例如流间隔时间、包间隔时间、包大小和流量分布等信息,本申请不做限定。
可选的,流量上报模块可以通过一条消息上报上述应用网络报文的通信参数和统计信息,或者,可以通过多条消息分别上报应用网络报文的通信参数和统计信息,本申请不做限定。
步骤310、流量管理模块根据数据流的通信参数和统计信息周期性进行网络质量评估得出当前QoE测量结果。
示例性的,QoE测量结果可以包括:优(流畅不卡顿)、中(可能卡顿)和差(卡顿)。例如,QoE测量结果为优的标识可以为00,QoE测量结果为中的标识可以为10,QoE测量结果为差的标识可以为11。
示例性的,如表6所示,应用程序的数据流的通信参数和统计信息分别满足不同条件时,QoE测量结果是不同的。
表6
其中,表6中的com.tencent.mm为微信包名,com.tencent.tmgp.sgame为王者荣耀包名。表6中一个条目表示应用程序的数据流的通信参数和统计信息分别满足相应条件时,可以得到相应的QoE测量结果。例如,王者荣耀的数据流采用udp协议+任意端口+0x10报文头部时,且该数据流在5个周期内连续3个周期时延超过150ms,或在4个周期内连续3个周期丢包超过20%,则QoE测量结果为差。
表6仅列举了部分应用程序的数据流的QoE评估条件(包括数据流的通信参数和统计信息分别需要满足的条件)和QoE测量结果,且仅用于示例。在实际应用中还可以采用其他不同的QoE评估条件得到QoE测量结果。本申请实施例中不再一一列出。
步骤311、流量管理模块周期性向决策模块上报当前QoE测量结果。
需要说明的是,应用A启动之后,流量上报模块可以周期性检测应用A当前使用的网络的网络质量,并周期性上报应用网络报文的通信参数和统计信息。流量管理模块根据应用网络报文的通信参数和统计信息周期性进行网络质量评估得出QoE测量结果,并周期性向决策模块通知当前QoE测量结果,直至应用A关闭。
也就是说,在应用A启动期间,流量上报模块一直在周期性检测应用A使用的网络通道的质量,流量管理模块一直在周期性进行网络质量评估得出QoE测量结果,并周期性向决策模块通知当前QoE测量结果。
即,步骤309-步骤311在应用A启动期间可以周期性执行。
步骤312、决策模块向感知模块发送QoE结果可用指示消息。
在上述步骤307,感知模块向决策模块发送网络质量评估请求之后;若感知模块通过查询应用配置库确定应用A支持网络加速,一方面,向决策模块发送网络质量评估请求,以注册报文监听钩子,获取数据流的通信参数和统计信息,评估得出当前QoE测量结果;另一方面,决策模块向感知模块发送QoE结果可用指示消息;QoE结果可用指示消息用于指示QoE结果可以使用。
步骤313、感知模块向网络加速服务模块发送QoE结果可用指示消息。
步骤314、网络加速服务模块向应用A发送QoE结果可用指示消息。
应用A接收到QoE结果可用指示消息,则确定可以获取到应用使用的网络通道的QoE结果。这样,就可以根据网络通道的QoE结果进行应用的后台加速。
步骤315、应用A进入第一业务场景,通知网络加速服务模块其进入第一业务场景。
可以理解的是,应用程序在运行过程中,可以进入、切换、退出各种业务场景。以应用A为即时通信应用为例,示例性的,即时通信应用可以包括不同类型的业务场景,比如登录场景,文字聊天场景,音频通话场景,视频通话场景,下载场景等。下面以应用A的第一业务场景为视频通话场景为例进行说明。
应用A进入视频通话场景,根据保存的信息判断应用A的视频通话场景是否支持后台加速。如果确定应用A的视频通话场景支持后台加速,通知网络加速服务模块其进入第一业务场景。指定业务场景即支持后台加速的业务场景。
步骤316、网络加速服务模块通知感知模块应用A进入第一业务场景。
步骤317、感知模块通知决策模块应用A进入第一业务场景。
决策模块记录应用A进入第一业务场景(例如视频通话场景)。
可以理解的,如果是对应用A进行后台加速,不区分应用A的各个业务场景分别确定是否进行后台加速,可以省略步骤315-步骤317。
步骤318、应用A的第一业务场景进入后台运行,或者应用B切换至前台运行。
示例性的,应用B切换至前台运行,应用A的视频通话场景进入后台运行。例如,应用B是购物类应用,例如
步骤319、感知模块感知到应用A的第一业务场景进入后台运行。
在一种示例中,感知模块可以通过RunningProcess、ActivityLifecycleCallbacks、UsageStatsManager等函数监测当前的前台应用(例如,应用B),并获取前台应用的标识。感知模块监测到应用B切换到前台运行,则确定应用A进入后台运行,即应用A的第一业务场景进入后台运行。
步骤320、感知模块通知决策模块应用A进入后台运行。
步骤321、决策模块确定应用A进入后台运行,根据保存的信息确定应用A处于第一业务场景,并确定应用A的第一业务场景支持后台加速。
步骤322、如果确定当前网络通道的QoE测量结果满足条件,且应用A的处理优先级大于应用B,决策模块通知策略执行模块对应用A第一业务场景的数据流进行后台加速。
应用A启动期间,流量上报模块一直在周期性检测应用A使用的网络通道的质量,流量管理模块一直在周期性进行网络质量评估得出QoE测量结果,并周期性向决策模块通知当前QoE测量结果。一般来说,应用A使用的网络通道即应用B使用的网络通道。
决策模块判断当前网络通道的QoE测量结果是否满足条件,比如条件为网络通道的QoE测量结果为优(流畅不卡顿),比如条件为网络通道的QoE测量结果不为差(卡顿)。如果确定当前网络通道的QoE测量结果满足条件,才执行后台加速;以避免对前台应用的使用体验造成影响。
决策模块还根据配置信息(比如表5)比较应用A和应用B的处理优先级。如果应用A(后台应用)的处理优先级大于应用B(前台应用)的处理优先级,才执行后台加速;以避免对前台应用的使用体验造成影响。
步骤323、策略执行模块对应用A第一业务场景的数据流进行后台加速。
在一种示例中,取消对应用A第一业务场景使用网络通道资源的限制,比如停止限制应用A第一业务场景的数据流的带宽和速率。
在一种示例中,提高应用A第一业务场景的数据流在网络通道上的发送优先级,使得应用A第一业务场景的数据流可以被优先发送。以网络通道是蜂窝网络为例,可以修改数据链路层分组数据汇聚协议(packet data convergence protocol,PDCP)中应用A的第一业务场景的数据流对应的套接字(Socket)上发送的数据包的发送优先级的值,使得PDCP中应用A的第一业务场景的数据流对应的Socket上发送的数据包的发送优先级提高,这样,应用A的第一业务场景的数据流对应的Socket上发送的数据包优先发送,从而提升了应用A在后台运行时的用户体验。
当应用A在后台运行时,可能退出第一业务场景。如图9所示,本申请实施例提供的网络加速方法还可以包括:
步骤324、应用A退出第一业务场景,通知网络加速服务模块其退出第一业务场景。
示例性的,应用A退出视频通话场景,进入下载场景。
步骤325、网络加速服务模块通知感知模块应用A退出第一业务场景。
步骤326、感知模块通知决策模块应用A退出第一业务场景。
决策模块记录应用A退出第一业务场景(例如退出视频通话场景)。
步骤327、决策模块通知策略执行模块对应用A第一业务场景的数据流取消后台加速。
步骤328、策略执行模块停止对应用A第一业务场景的数据流进行后台加速。
在一种示例中,恢复对应用A第一业务场景使用网络通道资源进行限制,比如限制应用A第一业务场景的数据流的带宽和速率。
在一种示例中,恢复应用A第一业务场景的数据流在网络通道上的发送优先级为初始默认值,停止优先发送应用A第一业务场景的数据流。以网络通道是蜂窝网络为例,可以将数据链路层分组数据汇聚协议(packet data convergence protocol,PDCP)中应用A的第一业务场景的数据流对应的Socket上的数据包的发送优先级修改为默认值。
可选的,在一些实施例中,当应用A在后台运行过程中,应用A当前使用的网络通道的QoE测量结果可能发生变化。需要说明的是,应用A当前使用的网络通道的QoE测量结果发生变化时,应用A可能退出第一业务场景,也可能未退出第一业务场景。也就是说,下述步骤与上述步骤324-步骤328之间可以不相互关联。示例性的,本申请实施例提供的网络加速方法还可以包括:
步骤329、决策模块若确定流量管理模块上报的QoE测量结果不满足条件,则请求一条新的网络通道。
流量上报模块一直在周期性检测应用A使用的网络通道的质量,流量管理模块一直在周期性进行网络质量评估得出QoE测量结果,并周期性向决策模块通知当前QoE测量结果。在一些实施例中,决策模块确定流量管理模块上报的QoE测量结果不满足条件,比如,QoE测量结果为差(卡顿),说明当前传输应用数据流的网络通道的质量较差,则执行网络加速策略,请求一条新的网络通道进行调优;使得应用的数据流始终在质量较好的网络通道进行传输。
步骤330、决策模块向路径管理模块发送更优路径请求。
更优路径请求用于请求一条相比当前网络路径更优的网络路径。
步骤331、路径管理模块激活并探测网络质量,确定存在更优的网络路径。
路径管理模块接收到决策模块发送的更优路径请求时,可以激活并探测网络质量,确定是否存在更优的网络路径。
在实际应用中,若电子设备中设有2.4GHz频段的无线网卡1、5.0GHz频段的无线网卡2、运营商A的数据业务网卡1和运营商B的数据业务网卡2。则可以默认无线网卡1或无线网卡2中的一个为主Wi-Fi,另一无线网卡为副Wi-Fi;默认运营商A的数据业务网卡1和运营商B的数据业务网卡2中的一个为主卡,另一个数据业务网卡为副卡。
作为示例,2.4GHz频段的网络通道为主Wi-Fi网络,5.0GHz频段的网络通道为辅Wi-Fi网络,数据业务网卡1对应的网络通道为主蜂窝网络,数据业务网卡2对应的网络通道为辅蜂窝网络。
在主Wi-Fi网络可用的情况下,系统默认电子设备或前台应用当前的主用网络为主Wi-Fi网络,在主Wi-Fi网络不可用的情况下,系统默认电子设备或前台应用当前的主用网络为主卡蜂窝网络。在主卡蜂窝网络不可用的情况下,系统默认电子设备或前台应用当前的主用网络为副Wi-Fi网络,在副Wi-Fi网络不可用的情况下,系统默认电子设备或前台应用当前的主用网络为副卡蜂窝网络。
在应用A开启后在前台运行时,应用A按照上述规则使用主用网络;即使应用A在前台时,系统将应用A中的部分数据流切换到其他网络上,在应用A切换到后台后,应用A中的数据流恢复使用系统默认的主用网络;在应用A从后台切换到前台后,应用A继续使用系统默认的主用网络。
路径管理模块可以按照主Wi-Fi、主卡网络、副Wi-Fi和副卡网络的顺序依次请求,直到找到一条可用且质量满足要求(网络质量优于当前正在使用的网络通道)的网络。其中,任一网络通道的网络质量可以通过网络质量参数确定,网络质量参数包括以下至少一项:带宽、时延和空口速率。
步骤332、路径管理模块向决策模块通知更优的网络路径。
路径管理模块可以将上述可用且质量满足要求的网络的网络路径通知给决策模块。
步骤333、决策模块接收到路径管理模块确定的更优的网络路径后,确定当前QoE测量结果仍然差。
步骤334、决策模块向内核层的策略执行模块通知将前台应用和后台应用的数据流切换到更优的网络通道上。
示例性的,当前的前台应用为应用B,当前的后台应用为应用A。
步骤335、策略执行模块将前台应用和后台应用的数据流切换到更优的网络通道上。
在一些实施例中,决策模块可以向内核层的策略执行模块通知将前台应用(例如应用B)的数据流切换到多条质量较优(网络质量优于当前正在使用的网络通道)的网络通道上。策略执行模块将应用B的数据流切换到多条质量较优的网络通道上,以便应用B可以通过多条质量较优的网络通道进行上网,可以提高用户体验。
这样,应用A和应用B都可以通过更优的网络通道传输数据流,可以提高用户体验。应用A不管在前台运行还是在后台运行,都可以使用质量较好的网络通道传输数据,保证应用A的流畅性。
在一些实施例中,本申请提供的网络加速方法还可以包括:
步骤336、应用A退出第一业务场景或应用A关闭,则向网络加速服务模块发送去注册请求。
步骤337、网络加速服务模块向感知模块发送去注册请求。
其中可以包括应用A的标识,或者包括应用A的第一业务场景的标识。
步骤338、感知模块停止对应用A的第一业务场景进行后台加速。
感知模块接收到应用A发送的去注册请求后,停止对该应用进行后台加速。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
基于本申请实施例提供的网络加速方法,对于后台应用也可以执行网络加速策略。这样,对于音乐播放类、音频通话类以及视频通话类等,即使在后台运行也可以被用户感知的应用或应用的业务场景,可以取消对其使用网络资源的限制,提高其在后台运行时通过网络通道发送数据流的优先级,降低其在后台运行时产生卡顿的几率,提高用户使用体验。
本申请一些实施例提供了一种电子设备,该电子设备可以包括:存储器、通信模块和一个或多个处理器。该通信模块、存储器和处理器耦合。该存储器用于存储计算机程序代码,该计算机程序代码包括计算机指令。当处理器执行计算机指令时,电子设备可执行上述方法实施例中电子设备执行的各个功能或者步骤。该电子设备的结构可以参考图1所示的电子设备100的结构。
本申请实施例还提供一种芯片系统(例如,片上系统(system on a chip,SoC)),如图11所示,该芯片系统包括至少一个处理器601和至少一个接口电路602。处理器601和接口电路602可通过线路互联。例如,接口电路602可用于从其它装置(例如电子设备的存储器)接收信号。又例如,接口电路602可用于向其它装置(例如处理器601或者电子设备的触摸屏或者电子设备的摄像头)发送信号。示例性的,接口电路602可读取存储器中存储的指令,并将该指令发送给处理器601。当所述指令被处理器601执行时,可使得芯片系统执行上述实施例中各个模块的步骤。当然,该芯片系统还可以包含其他分立器件,本申请实施例对此不作具体限定。
本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质包括计算机指令,当所述计算机指令在上述电子设备上运行时,使得该电子设备执行上述方法实施例中电子设备执行的各个功能或者步骤。
本申请实施例还提供一种计算机程序产品,当所述计算机程序产品在电子设备上运行时,使得所述电子设备执行上述方法实施例中电子设备执行的各个功能或者步骤。
通过以上实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是一个物理单元或多个物理单元,即可以位于一个地方,或者也可以分布到多个不同地方。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上内容,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何在本申请揭露的技术范围内的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (13)
1.一种网络加速方法,应用于电子设备,其特征在于,所述方法包括:
第一应用在所述电子设备上启动,所述第一应用使用所述电子设备建立的第一网络通道传输数据流;
所述电子设备周期性采集所述第一网络通道的体验质量QoE测量结果;
所述第一应用进入后台运行;
如果所述第一网络通道的QoE测量结果满足条件,对所述第一应用的数据流进行后台加速;其中,所述对所述第一应用的数据流进行后台加速包括取消对所述第一应用的数据流使用网络的带宽和速率的限制,以及提高所述第一应用的数据流的发送优先级中至少一项。
2.根据权利要求1所述的方法,其特征在于,
所述第一应用进入后台运行之前,所述方法还包括:
所述第一应用进入第一业务场景;
所述对所述第一应用的数据流进行后台加速,包括:
对所述第一应用的第一业务场景的数据流进行后台加速。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
所述第一应用退出所述第一业务场景;
所述电子设备停止对所述第一应用的第一业务场景的数据流进行后台加速。
4.根据权利要求1-3任意一项所述的方法,其特征在于,所述第一应用进入后台运行包括:
第二应用进入前台运行,使得所述第一应用进入后台运行。
5.根据权利要求4所述的方法,其特征在于,在对所述第一应用的数据流进行后台加速之前,所述方法还包括:
确定所述第一应用的处理优先级大于所述第二应用的处理优先级。
6.根据权利要求1-5任意一项所述的方法,其特征在于,所述第一应用进入后台运行,包括:
所述第一应用在所述电子设备上运行,且所述第一应用的窗口不进行显示或所述第一应用的窗口被所述电子设备上运行的其他应用的窗口遮挡。
7.根据权利要求1-5任意一项所述的方法,其特征在于,所述提高所述第一应用的数据流的发送优先级,包括:
修改所述第一网络通道中分组数据汇聚协议PDCP中所述第一应用的数据流对应的套接字上发送的数据包的发送优先级的值,使得提高所述PDCP中所述第一应用的数据流对应的套接字上发送的数据包的发送优先级。
8.根据权利要求1-5任意一项所述的方法,其特征在于,所述第一网络通道的QoE测量结果满足条件,包括:
所述第一网络通道的QoE测量结果为优,或者,
所述第一网络通道的QoE测量结果不是差。
9.根据权利要求1-5任意一项所述的方法,其特征在于,所述电子设备周期性采集所述第一网络通道的体验质量QoE测量结果,包括:
所述电子设备周期性采集所述第一应用的数据流的通信参数和统计信息,根据所述第一应用的数据流的通信参数和统计信息获取所述第一网络通道的体验质量QoE测量结果;所述通信参数包括协议类型、源网际协议IP地址和端口/目的IP地址和端口、报文特征中的至少一项,所述统计信息包括往返时延RTT、丢包率、收发字节数、速率中的至少一项。
10.根据权利要求1-9任意一项所述的方法,其特征在于,所述方法还包括:
如果所述第一网络通道的QoE测量结果不满足条件,将所述第一应用的数据流切换至第二网络通道;所述第二网络通道的网络质量比所述第一网络通道优,所述网络质量通过网络质量参数确定,所述网络质量参数包括以下至少一项:带宽、时延和空口速率。
11.一种电子设备,其特征在于,所述电子设备包括处理器和存储器,所述处理器用于运行存储器中存储的计算机程序,以使得所述电子设备实现如权利要求1-10中任意一项所述的方法。
12.一种芯片系统,其特征在于,包括处理器,所述处理器与存储器耦合,所述处理器执行存储器中存储的计算机程序,以实现如权利要求1-10中任意一项所述的方法。
13.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储计算机程序,所述计算机程序在处理器上运行时实现如权利要求1-10中任意一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211295450.9A CN116744329A (zh) | 2022-10-21 | 2022-10-21 | 一种网络加速方法和电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211295450.9A CN116744329A (zh) | 2022-10-21 | 2022-10-21 | 一种网络加速方法和电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116744329A true CN116744329A (zh) | 2023-09-12 |
Family
ID=87912105
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211295450.9A Pending CN116744329A (zh) | 2022-10-21 | 2022-10-21 | 一种网络加速方法和电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116744329A (zh) |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107770381A (zh) * | 2017-10-25 | 2018-03-06 | 广东欧珀移动通信有限公司 | 网络管理方法及相关产品 |
CN110018888A (zh) * | 2018-01-10 | 2019-07-16 | 广东欧珀移动通信有限公司 | 资源管理方法、装置、移动终端及计算机可读存储介质 |
CN110688169A (zh) * | 2019-09-16 | 2020-01-14 | 腾讯科技(深圳)有限公司 | 应用程序加速方法及装置、存储介质、电子设备 |
CN110913424A (zh) * | 2019-11-14 | 2020-03-24 | 华为技术有限公司 | 网络连接控制方法和装置、终端、计算机存储介质 |
WO2020118498A1 (zh) * | 2018-12-10 | 2020-06-18 | 华为技术有限公司 | 一种业务控制的方法及电子设备 |
CN111314112A (zh) * | 2020-01-19 | 2020-06-19 | 烽火通信科技股份有限公司 | 一种基于家庭网关的业务加速方法及系统 |
CN111371728A (zh) * | 2018-12-25 | 2020-07-03 | 华为终端有限公司 | 一种处理方法及装置 |
CN114449576A (zh) * | 2020-10-30 | 2022-05-06 | 华为技术有限公司 | 一种应用数据的发送方法、装置及设备 |
WO2022127605A1 (zh) * | 2020-12-15 | 2022-06-23 | 华为技术有限公司 | 一种网络切换方法及装置 |
-
2022
- 2022-10-21 CN CN202211295450.9A patent/CN116744329A/zh active Pending
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107770381A (zh) * | 2017-10-25 | 2018-03-06 | 广东欧珀移动通信有限公司 | 网络管理方法及相关产品 |
CN110018888A (zh) * | 2018-01-10 | 2019-07-16 | 广东欧珀移动通信有限公司 | 资源管理方法、装置、移动终端及计算机可读存储介质 |
WO2020118498A1 (zh) * | 2018-12-10 | 2020-06-18 | 华为技术有限公司 | 一种业务控制的方法及电子设备 |
CN111371728A (zh) * | 2018-12-25 | 2020-07-03 | 华为终端有限公司 | 一种处理方法及装置 |
CN110688169A (zh) * | 2019-09-16 | 2020-01-14 | 腾讯科技(深圳)有限公司 | 应用程序加速方法及装置、存储介质、电子设备 |
CN110913424A (zh) * | 2019-11-14 | 2020-03-24 | 华为技术有限公司 | 网络连接控制方法和装置、终端、计算机存储介质 |
CN111314112A (zh) * | 2020-01-19 | 2020-06-19 | 烽火通信科技股份有限公司 | 一种基于家庭网关的业务加速方法及系统 |
CN114449576A (zh) * | 2020-10-30 | 2022-05-06 | 华为技术有限公司 | 一种应用数据的发送方法、装置及设备 |
WO2022127605A1 (zh) * | 2020-12-15 | 2022-06-23 | 华为技术有限公司 | 一种网络切换方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113795040B (zh) | 通道切换方法、电子设备及存储介质 | |
CN114172791B (zh) | 通道切换方法、电子设备及存储介质 | |
WO2023273317A1 (zh) | 通道切换方法、电子设备及存储介质 | |
CN110913424B (zh) | 网络连接控制方法和装置、终端、计算机存储介质 | |
CN115484648B (zh) | 通道切换方法、电子设备及存储介质 | |
CN113890905B (zh) | 通道切换方法、电子设备及存储介质 | |
CN116709442A (zh) | 一种无线网络切换方法和电子设备 | |
WO2023087853A1 (zh) | 一种网络加速方法、电子设备、芯片系统及存储介质 | |
WO2023087852A1 (zh) | 一种网络加速方法、电子设备、芯片系统及存储介质 | |
CN113810965B (zh) | 通道切换方法、电子设备及存储介质 | |
CN116744329A (zh) | 一种网络加速方法和电子设备 | |
CN116709368B (zh) | 一种网络加速方法和装置 | |
WO2024082811A1 (zh) | 一种网络加速方法和装置 | |
CN116405960B (zh) | 一种网络质量的检测方法及相关电子设备 | |
RU2802678C1 (ru) | Способ переключения каналов, электронное устройство и носитель хранения данных | |
WO2021143921A1 (zh) | 一种多路径传输控制的方法及控制装置 | |
WO2022228234A1 (zh) | 一种无线局域网中传输报文的方法及电子设备 | |
WO2023087850A1 (zh) | 网络加速方法、电子设备、芯片系统及可读存储介质 | |
CN117915356A (zh) | 一种网络加速方法和装置 | |
US20240163052A1 (en) | Information processing method and apparatus, communication device, and storage medium | |
WO2024114243A1 (zh) | 上行传输方法及终端设备 | |
CN116709369A (zh) | 一种网络加速方法及电子设备 | |
CN116709367A (zh) | 一种网络加速方法和装置 | |
CN113228553A (zh) | 信息传输方法、装置、通信设备和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |