掌桥专利:专业的专利平台
掌桥专利
首页

蜂窝网络的控制方法和电子设备

文献发布时间:2024-01-17 01:15:20


蜂窝网络的控制方法和电子设备

技术领域

本申请实施例涉及终端设备技术领域,尤其涉及一种蜂窝网络的控制方法和电子设备。

背景技术

随着通信技术的发展,电子设备中应用程序的种类越来越多,使得应用与用户的生活也越来越密切。目前,大多数应用需要联网来提供服务,电子设备可提供Wi-Fi网络和蜂窝网络来供应用联网。

那么在手机中的不同应用分别使用蜂窝网络和Wi-Fi网络进行联网的场景下,可造成手机的持续耗电。

发明内容

为了解决上述技术问题,本申请提供一种蜂窝网络的控制方法和电子设备。在该方法中,在检测到最后一个申请并使用过蜂窝网络的应用,从前台切换到后台运行,并保持一定时长未生成应用数据的情况下,可断开蜂窝网络的通路,以防止未申请蜂窝网络的应用在电子设备存在Wi-Fi连接的情况下,继续使用上述应用申请的蜂窝网络,从而节省双网环境下的手机电量。

第一方面,本申请实施例提供一种蜂窝网络的控制方法,应用于电子设备,所述电子设备通过Wi-Fi网络和蜂窝网络与应用服务器进行数据交互,其中,所述蜂窝网络由第一应用申请,所述第一应用和第二应用通过所述蜂窝网络与各自的所述应用服务器进行数据交互。所述方法包括:

响应于接收到的第一用户操作,将运行在前台的所述第一应用切换至后台运行;

检测到所述第一应用保持在后台运行的预设时长内未生成应用数据,并且所述第一应用为最后一个申请过所述蜂窝网络且使用所述蜂窝网络的应用,断开所述电子设备的所述蜂窝网络的通路;

通过所述Wi-Fi网络与所述第二应用的应用服务器交互所述第二应用的数据。

示例性地,电子设备中一个应用在同一时刻可以使用一种网络与应用服务器进行数据交互,那么电子设备中的不同应用可分别通过Wi-Fi网络和蜂窝网络与各自的应用服务器进行数据交互。

示例性地,上述数据交互可用于表示上行数据交互,或下行数据交互,或上下行数据交互。

示例性地,第一应用使用所述蜂窝网络用于表示在电子设备检测到所述第一应用保持在后台运行的预设时长内未生成应用数据之前,第一应用可使用蜂窝网络与第一应用的应用服务器进行数据交互。

在本申请实施例中,在电子设备通过Wi-Fi网络和蜂窝网络进行双网连接的场景下,其中,所述蜂窝网络由第一应用申请,并由第一应用和未申请蜂窝网络的第二应用使用,在响应于用户操作将运行在前台的第一应用切换至后台运行后,检测到第一应用保持在后台运行的预设时长内未生成应用数据、且是最后一个申请并使用蜂窝网络的应用,那么可断开蜂窝网络的通路,以防止未申请蜂窝网络的第二应用在电子设备存在Wi-Fi连接的情况下,继续使用第一应用所申请的蜂窝网络,从而节省双网环境下的手机电量。

可选地,在一种可能的实施方式中,所述断开所述电子设备的所述蜂窝网络之后,所述方法还包括:

响应于接收到的第二用户操作,将保持在后台运行的所述预设时长内未生成应用数据的所述第一应用切换至前台运行;

连接所述电子设备的所述蜂窝网络的通路。

可选地,所述方法还包括:所述连接所述电子设备的所述蜂窝网络的通路之后,通过所述蜂窝网络与所述第一应用的应用服务器交互所述第一应用的数据。

示例性地,对于通过蜂窝网络来交互第一应用的数据的时机,本申请不做限制,具体时机由第一应用的业务需求而定,在第一应用需要联网来与应用服务器进行交互数据时,可通过蜂窝网络来实现。

可选地,在一种可能的实施方式中,所述检测到所述第一应用保持在后台运行的预设时长内未生成应用数据,并且所述第一应用为最后一个申请过所述蜂窝网络且使用所述蜂窝网络的应用之后,所述方法还包括:

将所述第一应用的第一蜂窝请求从第一数据结构删除;

其中,所述第一蜂窝请求用于申请所述蜂窝网络,所述第一数据结构用于存储预设应用的蜂窝请求,其中,所述预设应用为申请过所述蜂窝网络的应用。

可选地,在一种可能的实施方式中,

所述将所述第一应用的第一蜂窝请求从第一数据结构删除之前,所述方法还包括:

将所述第一蜂窝请求备份至第二数据结构;

所述连接所述电子设备的所述蜂窝网络的通路之前,所述方法还包括:

将所述第二数据结构中备份的所述第一蜂窝请求写入所述第一数据结构。

可选地,在一种可能的实施方式中,所述方法还包括:

响应于接收到的第三用户操作,将运行在前台的所述第三应用切换至后台运行,其中,所述蜂窝网络由所述第三应用申请,所述第三应用通过所述蜂窝网络与所述第三应用的应用服务器进行数据交互;

检测到所述第三应用保持在后台运行的所述预设时长内未生成应用数据,并且所述第三应用不是最后一个申请过所述蜂窝网络且使用所述蜂窝网络的应用,将所述第三应用的第二蜂窝请求从所述第一数据结构删除;

所述第二蜂窝请求用于申请所述蜂窝网络。

示例性地,在检测到所述第三应用保持在后台运行的所述预设时长内未生成应用数据时,还存在除第三应用之外的申请过所述蜂窝网络且还使用蜂窝网络的应用。

可选地,在一种可能的实施方式中,所述将所述第三应用的第二蜂窝请求从第一数据结构删除之前,所述方法还包括:

将所述第二蜂窝请求备份至第二数据结构。

可选地,在一种可能的实施方式中,所述将所述第三应用的第二蜂窝请求从第一数据结构删除之后,所述方法还包括:

响应于接收到的第四用户操作,将保持在后台运行的所述预设时长内未生成应用数据的所述第三应用切换至前台运行;

将所述第二数据结构中备份的所述第二蜂窝请求写入所述第一数据结构。

可选地,在一种可能的实施方式中,在将所述第二数据结构中备份的所述第一蜂窝请求写入所述第一数据结构之后,所述方法还包括:

将所述第一蜂窝请求从所述第二数据结构删除。

可选地,在一种可能的实施方式中,在将所述第二数据结构中备份的所述第二蜂窝请求写入所述第一数据结构之后,所述方法还包括:

将所述第二蜂窝请求从所述第二数据结构删除。

可选地,在一种可能的实施方式中,所述断开所述电子设备的所述蜂窝网络的通路之后,所述方法还包括:

响应于接收到的第四用户操作,将保持在后台运行的预设时长内未生成应用数据的所述第一应用进行关闭;

将所述第一蜂窝请求从所述第二数据结构中删除。

可选地,在一种可能的实施方式中,所述电子设备显示有表示所述Wi-Fi网络的第一图标和表示所述蜂窝网络的第二图标;

所述断开所述电子设备的所述蜂窝网络的通路之前,所述第二图标包括第二上行标识,和/或,第二下行标识;

所述第二上行标识用于表示所述电子设备通过所述蜂窝网络向所述应用服务器上传数据;

所述第二下行标识用于表示所述电子设备通过所述蜂窝网络从所述应用服务器下载数据。

可选地,在一种可能的实施方式中,所述断开所述电子设备的所述蜂窝网络的通路之后,所述第一图标包括所述第一上行标识,和/或,所述第一下行标识,所述第二图标不包括所述第二上行标识和所述第二下行标识;

其中,所述第一上行标识用于表示所述电子设备通过所述Wi-Fi网络向所述应用服务器上传数据;

所述第一下行标识用于表示所述电子设备通过所述Wi-Fi网络从所述应用服务器下载数据。

可选地,在一种可能的实施方式中,所述连接所述电子设备的所述蜂窝网络的通路之后,所述第二图标包括所述第二上行标识,和/或,所述第二下行标识。

第二方面,本申请实施例提供一种电子设备。该电子设备包括:存储器和处理器,所述存储器和所述处理器耦合;所述存储器存储有程序指令,所述程序指令由所述处理器执行时,使得所述电子设备执行如第一方面以及第一方面的任意一种实施方式中的方法。

第二方面所对应的技术效果可参见上述第一方面以及第一方面的任意一种实现方式所对应的技术效果,此处不再赘述。

第三方面,本申请实施例提供了一种计算机可读介质,用于存储计算机程序,当所述计算机程序在电子设备上运行时,使得所述电子设备执行如第一方面以及第一方面的任意一种实施方式中的方法。

第三方面所对应的技术效果可参见上述第一方面以及第一方面的任意一种实现方式所对应的技术效果,此处不再赘述。

第四方面,本申请实施例提供了一种芯片,该芯片包括一个或多个接口电路和一个或多个处理器;所述接口电路用于从电子设备的存储器接收信号,并向所述处理器发送所述信号,所述信号包括存储器中存储的计算机指令;当所述处理器执行所述计算机指令时,使得所述电子设备执行如第一方面以及第一方面的任意一种实施方式中的方法。

第四方面所对应的技术效果可参见上述第一方面以及第一方面的任意一种实现方式所对应的技术效果,此处不再赘述。

附图说明

为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1为示例性示出的电子设备的结构示意图之一;

图2为示例性示出的电子设备的软件结构示意图;

图3a为示例性示出的手机的网络交互示意图;

图3b为示例性示出的手机的各模块的交互流程示意图;

图4为示例性示出的蜂窝状态和应用状态的示意图;

图5a为示例性示出的蜂窝网络控制方法的流程示意图;

图5b为示例性示出的蜂窝网络控制方法的流程示意图;

图6为示例性示出的蜂窝网络控制方法的流程示意图;

图7为示例性示出的蜂窝网络控制方法的流程示意图;

图8为示例性示出的蜂窝网络控制方法的流程示意图;

图9为示例性示出的应用场景示意图;

图10为示例性示出的应用场景示意图;

图11为示例性示出的一种本申请实施例的蜂窝状态和应用状态的示意图;

图12为示例性示出的一种本申请实施例的蜂窝状态和应用状态的示意图;

图13为示例性示出的一种本申请实施例的蜂窝状态和应用状态的示意图;

图14为本申请实施例提供的装置的结构示意图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。

本申请实施例的说明书和权利要求书中的术语“第一”和“第二”等是用于区别不同的对象,而不是用于描述对象的特定顺序。例如,第一目标对象和第二目标对象等是用于区别不同的目标对象,而不是用于描述目标对象的特定顺序。

在本申请实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。

在本申请实施例的描述中,除非另有说明,“多个”的含义是指两个或两个以上。例如,多个处理单元是指两个或两个以上的处理单元;多个系统是指两个或两个以上的系统。

图1示出了电子设备100的结构示意图。应该理解的是,图1所示电子设备100仅是电子设备的一个范例,可选地,电子设备100可以为终端,也可以称为终端设备,终端可以为蜂窝电话(cellular phone),即手机,本申请不做限定。需要进一步说明的是,电子设备100可以具有比图中所示的更多的或者更少的部件,可以组合两个或多个的部件,或者可以具有不同的部件配置。图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,显示屏194,以及用户标识模块(subscriber identification module,SIM)卡接口195等。其中传感器模块180可以包括压力传感器180A,陀螺仪传感器180B,气压传感器180C,磁传感器180D,加速度传感器180E,距离传感器180F,接近光传感器180G,指纹传感器180H,温度传感器180J,触摸传感器180K,环境光传感器180L,骨传导传感器180M等。

处理器110可以包括一个或多个处理单元,例如:处理器110可以包括应用处理器(application processor,AP),调制解调处理器,图形处理器(graphics processingunit,GPU),图像信号处理器(image signal processor,ISP),控制器,存储器,视频编解码器,数字信号处理器(digital signal processor,DSP),基带处理器,和/或神经网络处理器(neural-network processing unit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。

其中,控制器可以是电子设备100的神经中枢和指挥中心。控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。

处理器110中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器110中的存储器为高速缓冲存储器。该存储器可以保存处理器110刚用过或循环使用的指令或数据。如果处理器110需要再次使用该指令或数据,可从所述存储器中直接调用。避免了重复存取,减少了处理器110的等待时间,因而提高了系统的效率。

在一些实施例中,处理器110可以包括一个或多个接口。接口可以包括集成电路(inter-integrated circuit,I2C)接口,集成电路内置音频(inter-integrated circuitsound,I2S)接口,脉冲编码调制(pulse code modulation,PCM)接口,通用异步收发传输器(universal asynchronous receiver/transmitter,UART)接口,移动产业处理器接口(mobile industry processor interface,MIPI),通用输入输出(general-purposeinput/output,GPIO)接口,用户标识模块(subscriber identity module,SIM)接口,和/或通用串行总线(universal serial bus,USB)接口等。

USB接口130是符合USB标准规范的接口,具体可以是Mini USB接口,Micro USB接口,USB TypeC接口等。USB接口130可以用于连接充电器为电子设备100充电,也可以用于电子设备100与外围设备之间传输数据。也可以用于连接耳机,通过耳机播放音频。该接口还可以用于连接其他电子设备,例如AR设备等。

可以理解的是,本申请实施例示意的各模块间的接口连接关系,只是示意性说明,并不构成对电子设备100的结构限定。在本申请另一些实施例中,电子设备100也可以采用上述实施例中不同的接口连接方式,或多种接口连接方式的组合。

充电管理模块140用于从充电器接收充电输入。其中,充电器可以是无线充电器,也可以是有线充电器。在一些有线充电的实施例中,充电管理模块140可以通过USB接口130接收有线充电器的充电输入。在一些无线充电的实施例中,充电管理模块140可以通过电子设备100的无线充电线圈接收无线充电输入。充电管理模块140为电池142充电的同时,还可以通过电源管理模块141为电子设备供电。

电源管理模块141用于连接电池142,充电管理模块140与处理器110。电源管理模块141接收电池142和/或充电管理模块140的输入,为处理器110,内部存储器121,外部存储器,显示屏194,摄像头193,和无线通信模块160等供电。电源管理模块141还可以用于监测电池容量,电池循环次数,电池健康状态(漏电,阻抗)等参数。在其他一些实施例中,电源管理模块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转为电磁波辐射出去。在一些实施例中,移动通信模块150的至少部分功能模块可以被设置于处理器110中。在一些实施例中,移动通信模块150的至少部分功能模块可以与处理器110的至少部分模块被设置在同一个器件中。

调制解调处理器可以包括调制器和解调器。其中,调制器用于将待发送的低频基带信号调制成中高频信号。解调器用于将接收的电磁波信号解调为低频基带信号。随后解调器将解调得到的低频基带信号传送至基带处理器处理。低频基带信号经基带处理器处理后,被传递给应用处理器。应用处理器通过音频设备(不限于扬声器170A,受话器170B等)输出声音信号,或通过显示屏194显示图像或视频。在一些实施例中,调制解调处理器可以是独立的器件。在另一些实施例中,调制解调处理器可以独立于处理器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可以通过无线通信技术与网络以及其他设备通信。电子设备100通过GPU,显示屏194,以及应用处理器等实现显示功能。GPU为图像处理的微处理器,连接显示屏194和应用处理器。GPU用于执行数学和几何计算,用于图形渲染。处理器110可包括一个或多个GPU,其执行程序指令以生成或改变显示信息。

显示屏194用于显示图像,视频等。显示屏194包括显示面板。显示面板可以采用液晶显示屏(liquid crystal display,LCD),有机发光二极管(organic light-emittingdiode,OLED),有源矩阵有机发光二极体或主动矩阵有机发光二极体(active-matrixorganic light emitting diode的,AMOLED),柔性发光二极管(flex light-emittingdiode,FLED),Miniled,MicroLed,Micro-oLed,量子点发光二极管(quantum dotlightemitting diodes,QLED)等。在一些实施例中,电子设备100可以包括1个或N个显示屏194,N为大于1的正整数。

电子设备100可以通过ISP,摄像头193,视频编解码器,GPU,显示屏194以及应用处理器等实现拍摄功能。摄像头193用于捕获静态图像或视频。物体通过镜头生成光学图像投射到感光元件。

外部存储器接口120可以用于连接外部存储卡,例如Micro SD卡,实现扩展电子设备100的存储能力。外部存储卡通过外部存储器接口120与处理器110通信,实现数据存储功能。例如将音乐,视频等文件保存在外部存储卡中。

内部存储器121可以用于存储计算机可执行程序代码,所述可执行程序代码包括指令。处理器110通过运行存储在内部存储器121的指令,从而执行电子设备100的各种功能应用以及本申请实施例中的蜂窝网络的控制方法。内部存储器121可以包括存储程序区和存储数据区。其中,存储程序区可存储操作系统,至少一个功能所需的应用程序(比如声音播放功能,图像播放功能等)等。存储数据区可存储电子设备100使用过程中所创建的数据(比如音频数据,电话本等)等。此外,内部存储器121可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件,闪存器件,通用闪存存储器(universalflash storage,UFS)等。

电子设备100可以通过音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,以及应用处理器等实现音频功能。例如音乐播放,录音等。

音频模块170用于将数字音频信息转换成模拟音频信号输出,也用于将模拟音频输入转换为数字音频信号。音频模块170还可以用于对音频信号编码和解码。在一些实施例中,音频模块170可以设置于处理器110中,或将音频模块170的部分功能模块设置于处理器110中。

按键190包括开机键,音量键等。按键190可以是机械按键。也可以是触摸式按键。电子设备100可以接收按键输入,产生与电子设备100的用户设置以及功能控制有关的键信号输入。

马达191可以产生振动提示。马达191可以用于来电振动提示,也可以用于触摸振动反馈。例如,作用于不同应用(例如拍照,音频播放等)的触摸操作,可以对应不同的振动反馈效果。作用于显示屏194不同区域的触摸操作,马达191也可对应不同的振动反馈效果。不同的应用场景(例如:时间提醒,接收信息,闹钟,游戏等)也可以对应不同的振动反馈效果。触摸振动反馈效果还可以支持自定义。

指示器192可以是指示灯,可以用于指示充电状态,电量变化,也可以用于指示消息,未接来电,通知等。

SIM卡接口195用于连接SIM卡。SIM卡可以通过插入SIM卡接口195,或从SIM卡接口195拔出,实现和电子设备100的接触和分离。电子设备100可以支持1个或N个SIM卡接口,N为大于1的正整数。SIM卡接口195可以支持Nano SIM卡,Micro SIM卡,SIM卡等。同一个SIM卡接口195可以同时插入多张卡。所述多张卡的类型可以相同,也可以不同。SIM卡接口195也可以兼容不同类型的SIM卡。SIM卡接口195也可以兼容外部存储卡。电子设备100通过SIM卡和网络交互,实现通话以及数据通信等功能。在一些实施例中,电子设备100采用eSIM,即:嵌入式SIM卡。eSIM卡可以嵌在电子设备100中,不能和电子设备100分离。

电子设备100的软件系统可以采用分层架构,事件驱动架构,微核架构,微服务架构,或云架构。本申请实施例以分层架构的Android系统为例,示例性说明电子设备100的软件结构。

图2是本申请实施例的电子设备100的软件结构框图。

电子设备100的分层架构将软件分成若干个层,每一层都有清晰的角色和分工。层与层之间通过软件接口通信。在一些实施例中,将Android系统分为四层,从上至下分别为应用程序层,应用程序框架层,安卓运行时(Android runtime)和系统库,以及内核层。

应用程序层可以包括一系列应用程序包。

如图2所示,应用程序包可以包括相机,图库,日历,通话,地图,导航,WLAN,蓝牙,音乐,视频,短信息等应用程序。

应用程序框架层为应用程序层的应用程序提供应用编程接口(applicationprogramming interface,API)和编程框架。应用程序框架层包括一些预先定义的函数。

如图2所示,应用程序框架层可以包括窗口管理器,内容提供器,视图系统,电话管理器,资源管理器,连接服务模块(ConnectivityService,CS)以及功耗控制模块等。

窗口管理器用于管理窗口程序。窗口管理器可以获取显示屏大小,判断是否有状态栏,锁定屏幕,截取屏幕等。

内容提供器用来存放和获取数据,并使这些数据可以被应用程序访问。所述数据可以包括视频,图像,音频,拨打和接听的电话,浏览历史和书签,电话簿等。

视图系统包括可视控件,例如显示文字的控件,显示图片的控件等。视图系统可用于构建应用程序。显示界面可以由一个或多个视图组成的。例如,包括短信通知图标的显示界面,可以包括显示文字的视图以及显示图片的视图。

电话管理器用于提供电子设备100的通信功能。例如通话状态的管理(包括接通,挂断等)。

资源管理器为应用程序提供各种资源,比如本地化字符串,图标,图片,布局文件,视频文件等等。

通知管理器使应用程序可以在状态栏中显示通知信息,可以用于传达告知类型的消息,可以短暂停留后自动消失,无需用户交互。比如通知管理器被用于告知下载完成,消息提醒等。通知管理器还可以是以图表或者滚动条文本形式出现在系统顶部状态栏的通知,例如后台运行的应用程序的通知,还可以是以对话窗口形式出现在屏幕上的通知。例如在状态栏提示文本信息,发出提示音,电子设备振动,指示灯闪烁等。

连接服务模块,用于管理电子设备的网络连接,具体处理过程将在下面的实施例中进行详细说明。

功耗控制模块,用于管理应用程序的状态,以及对连接服务模块进行控制,在电子设备开机至关机的全过程中运行。

系统库与运行时层包括系统库和安卓运行时(Android Runtime)。系统库可以包括多个功能模块。例如:表面管理器(surface manager),媒体库(Media Libraries),三维图形处理库(例如:OpenGL ES),2D图形引擎(例如:SGL)等。3D图形库用于实现三维图形绘图,图像渲染,合成和图层处理等。安卓运行时包括核心库和虚拟机。安卓运行时负责安卓系统的调度和管理。核心库包含两部分:一部分是java语言需要调用的功能函数,另一部分是安卓的核心库。应用程序层和应用程序框架层运行在虚拟机中。虚拟机将应用程序层和应用程序框架层的java文件执行为二进制文件。虚拟机用于执行对象生命周期的管理,堆栈管理,线程管理,安全和异常的管理,以及垃圾回收等功能。

表面管理器用于对显示子系统进行管理,并且为多个应用程序提供了2D和3D图层的融合。

媒体库支持多种常用的音频,视频格式回放和录制,以及静态图像文件等。媒体库可以支持多种音视频编码格式,例如:MPEG4,H.264,MP3,AAC,AMR,JPG,PNG等。

三维图形处理库用于实现三维图形绘图,图像渲染,合成,和图层处理等。

2D图形引擎是2D绘图的绘图引擎。

内核层是硬件和软件之间的层。内核层至少包含显示驱动,摄像头驱动,音频驱动,传感器驱动、Modem(调制解调器)。

可以理解的是,图2示出的系统框架层、系统库与运行时层包含的部件,并不构成对电子设备100的具体限定。在本申请另一些实施例中,电子设备100可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。

图3a为示例性示出的手机的网络交互示意图,图3b为示例性示出的本发明实施例的手机的各模块的交互流程示意图,图4为示例性示出与图3a和图3b关联的蜂窝状态和应用状态的示意图。

在对图3a、图3b以及图4进行详细说明之前,这里对图4所示的蜂窝状态和应用状态做简要描述:

蜂窝断开状态:用于表示手机与基站之间的蜂窝通路处于断开的状态;

蜂窝连接状态:用于表示手机与基站之间的蜂窝通路处于连接的状态;

应用处于活动状态(可简称为活动态):用于表示应用处于运行状态,该活动态可以包括但不限于前台运行、或后台运行等。

其中,前台运行可包括但不限于:

作为唯一一个前台运行的应用在前台运行的场景,例如图9(1)中手机前台界面只包括浏览器应用的新闻界面501,浏览器应用作为唯一一个前台运行的应用。

作为至少两个前台运行的应用中的一个应用的场景,例如画中画内的应用界面对应的应用是前台运行情况,再如悬浮窗内的应用界面对应的应用是前台运行的情况等。

应用处于冷冻状态(可简称为冷冻态):一种方式可以以doze(瞌睡、休眠)状态来描述冷冻状态;另一种方式还可以以应用在进入后台(作为后台应用)后,在后台保持运行的预定时长内,没有与任何模块进行数据交互(例如不再调用CPU)从而没有产生任何应用数据来描述应用的该状态。

其中,应用数据用于表示应用程序所生成的任意数据。

示例地,例如音乐应用从前台切换至后台后,音乐应用可以继续与音频驱动进行数据交互,而产生音频数据。例如音乐应用在后台继续播放音乐,则音乐应用在后台仍旧处于活动态,属于在后台运行的情况。

示例地,例如浏览器应用从前台切换至后台后,超过30s,浏览器应用没有产生应用数据,则可以确定浏览器应用在后台处于冷冻态,属于在后台不运行的情况。

下面结合图3a、图3b和图4,对应用的网络使用流程作具体说明。

参照图3a(1),以电子设备为手机为例,在手机的蜂窝的数据开关和Wi-Fi的数据开关均开启的情况下,如果手机与路由器通过Wi-Fi数据连接,为了节省因使用蜂窝网络而导致的流量耗费过大的问题,手机中安装的应用程序(App,application)默认通过手机连接的Wi-Fi网络来与服务器进行数据交互,并不申请蜂窝网络,使得手机的蜂窝网络为蜂窝断开状态。

参照图4,在t0~t1(不包括t1时刻)时间段内,手机按照图3a(1)的方式,与路由器通过Wi-Fi数据连接,而没有与基站进行蜂窝通路的连接,手机在t0~t1时间段内蜂窝状态为蜂窝断开状态。其中,手机的应用程序1、应用程序2均处于活动状态,例如应用程序1、应用程序2均在前台运行,并使用Wi-Fi网络与服务器进行数据通信。

继续参照图4,在t1时刻,虽然手机与路由器通过Wi-Fi数据连接,但是应用程序1因满足预设条件而需要申请使用蜂窝网络,该预设条件可以包括但不限于:业务需要,Wi-Fi信号质量差,Wi-Fi通路被占用的较多导致数据传送较慢,需要传送加密性数据等。

应用程序1在申请使用蜂窝网络时,如图3b所示,应用程序1可以向连接服务模块(下文称连接服务模块)发送第一蜂窝请求。

示例地,连接服务模块可以将接收到的来自应用程序1的第一蜂窝请求保存在第一数据结构中,其中,第一数据结构可以用于存储主动申请蜂窝的应用的蜂窝请求。示例地,每个应用的蜂窝请求的请求序列号唯一,不同应用的蜂窝请求的请求序列号不同。

本文所述的数据结构(可包括这里的第一数据结构以及后文所述的第二数据结构)可以包括但不限于:链表、数组、向量、XML文件、变量、键值对、队列、栈、树、堆、散列表等。

示例性地,这里的第一数据结构可以是链表,蜂窝请求可以存储在链表中。

示例地,该第一蜂窝请求可以包括但不限于以下参数:所申请网络的类型(这里为蜂窝网络)、用于标识应用程序1的应用类型(例如是否是第三方应用)的应用类型标识、包名等。

如图3b所示,连接服务模块在接收到第一蜂窝请求之后,可以指示Modem建立蜂窝连接;

Modem可以响应于该指示来打开与蜂窝相关的射频,以使Modem与基站之间建立蜂窝连接。示例地,Modem可以发送用于打开与蜂窝相关的射频的命令至硬件侧的调制解调处理器,调制解调处理器可以发送射频信号来与基站建立蜂窝连接。如图3a(2)所示,手机不仅与路由器通过Wi-Fi数据连接,手机还与基站之间建立了蜂窝连接(即手机与基站之间的蜂窝通路处于连接状态),以使手机支持双网通信。

参照图4,在t1时刻之后,手机不仅与路由器通过Wi-Fi数据连接,还与基站之间建立蜂窝连接。示例地,应用程序1在t1时刻申请蜂窝之后,手机的蜂窝状态从蜂窝断开状态切换到蜂窝连接状态。

参照图4,在t1时刻,应用程序1申请蜂窝使手机与基站之间建立了蜂窝连接,也即,手机的Modem与基站之间的蜂窝通路被开启而处于连接状态。相应的,连接服务模块可以控制将应用程序1使用的网络通路从与Wi-Fi通路连接,切换到与蜂窝通路连接,应用程序1在t1时刻开始可以使用蜂窝通路进行数据通信。

继续参照图3b和图4,应用程序2在开始活动之后,在t2时刻之前,应用程序2可以使用Wi-Fi通路进行数据通信;在t2时刻应用程序2满足预设条件(例如Wi-Fi信号质量差,该预设条件还可以包括上文所列举的其他条件,这里不再赘述),使用蜂窝网络,但是应用程序2没有向连接服务模块发送蜂窝请求,而是向连接服务模块发送监听请求。该监听请求用于监听Modem与基站之间的蜂窝通路是否被开启,即监听蜂窝状态;连接服务模块可以响应于该监听请求,监听Modem与基站之间的蜂窝通路是否开启,如果没有开启,则连接服务模块继续监听Modem;如果连接服务模块从Modem处监听到与蜂窝相关的射频已打开,说明Modem与基站之间已经建立了蜂窝连接,手机与基站之间的蜂窝通路已开启。本示例中,由于在t1时刻因应用程序1申请蜂窝而使手机与基站之间的蜂窝连接已经建立,相应的,连接服务模块可以在t2时刻将应用程序2所使用的网络通路,从与Wi-Fi通路连接,切换到与蜂窝通路连接。从图4可以看到,应用程序2从t2时刻开始使用蜂窝通路进行数据通信。

可选地,在另一个实施例中,应用程序2也可以在启动后,就发送监听请求至连接服务模块,那么应用程序2就可以在应用程序1申请蜂窝的t1时刻就开始使用蜂窝通路进行数据通信。

可选地,在另一个实施例中,在Modem与基站建立蜂窝连接之后,可以将表示蜂窝状态为蜂窝连接状态的状态值上报至连接服务模块,那么连接服务模块可以存储蜂窝的状态值,以及根据蜂窝状态的变化,来更新该状态值。那么在t1时刻,应用程序1申请蜂窝使手机与基站之间建立了蜂窝连接,连接服务模块可以从存储的蜂窝的状态值,来确定Modem与基站之间的蜂窝通路是否开启,如果状态值为表示蜂窝连接状态的取值,则说明该蜂窝通路已开启;如果状态值为表示蜂窝断开状态的取值,则说明该蜂窝通路处于关闭状态,即未开启。那么连接服务模块就可以不通过监听的方式,来获取蜂窝状态信息。

参照图4,在t3时刻,应用程序1从活动态切换至冷冻态。例如浏览器应用在前台运行时,用户通过点击手机的home按键,将浏览器应用切换至后台运行,在浏览器应用在后台中超过30s没有产生任何数据,则确定应用程序1在此刻(即t3时刻)处于冷冻态。

从图4可以看出,应用程序1在t1~t3时间段内可以使用蜂窝通路进行数据通信,在t3时刻应用程序1冷冻之后,应用程序1不再需要使用蜂窝通路进行数据通信。

应用程序1在t1时刻申请蜂窝之后,手机的蜂窝状态一直处于连接状态,即使在t3时刻应用程序1从活动态切换至冷冻态,该蜂窝状态也没有发生变化。那么应用程序2可以在t2时刻之后持续使用蜂窝通路进行数据通信,从而造成在t3时刻之后,因应用程序2持续使用蜂窝通路而导致蜂窝持续耗电的问题。在双网并发场景下,当某些应用申请蜂窝网络而使用蜂窝网络后,待申请蜂窝的应用冷冻后,会导致一些没有申请蜂窝网络的应用因使用蜂窝网络与应用服务器进行数据交互,而导致手机耗电量增加的问题。

示例地,地图应用、视频应用原本都在使用Wi-Fi网络进行数据通信,地图应用因业务需要而申请蜂窝网络,使得手机的蜂窝通路被开启,将地图应用所使用的网络从Wi-Fi网络切换到蜂窝网络;那么在用户将地图应用从前台运行切换到后台运行之后,如果地图应用在进入后台后的一段时间内没有产生任何交互数据,例如地图应用没有和CPU交互,也没有触发任何动作,则说明地图应用在后台处于冷冻态,使得地图应用暂停使用蜂窝网络。但是手机的该蜂窝通路已经被开启,视频应用则可以在不申请蜂窝的前提下,将所使用的网络从Wi-Fi网络切换到蜂窝网络,从而导致在地图应用冷冻后,视频应用可以消耗较多的蜂窝流量,造成手机持续耗电。

那么为了能够在双网并发场景下减少一些不必要的应用程序去使用蜂窝网络,从而降低因应用程序使用蜂窝网络而造成的耗电量,本发明实施例提供了一种蜂窝网络控制方法。

图5a为本申请实施例提供的一种蜂窝网络控制方法的整体流程示意图。

参照图5a,具体包括:

连接服务模块检测到应用程序1从活动态切换至冷冻态,执行S601;

S601,连接服务模块检测到应用程序1为申请过蜂窝网络的预设应用中最后一个从所述活动态切换至冷冻态的应用。

换言之,应用程序1为最后一个申请过蜂窝网络且使用过蜂窝网络的应用,其中,应用程序1可以在从活动态切换至冷冻态之前,在活动态申请并使用过蜂窝网络。

可选地,在S601之后,S604之前,该方法还可包括:S602。

S602,连接服务模块对第一数据结构中应用程序1的第一蜂窝请求进行备份。

可选地,在S602之后,S604之前,该方法还可包括:S603。

S603,连接服务模块将所述第一蜂窝请求从第一数据结构中删除。

S604,连接服务模块指示Modem断开蜂窝连接。

在应用程序1处于冷冻态之后,连接服务模块检测到应用程序1从冷冻态态切换至活动态,可执行S701。

S701,连接服务模块指示Modem建立蜂窝连接。

在应用程序1处于冷冻态之后,连接服务模块检测到应用程序1从冷冻态态切换至关闭态(即应用程序1的进程关闭),可执行S801。

S801,连接服务模块删除备份的应用程序1的所述第一蜂窝请求。

在应用程序1处于冷冻态之后,功耗控制模块自检发生异常,可执行S901。

S901,连接服务模块将备份过的蜂窝请求恢复至第一数据结构,以及删除备份的蜂窝请求。

示例性的,连接服务模块可将备份过的全部申请过蜂窝网络的应用的蜂窝请求,重新写入第一数据结构,并将备份的全部申请过蜂窝网络的应用的蜂窝请求进行删除。

S902,连接服务模块指示Modem建立蜂窝连接。

图5b~图8为本申请各个实施例提供的蜂窝网络控制方法的流程示意图。

下面结合图5b~图8,来对图5a的方法进行详细阐述。

参照图5b,具体包括:

S100,连接服务模块判断手机是否存在Wi-Fi数据连接;

示例地,连接服务模块可以判断手机是否通过Modem与路由器连接。

例如,手机通过Modem与路由器连接,则说明手机存在Wi-Fi数据连接,如果手机的Modem没有与路由器连接,则说明手机不存在Wi-Fi数据连接;

其中,在手机存在Wi-Fi数据连接的情况下,手机中的应用可通过Wi-Fi网络与应用服务器进行数据交互,其中,在手机中的应用申请过蜂窝网络的情况下,手机不仅可通过Wi-Fi网络与应用服务器进行数据交互,还可通过蜂窝网络与应用服务器进行数据交互,使手机处于双网连接的环境中。

示例性地,应用程序1申请过蜂窝网络,应用程序1与应用程序1的服务器通过蜂窝网络进行交互,应用程序3、应用程序4通过Wi-Fi网络与各自的应用服务器进行数据交互。

在手机不存在Wi-Fi数据连接的情况下,考虑到手机只连接蜂窝网络进行网络通信,如果手机采用本申请实施例的方法进行蜂窝网络控制,会使手机因申请过蜂窝的应用的状态变化(即从活动态切换至冷冻态)而与基站之见的蜂窝连接断开,不利于用户对蜂窝网络的使用,因此,手机不进行蜂窝网络控制,流程直接结束。

示例地,连接服务模块可以存储Wi-Fi的状态值,该状态值包括用于表示手机与路由器之间是否存在Wi-Fi数据连接的状态值,例如包括表示Wi-Fi连接状态的状态值和表示Wi-Fi断开状态的状态值。那么连接服务模块可以通过查询存储的Wi-Fi的状态值,来确定手机是否存在Wi-Fi数据连接。

当然,对于连接服务模块判断手机是否存在Wi-Fi数据连接的方式并不限于上述举例,还可以包括已知的其他判断方式。

在连接服务模块确定手机存在Wi-Fi数据连接的情况下,示例地,在手机连接了家里的路由器能够进行无线上网的情况下,那么连接服务模块可以在应用程序1从活动态切换到冷冻态的情况下转至执行S101,否则直接结束。

其中,连接服务模块可以从功耗控制模块获取到应用程序1从活动态切换至冷冻态的信息。其中,连接服务模块可以从功耗控制模块获取到关于应用的各种状态信息。

示例地,功耗控制模块在检测到应用程序1从前台运行切换为后台后,应用程序1在后台可以保持运行,也可以不再产生任何动作而不产生应用数据进而保持冷冻态。本示例中,如果功耗控制模块检测到应用程序1从前台切换到后台,并且保持在后台运行的预定时长(例如30s,可以根据实际需求设置,本申请不做限制)内均没有产生应用数据,则可以确定应用程序1从活动态切换至冷冻态。当然,确定应用从活动态切换至冷冻态的方式不限于本示例。

那么在功耗控制模块检测到应用程序1从该活动态切换至冷冻态后,可以将应用程序1的状态变化通知连接服务模块。

对于申请蜂窝的应用从活动态切换至冷冻态的过程,图9为示例性示出的应用场景示意图。

参照图9(1),手机显示了浏览器应用的新闻界面501,该新闻界面501包括一个或多个控件,该控件的实现方式可以包括但不限于:图标、按钮、窗口、图层等。

如图9(1)所示,新闻界面501中的控件包括但不限于网络图标502、电池图标和时间图标等。

在图9中,手机系统设置中的Wi-Fi网络开关和5G蜂窝网络开关均处于开启状态,相应的,网络图标502可以包括5G蜂窝网络图标5021和Wi-Fi网络图标5022。可选地,如果Wi-Fi网络开关被关闭,则网络图标502中不再显示Wi-Fi网络图标5022;可选地,如果5G蜂窝网络开关被关闭,则网络图标502中不再显示5G蜂窝网络图标5021。

在其他实施例中,蜂窝网络图标所指示的蜂窝网络也可以是2G、3G、4G蜂窝网络、以及高于5G级别的蜂窝网络,本申请对此不做限制。

在本申请实施例中,例如视频应用在使用Wi-Fi网络进行数据通信,那么在图9(1)中,Wi-Fi网络图标5022包括Wi-Fi数据的上下行标识50221;而浏览器应用在手机前台运行过程中,因业务需求,申请并使用了蜂窝网络,使得手机与5G基站建立了蜂窝连接。那么5G蜂窝网络图标5021中还包括5G蜂窝网络的上下行标识50211。当然,在其他实施例中,不论是5G蜂窝网络的上下行标识50211,还是Wi-Fi网络的上下行标识50221均可以替换为上行标识或下行标识。

其中,上行标识用于表示包括从手机到应用服务器方向上传的网络数据,下行标识用于表示包括从应用服务器到手机方向下载的网络数据,上下行标识则用于标识包括手机与应用服务器双方向的网络数据的交互。

在图9(1)中,用户可以从新闻界面501的底部边缘,按照箭头方向在新闻界面501上进行向上滑动操作,手机可以接收该滑动操作,并响应于该滑动操作,将手机的显示界面从新闻界面501切换至图9(2)所示的程序界面503。

其中,该程序界面503可以包括一个或多个控件,该控件的具体实现方式可以包括但不限于:图标、按钮、窗口、图层等。

程序界面503包括但不限于:浏览器应用的新闻界面501的缩略图504、信息应用的通讯界面的缩略图506,当然,程序界面503中的应用并不限于这里举例的两个应用,还可以包括更多的应用;显示在程序界面503中每个缩略图下方的删除图标505;显示在所述缩略图上方的应用图标和应用名称,例如缩略图504对应的应用名称为浏览器,缩略图506对应的应用名称为信息;显示在所述缩略图上方的悬浮窗口控件507;以及网络图标502、电池图标和时间图标。其中,关于网络图标502及其内部的具体图标,以及电池图标和时间图标的解释可以参照图9(1)的描述,这里不再赘述。

如图9(2)所示,显示在缩略图504下方的删除图标505,用于响应于用户操作来关闭程序界面503中所有启动的应用的进程。

浏览器应用的缩略图504上方的悬浮窗口控件507,用于响应于用户操作,将浏览器应用的新闻界面501在悬浮窗口中显示。

继续参照图9(2),在程序界面503,用户对信息应用的通讯界面的缩略图506进行手指单击操作,则手机可以响应于该手指单击操作,将信息应用从后台应用切换到前台应用来运行,而浏览器应用则从前台应用切换为后台应用,手机的显示界面从程序界面503切换至如图9(3)所示的信息应用的通讯界面508。

其中,后台应用可以产生应用数据而处于活动态,例如视频应用在下载视频;后台应用还可以不产生任何数据流而处于冷冻态,例如在图9(3)中,浏览器应用从前台应用切换为后台应用。

示例地,通讯界面508可以包括一个或多个控件,该控件的具体实现方式可以包括但不限于:图标、按钮、窗口、图层等。

通讯界面508包括但不限于网络图标502、电池图标和时间图标等。关于网络图标502及其内部的具体图标、以及电池图标和时间图标的解释可以参照图9(1)的描述,这里不再赘述。

示例地,浏览器应用作为后台应用在进入后台之后,可以不立即从活动态切换至冷冻态。从图9(1)、图9(2)、图9(3)可以看出,5G蜂窝网络图标5021中仍旧显示有上下行标识50211。示例地,在浏览器应用在图9(1)中作为前台应用,在图9(3)中切换为后台应用之后,如果功耗控制模块检测到浏览器应用进入后台(即从显示图9(3)的通讯界面508开始)后持续30s内没有任何动作也没有产生数据,则连接服务模块可以确定浏览器应用从活动态切换至冷冻态。

继续参照图5b的流程示意图,在应用程序1从活动态切换至冷冻态之后,该方法继续包括:

S101,连接服务模块判断应用程序1是否申请过蜂窝网络;

可选地,在应用程序1从活动态切换至冷冻态后,连接服务模块还可以判断应用程序1是否是第三方应用。

在应用程序1是第三方应用以及申请过蜂窝网络的情况下,转至S102。

示例地,连接服务模块可以根据预设应用列表,或者根据应用程序的系统级别的应用类型标识,来判断应用程序1是否是第三方应用。

示例地,预设应用列表可以包括第三方应用的包名信息,或者包括系统应用的包名信息,从而可以通过将应用程序1的包名与预设应用列表中的包名进行比对,来判断该应用程序1是否属于第三方应用;

示例地,第三方应用还可以具有上文所述的应用类型标识,用于标识该应用是否是第三方应用。

示例地,可以将手机预装的不可以删除的应用作为系统应用,将除该系统应用之外的应用作为第三方应用。

例如,连接服务模块通过获取应用程序1的应用类型标识,可以确定应用程序1是否为第三方应用。

对于连接服务模块判断应用程序1是否申请过蜂窝网络,参照对图3b中应用程序1申请蜂窝的流程可知,应用程序1在向连接服务模块申请蜂窝后,连接服务模块可以将应用程序1的第一蜂窝请求保存到第一数据结构。那么连接服务模块可以通过查询第一数据结构中是否存在应用程序1的第一蜂窝请求,来确定应用程序1是否申请过蜂窝。如果第一数据结构中存在应用程序1的第一蜂窝请求,则连接服务模块确定应用程序1申请过蜂窝网络;相反,如果第一数据结构中不存在应用程序1的第一蜂窝请求,则连接服务模块确定应用程序1没有申请过蜂窝网络。

由于每个应用的蜂窝请求的请求序列号唯一,且不同应用的蜂窝请求的请求序列号不同。那么连接服务模块可以依据第一数据结构中保存的蜂窝请求的请求序列号,来确定应用程序1所发起的蜂窝请求。

可选地,在一种实施方式中,如果连接服务模块确定应用程序1不是第三方应用,例如为一个系统应用,或者,应用程序1没有申请过蜂窝网络,或者,应用程序1为系统应用且没有申请过蜂窝网络,则直接转至应用程序1处于冷冻态,即不需要做本申请实施例的方法的处理。

在本申请实施例中,只有第三方应用(非系统应用)主动申请蜂窝网络进行通信,本申请实施例的连接服务模块才会对该第三方应用所申请过的蜂窝网络进行回收,并断开蜂窝连接,来避免其他未申请蜂窝的应用使用该蜂窝网络而造成耗电的问题。考虑到系统应用,所面临的业务是系统层面的,该系统层面的业务更加关键。在系统应用申请蜂窝后,连接服务模块可以不对系统应用做蜂窝连接的回收和断开蜂窝连接的管控。其中,关于连接服务模块对蜂窝连接的回收的处理可以包括连接服务模块将蜂窝请求从原始的第一数据结构中删除。

可选地,在另一种实施方式中,如果连接服务模块确定应用程序1不仅是第三方应用,而且还申请过蜂窝网络,则转至执行S102;

可选地,在又一种实施方式中,连接服务模块可以不对应用程序1进行是否是第三方应用的判断,换言之,不论应用程序1是否是第三方应用,只要应用程序在从活动态切换至冷冻态之前,在活动态申请过蜂窝网络,本申请实施例的方法,就可以对应用的蜂窝请求进行回收以及进行断开蜂窝连接的管控。

可选地,S102,连接服务模块将应用程序1的第一蜂窝请求从原始的第一数据结构备份至第二数据结构;

示例性地,第二数据结构可以是一个链表。连接服务模块可将第一蜂窝请求从原始的链表中备份到另一个链表中。

其中,应用程序1在处于活动态向连接服务模块申请蜂窝时,连接服务模块可以将应用程序1的第一蜂窝请求保存至原始的第一数据结构;那么在应用程序1从活动态切换至冷冻态后,则连接服务模块可以将第一蜂窝请求从第一数据结构备份至第二数据结构。

连接服务模块将第一蜂窝请求备份至第二数据结构的目的在于,在应用程序1从冷冻态切换会活动态后,连接服务模块可以利用备份的第一蜂窝请求来对回收的蜂窝请求进行恢复,并对手机与基站之间断开的蜂窝连接进行重新建立。关于连接服务模块对蜂窝连接的恢复的处理可以包括:连接服务模块将从原始的第一数据结构中删除的蜂窝请求重新写入第一数据结构。

示例地,第一数据结构和第二数据结构可以为相同类型的数据结构或者不同类型的数据结构。

如上文所述,数据结构可以包括但不限于:链表、数组、向量、XML文件、变量、键值对、队列、栈、树、堆、散列表等。

在一个示例中,第一数据结构和第二数据结构的类型不同,例如第一数据结构可以是链表,第二数据结构可以是队列。

在另一个示例中,第一数据结构和第二数据结构的类型相同,例如第一数据结构可以是链表,第二数据结构可以是另一个链表。

在应用主动申请蜂窝时,连接服务模块可以将该应用的蜂窝请求保存在第一数据结构中。在第一数据结构中存在蜂窝请求的情况下,手机和基站才会建立蜂窝连接;相反,如果第一数据结构中不存在蜂窝请求,则手机与基站之间的蜂窝连接需要断开。

可选地,S103,连接服务模块将第一蜂窝请求从原始的第一数据结构删除;

其中,为了释放蜂窝网络,连接服务模块可以将应用程序1的第一蜂窝请求从第一数据结构中删除。

可选地,连接服务模块中的第一数据结构可以包括一个或多个数据结构。

其中,多个第一数据结构的类型可以相同或不同。

示例性地,第一数据结构可以是链表,多个第一数据结构的类型相同,那么第一蜂窝请求可以存储在一个或多个链表中。

示例性地,多个第一数据结构可以包括但不限于:连接服务模块中的第一链表、与第一蜂窝请求对应的nai(也是一种链表)、networkFactory(一种链表)。

那么连接服务模块在将第一蜂窝请求从原始的第一数据结构删除时,可将从原始的多个链表中所存储的关于第一蜂窝请求的信息进行删除。示例性地,连接服务模块可以从第一链表删除第一蜂窝请求,移除第二链表内与第一蜂窝请求对应的nai,移除第三链表内包括第一蜂窝请求的networkFactory。

S104,连接服务模块判断第一蜂窝请求是否是最后一个蜂窝请求;

在不同场景下,可能存在一个或多个应用,通过主动申请蜂窝的方式来使用蜂窝网络。那么,在存在多个应用通过主动申请蜂窝的方式来使用了蜂窝网络时,则每个主动申请蜂窝网络的应用都可以在申请蜂窝时,发送该应用的蜂窝请求至连接服务模块,使得连接服务模块的第一数据结构中可以保存有多个应用的蜂窝请求。考虑到在存在多个应用申请蜂窝的场景下,不能因为单个应用从活动态切换到冷冻态,就直接将手机与基站之间的蜂窝连接断开。那么连接服务模块在断开蜂窝连接之前,可进行S104的判断步骤。

示例地,连接服务模块可以通过查询第一数据结构来确定第一数据结构是否存在蜂窝请求。如果第一数据结构中不存在任何一个蜂窝请求,则连接服务模块可以确定第一蜂窝请求是最后一个蜂窝请求,换言之,所有主动申请蜂窝网络的应用程序都已经从活动态切换至冷冻态;如果查询到第一数据结构中存在至少一个蜂窝请求,则连接服务模块可以确定第一蜂窝请求不是最后一个蜂窝请求,换言之,还存在除应用程序1之外的其他应用程序在活动态申请过蜂窝网络且使用蜂窝网络与应用服务器进行数据交互,并且这些其他应用程序还处于活动态。

可选地,如果第一数据结构的数量为多个,则连接服务模块需要遍历每个第一数据结构来确定第一数据结构中是否均不存在蜂窝请求,如果多个第一数据结构中均不存在蜂窝请求,则确定第一蜂窝请求是最后一个蜂窝请求。

如果连接服务模块判断第一蜂窝请求是最后一个蜂窝请求,即所有申请蜂窝的应用都已经从活动态切换至冷冻态,则连接服务模块可以指示Modem关闭蜂窝网络,换言之,断开Modem与基站之间的蜂窝连接。

如果连接服务模块判断除第一蜂窝请求之外第一数据结构中还存在蜂窝请求,即并不是所有申请蜂窝网络的应用都处于冷冻态,则直接进入应用程序1处于冷冻态,本申请不再做处理。

在本申请实施例中,在所有申请蜂窝的应用都冷冻后,连接服务模块可以断开手机与基站之间的蜂窝连接,这样可以确保在部分申请蜂窝的应用冷冻后,不影响其他处于活动态的已申请蜂窝的应用对蜂窝网络的使用。

本实施例中,在连接服务模块判断第一蜂窝请求是最后一个蜂窝请求的情况下,则执行S106;

另外,需要说明的是,在存在多个应用主动申请蜂窝时,则在首个应用主动申请蜂窝后,Modem与基站之间建立了蜂窝通路。待其他应用(例如应用程序3)再向连接服务模块主动申请蜂窝时,连接服务模块无需再指示Modem与基站建立蜂窝连接。连接服务模块可以将应用程序3使用的网络通路连接到上述建立的蜂窝通路,来使应用程序3使用蜂窝网络与应用服务器进行数据交互。

可选地,在大多数场景下,大多数应用在需要使用蜂窝网络时,如果应用确定手机与基站之间的蜂窝通路已经开启,就直接使用该蜂窝通路,而不再向连接服务模块主动申请蜂窝网络,相应的,主动申请蜂窝网络的应用的数量一般不超过3个。

可选地,在S106之前,根据本申请实施例的方法还可包括S105。

S105,连接服务模块判断网络是否满足第一预设条件;

其中,连接服务模块在确定第一蜂窝请求是最后一个蜂窝请求的情况下,在指示Modem断开与基站之间的蜂窝连接之前,连接服务模块可以做本步骤所表示的网络评估,只有在网络评估满足条件的情况下,连接服务模块才会执行S106,否则直接跳转到应用程序1处于冷冻态,本申请不再做处理。

这里连接服务模块在进行网络评估时,评估的内容可以包括但不限于以下至少一项:

评估内容1:连接服务模块判断手机网络是否可以从Wi-Fi和蜂窝的双连接切换为Wi-Fi单连接。考虑到从双连接切换到单连接,可能会存在网络无法正常切换的情况,因此,需要评估是否可以做网络的正常切换;

评估内容2:连接服务模块判断Wi-Fi单连接是否可用。

例如Wi-Fi信号质量极差,而手机无法使用Wi-Fi连接进行数据通信。也就是说,虽然手机连接着某个局域网的Wi-Fi,但是可能该Wi-Fi网络并无法进行网络通信,使手机的Wi-Fi连接不可用;

再如,虽然在应用程序1从活动态切换至冷冻态时,手机连接着Wi-Fi网络,但是,可能在连接服务模块执行图5b的流程过程中,系统设置中的Wi-Fi数据开关被用户关闭,导致Wi-Fi连接不可用。

那么只有在连接服务模块评估网络可以从双连接正常切换到单连接、且单连接可用的情况下,连接服务模块才会执行S106。

在本申请实施例中,连接服务模块在指示Modem断开手机与基站之间的蜂窝连接之前,连接服务模块可以进行网络评估,在评估网络可以满足第一预设条件的情况下,才指示Modem断开与基站之间的蜂窝连接。可以确保手机从Wi-Fi和蜂窝的双连接下切换到Wi-Fi单连接时,断开蜂窝连接不会影响Wi-Fi通路的通信,且手机可以使用Wi-Fi通路进行上网络通信,保证手机在Wi-Fi下上网不受到断开蜂窝连接的影响。

S106,连接服务模块指示Modem断开蜂窝连接;

示例地,连接服务模块可以调用rematch来实现本步骤。其中,rematch用向Modem发送表示断开蜂窝连接的命令。

这样,Modem在接收到连接服务模块发送的上述命令之后,可以关闭与蜂窝相关的射频,从而断开手机的Modem与基站之间的蜂窝连接。

在S106之后,转至应用程序1处于冷冻态,结束流程。

示例地,继续回到图9,依次参照图9(1)、图9(2)图9(3),在浏览器应用从前台应用切换至后台应用而显示图9(3)的界面后,经过预定时长(例如30s)浏览器应用没有任何操作,则说明浏览器应用从活动态进入冷冻态,从而执行图5b所示的流程。在用户角度,在手机显示图9(3)的界面之后,经过一段时间(例如30s)则切换至图9(4)所示的界面,对比图9(3)和图9(4)可以发现,主动申请蜂窝网络的浏览器应用从活动态切换至冷冻态,使得上述Modem断开了与基站之间的蜂窝连接,因此手机与基站之间不再存在5G蜂窝数据的交互,从图9(4)可以看出,5G蜂窝网络图标5021中的上下行标识50211不再显示。

考虑到在Wi-Fi通路启动的场景下,如果应用再连接蜂窝网络,则蜂窝网络会占用资源,从而导致应用使用蜂窝连接而导致手机耗电量增大很多,那么为了在双网并发场景下减少一些不必要应用去使用蜂窝网络,从而降低因应用使用蜂窝网络而造成的耗电量增大的问题。在本申请实施例中,在主动申请蜂窝网络的应用从活动态切换至冷冻态后,手机可以对该应用的蜂窝请求进行回收以及断开手机与基站之间的蜂窝连接,从而在该应用冷冻后,其他未申请蜂窝的应用无法继续使用该蜂窝连接,进而节省因应用使用蜂窝网络而带来的耗电量,达到节省手机电量的效果。

需要说明的是,本申请对于图5b中S102和S104的执行顺序不做限制。

在一种可能的实施方式中,可以采用图5b所示的蜂窝网络控制方法来对手机进行蜂窝网络控制,图11为示例性示出的经过图5b所示的方法进行蜂窝网络控制后的蜂窝状态和应用状态的示意图。

为了便于理解,可以对比于图4,来看图11,且图11与图4相同之处,可以直接参照图4的描述,下文不再详细阐述。下面介绍图11的蜂窝状态和应用状态的变化。

在图11的实施方式中,在t0~t3时间段内只有一个应用(即应用程序1)主动申请了蜂窝网络。

在t0~t1时间段内应用程序1和应用程序2均处于活动态,例如前台运行,或后台运行等状态。如果应用程序1和应用程序2使用网络与各自的应用服务器进行数据交互,则在t0~t1时间段内可以使用Wi-Fi通路进行数据通信,因此,t0~t1时间段内,蜂窝状态为蜂窝断开状态;

在t1时刻应用程序1申请蜂窝,使得蜂窝在t1时刻开始处于连接状态。那么应用程序1可以在t1时刻开始使用主动申请的蜂窝通路进行数据通信;

在t2时刻应用程序2开始使用应用程序1所申请的蜂窝通路进行数据通信。其中,在t2时刻,原本使用Wi-Fi通路进行数据通信的应用程序2,在未申请蜂窝的情况下,开始使用Modem与基站之间已经建立的蜂窝连接来与应用程序2的应用服务器进行数据通信。从t2时刻开始,应用程序2可以持续使用因应用程序1申请蜂窝而建立的蜂窝通路进行数据通信,直到应用程序1从活动态切换至冷冻态;

在t3时刻,应用程序1从活动态切换至冷冻态,例如应用程序1从在前台运行切换至在后台运行,并在后台运行一段时间后,超过30s没有产生任何应用数据。那么参照图5b的流程可知,本实施方式中,应用程序1的第一蜂窝请求为最后一个蜂窝请求,连接服务模块不仅仅可以将应用程序1的第一蜂窝请求从原始的第一数据结构删除,以达到对蜂窝申请回收的目的,还可以控制Modem断开与基站之间的蜂窝连接。相应的,在图11中,从t3时刻开始,蜂窝处于蜂窝断开状态。由于手机与基站之间的蜂窝通路已经断开,应用程序2只可以在t2~t3时间段内使用应用程序1所申请的蜂窝通路进行数据通信,而无法在应用程序1切换至冷冻态的t3时刻之后,继续使用蜂窝通路进行数据通信,其中,应用程序2在t3时刻如果需要使用网络,则可以使用Wi-Fi网络与其应用服务器进行数据交互。本实施方式中,手机可以在应用程序1从活动态切换至冷冻态时,断开手机的蜂窝连接,避免其他未申请蜂窝的应用继续使用蜂窝连接带来的功耗,从而产生功耗收益。

在另一种可能的实施方式中,可以采用图5b所示的蜂窝网络控制方法来对手机进行蜂窝网络控制,图12为示例性示出的经过图5b所示的方法进行蜂窝网络控制后的蜂窝状态和应用状态的示意图。

为了便于理解,可以对比于图4、图11来看图12,下面详细介绍图12的蜂窝状态和应用状态的变化。

首先,区别于图4和图11的实施方式,在图12中,不仅将应用程序1作为一个主动申请蜂窝的应用,还将应用程序2作为一个主动申请蜂窝的应用,而应用程序3则是未申请蜂窝而直接使用其他应用所申请的蜂窝网络的应用。

其次,在图11中,在应用程序1冷冻(在t3时刻冷冻)之前,只有一个应用(即应用程序1)主动申请了蜂窝网络,在图12的实施方式中,在应用程序1冷冻(在t4时刻冷冻)之前,存在两个应用(这里为应用程序1和应用程序2)主动申请了蜂窝网络。

下面详细介绍图12的流程:

在t0~t1时间段内应用程序1、应用程序2、应用程序3均处于活动状态,例如应用程序1、应用程序2在前台运行,应用程序3在后台运行,如果应用程序1、应用程序2、应用程序3使用网络,则在t0~t1时间段内它们可以使用Wi-Fi通路进行数据通信。那么t0~t1时间段内,手机的蜂窝状态为蜂窝断开状态;

在t1时刻应用程序1申请蜂窝,使得手机的蜂窝状态从t1时刻开始处于蜂窝连接状态,应用程序1在t1时刻开始使用主动申请的蜂窝通路进行数据通信;

在t2时刻应用程序2申请蜂窝,由于在t2时刻之前,应用程序1已经申请了蜂窝,使得Modem与基站之间建立了蜂窝连接。此外,应用程序2在t2时刻申请蜂窝后,应用程序2可以复用因应用程序1申请蜂窝而在Modem与基站之间建立的蜂窝连接进行数据通信。

在t3时刻应用程序3开始使用上述蜂窝连接进行数据通信;

在t4时刻应用程序1从活动态切换至冷冻态,那么手机按照图5b的流程进行处理时,由于手机还接收到了应用程序2的蜂窝请求,那么手机可以确定应用程序1的蜂窝请求(即第一蜂窝请求)并不是最后一个蜂窝请求。那么在t4时刻手机并不会断开Modem与基站之间的蜂窝连接,而仅仅是对第一蜂窝请求进行回收,因此,应用程序3可以在t4时刻之后继续使用该蜂窝通路进行数据通信;而应用程序1则是从申请蜂窝的t1时刻开始至切换至冷冻态的t4时刻这一段时间内使用蜂窝通路进行数据通信。

在t5时刻应用程序2从活动态切换至冷冻态,那么手机按照图5b的流程进行处理时,由于在t0~t5时间段内,主动申请蜂窝的应用程序1和应用程序2均从活动态切换至冷冻态,那么手机可以确定应用程序2的第二蜂窝请求是最后一个还未回收的蜂窝请求。在t5时刻手机可以断开Modem与基站之间的蜂窝连接。其中,在t1~t5时间段内手机的蜂窝状态都是蜂窝连接状态,但是在t5时刻之后,手机的蜂窝状态为蜂窝断开状态。

从t5时刻开始,手机的蜂窝状态为蜂窝断开状态,那么手机与基站之间的蜂窝通路已经断开。从图12可以看出,应用程序3在t3至t5时间段内使用蜂窝通路进行数据通信。应用程序3在t5时刻之后则无法继续使用蜂窝通路进行数据通信;应用程序2在t2至t5时间段内使用蜂窝通路进行数据通信。手机在应用程序2从活动态切换至冷冻态的t5时刻开始产生功耗收益,直至应用程序1和应用程序2中的任意一个应用从冷冻态恢复至活动态。

需要说明的是,对于图11与图4相同或类同之处,图11可以参考图4的说明,同样地,对于图12与图4相同或类同之处,图12可以参考图4的说明,这里不再赘述。

在另一个实施例中,在图5b之后,继续参照图6所示的本发明实施例的蜂窝网络控制方法的流程示意图,参照图6,在图5b的流程之后,在应用程序1从冷冻态切换至活动态的情况下,则可以执行图6所示的流程。

应用进入活动态的方式可以包括应用进程关闭后重启而进入活动态,还可以包括在后台冷冻后重新进入前台或后台运行而处于活动态,那么本发明实施例的图6所示的流程主要对从冷冻态切换至活动态的应用,进行蜂窝连接的恢复和蜂窝通路的开启。

示例地,功耗控制模块可以获取到应用程序1的状态信息,在应用程序1从冷冻态切换到活动态后,功耗控制模块可以将应用程序1的状态变化通知连接服务模块。

例如,功耗控制模块检测到应用程序1在后台超过30s与其他模块没有数据交互之后,功耗控制模块检测到应用程序1切换到前台运行,则可以确定应用程序1从冷冻态切换到活动态。

示例地,对于申请蜂窝的应用从冷冻态切换至活动态的过程,图10为示例性示出的应用场景示意图,接图9的应用场景可知,浏览器应用在图9(4)之后处于冷冻态。在图10中,图10(1)为接图9(4)的示意图。

参照图10(1),手机显示了信息应用的通讯界面508,对于通讯界面508所包括的控件具体参照图9(4)的描述,这里不再赘述。

在图10(1)中,用户通过从通讯界面508的底部边缘,按照箭头方向在通讯界面508上进行向上滑动操作,则手机可以接收该滑动操作,并响应于该滑动操作,将手机的显示界面从通讯界面508切换至图10(2)所示的程序界面509。

其中,该程序界面509可以包括一个或多个控件,该控件的具体实现方式可以包括但不限于:图标、按钮、窗口、图层等。

该程序界面509包括但不限于:后信息应用的通讯界面的缩略图510、浏览器应用的新闻界面的缩略图511,当然,程序界面509中的应用并不限于这里举例的两个应用,还可以包括更多的应用;显示在程序界面509中每个缩略图下方的删除图标505;显示在所述缩略图上方的应用图标和应用名称,例如缩略图510对应的应用名称为信息,缩略图11对应的应用名称为浏览器;显示在所述缩略图上方的悬浮窗口控件507;以及网络图标502、电池图标和时间图标。其中,关于网络图标502及其内部的具体图标、电池图标和时间图标的解释可以参照图10(1)的描述,这里不再赘述。

如图10(2)所示,显示在缩略图510下方的删除图标505,用于响应于用户操作来关闭程序界面503中所有启动的应用的进程。

信息应用的缩略图510上方的悬浮窗口控件507,用于响应于用户操作,将信息应用的显示界面(这里为通讯界面)在悬浮窗口中显示。

从图10(1)和图10(2)可以看出,由于申请蜂窝的浏览器应用处于冷冻态,例如浏览器应用为后台应用,且没有产生任何动作,那么手机通过执行图5实施例的方法的流程,使得手机与基站之间的蜂窝连接被断开,那么在图10(1)和图10(2)中,5G蜂窝网络图标5021中不存在上下行标识50211。

继续参照图10(2),在程序界面509,用户对浏览器应用的新闻界面的缩略图511进行手指单击操作,则手机可以响应于该手指单击操作,将浏览器应用从在后台不产生任何数据的冷冻态切换为前台运行的状态(即活动态),手机的显示界面也从程序界面509切换至如图10(3)所示的浏览器应用的新闻界面501。

在浏览器应用从冷冻态切换至活动态后的情况下,手机中的连接服务模块可以执行图6所示的流程,来指示Modem建立与基站之间的蜂窝连接,在Modem开启与蜂窝相关射频后,可以使手机与基站之间的蜂窝通路被开启。手机在执行图6所示的流程时,执行速度很快,在用户角度,在从图10(2)切换至图10(3)后,用户可以在显示的图10(3)中直接看到5G蜂窝网络图标5021中已经显示有上下行标识50211,该上下行标识50211可以表示手机与基站之间通过二者之间建立的蜂窝连接在进行5G蜂窝数据的交互。

关于图10(3)中的新闻界面501所包括的控件具体参照图9(1)对控件的描述即可,这里不再赘述。

在应用程序1(在图10中,应用程序1为浏览器应用)从冷冻态切换至活动态后,继续参照图6,手机的连接服务模块可以执行S201;

S201,连接服务模块判断应用程序1是否备份过蜂窝请求;

可选地,在应用程序1从冷冻态切换至活动态后,连接服务模块还可判断应用程序1是否是第三方应用。

其中,关于连接服务模块判断应用程序1是否是第三方应用的具体方式可以参照图5b中的具体介绍,这里不再赘述。

关于连接服务模块判断是否备份过应用程序1的蜂窝请求的具体方式,连接服务模块可以通过查询第二数据结构中是否存在应用程序1的蜂窝请求的方式来实现,如果连接服务模块确定第二数据结构中存在应用程序1的第一蜂窝请求,则说明连接服务模块备份过应用程序1的蜂窝请求,如果连接服务模块第二数据结构中不存在应用程序1的第一蜂窝请求,则说明连接服务模块没有备份过应用程序1的蜂窝请求。

可选地,在一种实施方式中,在应用程序1为第三方应用、且连接服务模块备份过应用程序1的蜂窝请求的情况下,则连接服务模块执行S202,否则,直接转至应用程序1处于活动态,结束流程。

可选地,在另一种实施方式中,在连接服务模块备份过应用程序1的蜂窝请求的情况下,则连接服务模块执行S202,否则,直接转至应用程序1处于活动态,结束流程。

S202,连接服务模块将备份的第一蜂窝请求写入原始的第一数据结构;

其中,参照图5b的流程可知,由于应用程序1在从活动态切换到冷冻态后,应用程序1在申请蜂窝时写入至第一数据结构中的第一蜂窝请求已经删除,那么在应用程序1从冷冻态恢复至活动态后,则连接服务模块可以利用第二数据结构中备份的第一蜂窝请求,来将该第一蜂窝请求重新写入第一数据结构,进行蜂窝请求的恢复。

可选地,S203,连接服务模块删除备份的第一蜂窝请求;

其中,连接服务模块可以将第二数据结构中备份的关于应用程序1的蜂窝请求,即第一蜂窝请求进行删除,来节省存储空间。

可选地,S204,连接服务模块判断蜂窝是否处于连接状态;

示例地,连接服务模块中可以存储蜂窝的状态值,例如状态值的取值为1,则表示蜂窝状态为蜂窝连接状态,状态值的取值为0,则表示蜂窝状态为蜂窝断开状态(即不处于连接状态)。连接服务模块可以通过查询该状态值,来确定蜂窝当前是否处于连接状态。

连接服务模块在获取蜂窝的状态值时,可以从Modem处获取。其中,Modem在开启与蜂窝相关的射频后,使得Modem与基站之间建立了蜂窝连接,则Modem可以将表示蜂窝状态为蜂窝连接状态的信息上报至连接服务模块;同理,在Modem关闭与蜂窝相关的射频后,使得Modem与基站之间断开了蜂窝连接,则Modem可以将表示蜂窝为蜂窝断开状态的信息上报至连接服务模块。其中,Modem可以在蜂窝状态发生变化的情况下,将最新的蜂窝状态上报至连接服务模块,使得连接服务模块可以存储有蜂窝的状态值。

在一种可能的实施方式中,当连接服务模块确定蜂窝状态为蜂窝连接状态时,则说明在应用程序1冷冻后,还存在其他应用主动申请蜂窝,使得Modem与基站之间的该蜂窝通路被开启,蜂窝状态为蜂窝连接状态,那么连接服务模块无需再指示Modem建立与基站之间的蜂窝连接;

在另一种可能的实施方式中,当连接服务模块确定蜂窝状态为蜂窝断开状态(即未处于连接状态)时,则说明在应用程序1冷冻后,该蜂窝连接未被重连仍旧是断开的,那么连接服务模块可以执行S206来指示Modem建立蜂窝连接。

可选地,在连接服务模块确定蜂窝状态为蜂窝断开状态之后,以及在S206之前,连接服务模块可以执行S205进行网络评估。

可选地,S205,连接服务模块判断网络是否满足第二预设条件;

示例性地,在建立Modem与基站之间的蜂窝连接之前,可以做本步骤的网络评估。在网络评估满足条件的情况下,连接服务模块可以执行S206,否则直接跳转到应用程序1处于活动态,本申请不再做处理,直接结束。

这里连接服务模块在进行网络评估时,可以包括但不限于以下至少一项:

连接服务模块判断网络是否可以从蜂窝的单连接切换为Wi-Fi和蜂窝的双连接,其中,由于从单连接切换到双连接,可能会存在网络无法正常切换的情况,因此,需要评估是否可以做网络的正常切换;

例如连接服务模块判断手机的网络不可以从蜂窝的单连接切换为Wi-Fi和蜂窝的双连接,则确定网络不满足第二预设条件。

连接服务模块判断系统设置中的蜂窝开关是否处于开启状态;

例如用户将手机设置中的蜂窝开关设置为关闭状态,则确定网络不满足第二预设条件;

连接服务模块判断手机的数据网络是否可用。

例如因为手机欠费停机等原因而导致手机的数据网络不可用,则连接服务模块确定网络不满足第二预设条件。

在本申请实施例中,在建立手机与基站之间的蜂窝连接之前,连接服务模块可以做网络评估,在评估网络满足第二预设条件的情况下,例如连接服务模块判断手机的网络可以从蜂窝的单连接切换为Wi-Fi和蜂窝的双连接、且系统设置中的蜂窝开关处于开启状态、且手机的数据网络可用,那么连接服务模块可以指示Modem建立Modem与基站之间的蜂窝连接,以使蜂窝连接可以正常建立,以及手机从Wi-Fi的单连接下切换到Wi-Fi和蜂窝的双连接时,建立蜂窝连接不会影响Wi-Fi通路的通信,手机可以继续使用Wi-Fi通路进行上网络通信,保证手机在Wi-Fi下上网不受到建立蜂窝连接的影响。

S206,连接服务模块指示Modem建立蜂窝连接;

示例地,连接服务模块可以调用rematch来实现本步骤。其中,rematch用向Modem发送表示建立蜂窝连接的命令。Modem在接收到连接服务模块发送的上述命令之后,可以开启与蜂窝相关的射频,以建立手机的Modem与基站之间的蜂窝连接,以启动手机与基站之间的蜂窝通路进行数据通信。

在S206之后,转至应用程序1处于活动态,结束流程。

在本申请实施例中,在应用从活动态切换至冷冻态后,手机可以及时回收该应用的蜂窝请求,并在全部申请过蜂窝的应用均从活动态切换至冷冻态的情况下,手机可以关闭与基站之间的蜂窝通路来降低因应用使用蜂窝通路而带来的耗电量;在申请过蜂窝的应用从冷冻态恢复至活动态后,则手机可以将对该应用所回收的蜂窝请求进行释放;以及在蜂窝处于未连接状态的情况下,手机可以重新建立与基站之间的蜂窝连接,来确保主动申请过蜂窝的应用可以对蜂窝网络继续使用。

在一种可能的实施方式中,可以采用图6所示的蜂窝网络控制方法来对手机进行蜂窝网络控制,图13为示例性示出的经过图6所示的方法进行蜂窝网络控制后的蜂窝状态和应用状态的示意图。

为了便于理解,可以对比于图11,来看图13,且图11与图13相同或类同之处,原理相似,下文不再详细阐述。例如在图13的实施方式中,在t0~t3时间段内的应用状态和蜂窝状态的变化,与图11相同,参照关于图11的介绍即可。

从图13可以看出,应用程序1在t3时刻从活动态切换至冷冻态,例如应用程序1从前台运行切换至后台,并不再产生应用数据;然后,应用程序1又在t4时刻从冷冻态切换至活动态,例如,应用程序1从在后台不产生应用数据切换至在后台产生应用数据;

参照图6的流程图可知,在应用程序1在t4时刻从冷冻态切换至活动态后,则手机可以将在t4时刻之前与基站之间处于断开状态的蜂窝连接进行重连。示例地,连接服务模块可以指示Modem建立与基站之间的蜂窝连接,那么在t4时刻之后,Modem与基站之间的蜂窝连接再次被建立,从t4时刻开始,手机的蜂窝状态为蜂窝连接状态;

参照上文图3a、图3b和图4的描述可知,应用程序2可以通过连接服务模块监听Modem是否与基站建立了蜂窝连接,那么在t4时刻,Modem与基站之间的蜂窝连接被建立后,应用程序2可以继续使用该蜂窝连接进行蜂窝数据通信。

在本实施方式中,在应用程序1从活动态切换至冷冻态的t3时刻开始,至应用程序1从冷冻态切换回活动态的t4时刻结束,连接服务模块通过控制将手机与基站之间的蜂窝通路设置为断开状态,可以使手机在t3~t4时间段内产生功耗收益。

在另一个实施例中,参照图7所示的本发明实施例的蜂窝网络控制方法的流程示意图,参照图7,在图5b的流程之后,在应用程序1关闭的情况下,则手机可以执行图7所示的流程。

应用关闭(又称应用处于关闭状态)用于表示该应用的进程处于关闭状态,应用被关闭可以是用户触发,例如用户对前台应用或后台应用进行主动关闭操作,来关闭应用;或者系统触发,例如因进程不响应而系统自动关闭进程。

此外,应用关闭前的状态可以包括活动态,或者冷冻态。

示例地,功耗控制模块在检测到应用程序1处于关闭状态后,可以将该状态信息通知连接服务模块;连接服务模块可以从功耗控制模块获取到应用程序1的状态信息。

在应用程序1关闭的情况下,连接服务模块可以执行S301;

S301,连接服务模块判断应用程序1关闭前是否为冷冻态;

其中,连接服务模块可以从功耗控制模块处实时地获取到应用的状态信息,连接服务模块依据关于应用程序1的状态信息,来确定应用程序1在处于关闭状态之前是否为冷冻态。

例如应用程序1在关闭之前为活动态,则连接服务模块确定应用程序1关闭前不是冷冻态,本申请的方法不对活动后关闭的应用进行蜂窝网络控制,该方法的流程直接结束。

示例地,以应用程序1为浏览器应用为例,参照图9(2),浏览器应用在后台运行。如果用户用手指从缩略图504的底部边缘,对缩略图504向手机顶部方向上进行滑动操作,则手机可以响应于该滑动操作,将缩略图504对应的浏览器应用的进程关闭,那么浏览器应用可以从活动态切换至关闭状态,也即,浏览器应用关闭前为活动态。

例如应用程序1在关闭之前处于冷冻态,则转至执行S302。

示例地,以应用程序1为浏览器应用为例,参照10(2),浏览器应用当前在后台处于冷冻态。如果用户在浏览器应用的新闻界面的缩略图511的底部边缘,对缩略图511向手机顶部方向上进行滑动操作,则手机可以响应于该滑动操作,将缩略图511对应的浏览器应用的进程关闭,那么浏览器应用从冷冻态切换至关闭状态,也即浏览器应用关闭前为冷冻态。

S302,连接服务模块判断是否备份过应用程序1的第一蜂窝请求;

其中,连接服务模块可以通过查询第二数据结构(其中,第二数据结构可以用于备份主动申请蜂窝的应用向连接服务模块所发送的蜂窝请求)中是否存在应用程序1的蜂窝请求,如果存在,则说明连接服务模块备份过应用程序1的第一蜂窝请求,如果不存在,则说明连接服务模块没有备份过应用程序1的第一蜂窝请求。

示例地,虽然应用程序1从冷冻态切换至关闭状态,但是如果应用程序1在冷冻前没有申请过蜂窝网络。例如应用程序1为直接使用其他应用主动申请的蜂窝网络的应用,则连接服务模块的第二数据结构中不会存在应用程序1的蜂窝请求。

可选地,如果应用程序1不是第三方应用,例如应用程序1为系统应用,则在可选地实施方式中,手机在执行图5b的流程时不会对应用程序1进行蜂窝网络控制,那么连接服务模块的第二数据结构中也不会存在应用程序1的第一蜂窝请求。那么在连接服务模块中没有备份过应用程序1的第一蜂窝请求的情况下,则流程直接结束。

在应用程序1在冷冻前主动申请过蜂窝的情况下,连接服务模块中可以备份有应用程序的第一蜂窝请求,那么在连接服务模块中备份过应用程序1的第一蜂窝请求的情况下,则连接服务模块转至执行S303。

可选地,在应用程序1为第三方应用、且在冷冻前主动申请过蜂窝的情况下,连接服务模块中可以备份有应用程序的第一蜂窝请求,那么在连接服务模块中备份过应用程序1的第一蜂窝请求的情况下,则连接服务模块转至执行S303。

S303,连接服务模块删除备份的第一蜂窝请求。

由于应用关闭之后,需要对应用的数据进行删除,以及对应用所使用的资源进行释放,从而确保应用下次启动处于活动态时能够正常运行。

那么在本实施例中,对于应用程序1所需要删除的数据可以包括第一蜂窝请求。

本实施例中,第一蜂窝请求可以存在于原始的第一数据结构中。应用程序1在关闭之前为冷冻态,手机通过执行图5b的流程已经将原始的第一数据结构中的应用程序1的第一蜂窝请求删除。那么待应用程序1从关闭状态再次切换到活动态后,连接服务模块不会在应用程序1未申请蜂窝的情况下,基于第一数据结构中的第一蜂窝请求来建立手机与基站之间的蜂窝连接;

本实施例中,该第一蜂窝请求还可以存在于第二数据结构中。应用程序1在关闭之前为冷冻态,手机通过执行图5b的流程,可以将该应用程序1的第一蜂窝请求,在应用程序1关闭之前备份至第二数据结构。而应用的每一次蜂窝请求的序列号唯一且不变,在应用程序1关闭之后,连接服务模块可以将第二数据结构中备份的具有应用程序1的序列号的第一蜂窝请求进行删除,来确保应用程序1在关闭之后再次活动时,能够正常申请蜂窝网络。

在本实施例中,在主动申请过蜂窝网络的第三方应用,从冷冻态切换至关闭状态后,手机可以将对该应用备份的蜂窝请求进行删除,其中,该备份的蜂窝请求为该应用从活动态切换至冷冻态时所备份的蜂窝请求。那么在应用关闭后,手机通过对应用的数据和资源进行删除,可以确保应用在关闭之后再次活动时,不影响应用再次申请蜂窝网络。

在另一个实施例中,参照图8所示的本发明实施例的蜂窝网络控制方法的流程示意图,参照图8,在图5b的流程之后,在功耗控制模块异常的情况下,则手机可以执行图8所示的流程。

应用关闭(又称应用处于关闭状态)用于表示该应用的进程处于关闭状态,应用被关闭可以是用户触发,例如用户对前台应用或后台应用进行主动关闭操作,来关闭应用;或者系统触发,例如因进程不响应而系统自动关闭进程。

其中,功耗控制模块可以自检是否发生异常,如果功耗控制模块自检发现自身异常,则功耗控制模块会重启,那么在功耗控制模块重启后可将表示功耗控制模块异常的通知发送至连接服务模块,那么连接服务模块则可以执行S400。

示例性地,功耗控制模块自检满足预设条件可确定发生异常,该预设条件可包括但不限于以下至少一项:

检测到函数的非法调用;

检测到内存高负载;

检测到功耗控制模块进程崩溃;

检测到功耗控制模块进程被手动关闭等。

在上述实施例中,在功耗控制模块启动之后,功耗控制模块可以控制连接服务模块来执行图5b的蜂窝网络控制方法的步骤,以对手机节省功耗。那么当功耗控制模块发生了异常,则需要将手机中的经连接服务模块操作的数据恢复至连接服务模块操作之前的状态,因此,在功耗控制模块异常后,连接服务模块可以执行S400~S403。

S400,连接服务模块将备份的所有应用程序的蜂窝请求写入原始的第一数据结构;

示例地,当连接服务模块查询第二数据结构时,如果查询到第二数据结构存在应用的蜂窝请求,则说明该应用从活动态切换至了冷冻态,且连接服务模块对该应用执行了图5b的流程,因此,需要对该应用的蜂窝请求进行恢复,即将第二数据结构中该应用的蜂窝请求重写至原始的第一数据结构;当第二数据结构中的蜂窝请求涉及多个应用时,则需要对多个应用的蜂窝请求逐个进行恢复。

可选地,S401,连接服务模块删除备份的所有应用程序的蜂窝请求;

其中,第二数据结构可以用于备份从活动态切换至冷冻态后的第三方应用,在主动申请蜂窝网络时,向连接服务模块所发送的蜂窝请求。在功耗控制模块自检发现自身异常的情况下,需要将功耗控制模块控制连接服务模块所执行的蜂窝网络控制方法而产生的备份数据进行清除,那么连接服务模块可以对第二数据结构中存储的每个应用的蜂窝请求均进行删除。

可选地,S402,连接服务模块判断蜂窝是否处于连接状态;

其中,本步骤的具体实现方式可以参照图6中的S204,这里不再赘述。

在蜂窝状态为蜂窝连接状态的情况下,则流程结束,在蜂窝状态为蜂窝断开状态的情况下,则连接服务模块转至执行S403。

可选地,S403,连接服务模块判断网络是否满足第二预设条件;

其中,本步骤的具体实现方式可以参照图6中的S205,这里不再赘述。

在连接服务模块判断网络不满足第二预设条件的情况下,则流程结束。

在连接服务模块判断网络满足第二预设条件的情况下,则连接服务模块转至执行S404。

S404,连接服务模块指示Modem建立蜂窝连接;

由于功耗控制模块控制连接服务模块执行图5b的流程可以关闭蜂窝连接,因此,在功耗控制模块异常后,还需要对网络进行恢复,在蜂窝未处于连接的状态下,连接服务模块指示Modem建立与基站之间的蜂窝连接。

其中,本步骤的具体实现方式可以参照图6中的S206,这里不再赘述。

S404之后,流程结束。

在本申请实施例中,在功耗控制模块发生异常后,手机可以能够对在应用从活动态切换至冷冻态后,对应用的蜂窝请求以及对蜂窝网络的操作进行恢复,具体可以包括利用备份的蜂窝请求,恢复至原始的第一数据结构,删除备份的蜂窝请求,以及在蜂窝网络关闭的情况下,对蜂窝网络进行重新建立连接,能够在功耗控制模块异常后,对应用的蜂窝请求所执行的操作进行还原恢复,以及对蜂窝网络连接状态进行恢复,确保原本Wi-Fi和蜂窝双连接的网络环境不受影响。

可以理解的是,电子设备为了实现上述功能,其包含了执行各个功能相应的硬件和/或软件模块。结合本文中所公开的实施例描述的各示例的算法步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。本领域技术人员可以结合实施例对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。

一个示例中,图14示出了本申请实施例的一种装置300的示意性框图装置300可包括:处理器301和收发器/收发管脚302,可选地,还包括存储器303。

装置300的各个组件通过总线304耦合在一起,其中总线304除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图中将各种总线都称为总线304。

可选地,存储器303可以用于前述方法实施例中的指令。该处理器301可用于执行存储器303中的指令,并控制接收管脚接收信号,以及控制发送管脚发送信号。

装置300可以是上述方法实施例中的电子设备或电子设备的芯片。

其中,上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。

本实施例还提供一种计算机存储介质,该计算机存储介质中存储有计算机指令,当该计算机指令在电子设备上运行时,使得电子设备执行上述相关方法步骤实现上述实施例中的蜂窝网络的控制方法。

本实施例还提供了一种计算机程序产品,当该计算机程序产品在计算机上运行时,使得计算机执行上述相关步骤,以实现上述实施例中的蜂窝网络的控制方法。

另外,本申请的实施例还提供一种装置,这个装置具体可以是芯片,组件或模块,该装置可包括相连的处理器和存储器;其中,存储器用于存储计算机执行指令,当装置运行时,处理器可执行存储器存储的计算机执行指令,以使芯片执行上述各方法实施例中的蜂窝网络的控制方法。

其中,本实施例提供的电子设备、计算机存储介质、计算机程序产品或芯片均用于执行上文所提供的对应的方法,因此,其所能达到的有益效果可参考上文所提供的对应的方法中的有益效果,此处不再赘述。

通过以上实施方式的描述,所属领域的技术人员可以了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。

在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是一个物理单元或多个物理单元,即可以位于一个地方,或者也可以分布到多个不同地方。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

本申请各个实施例的任意内容,以及同一实施例的任意内容,均可以自由组合。对上述内容的任意组合均在本申请的范围之内。

集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。

上面结合附图对本申请的实施例进行了描述,但是本申请并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本申请的启示下,在不脱离本申请宗旨和权利要求所保护的范围情况下,还可做出很多形式,均属于本申请的保护之内。

结合本申请实施例公开内容所描述的方法或者算法的步骤可以硬件的方式来实现,也可以是由处理器执行软件指令的方式来实现。软件指令可以由相应的软件模块组成,软件模块可以被存放于随机存取存储器(Random Access Memory,RAM)、闪存、只读存储器(Read Only Memory,ROM)、可擦除可编程只读存储器(Erasable Programmable ROM,EPROM)、电可擦可编程只读存储器(ElectricallyEPROM,EEPROM)、寄存器、硬盘、移动硬盘、只读光盘(CD-ROM)或者本领域熟知的任何其它形式的存储介质中。一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于ASIC中。另外,该ASIC可以位于网络设备中。当然,处理器和存储介质也可以作为分立组件存在于网络设备中。

本领域技术人员应该可以意识到,在上述一个或多个示例中,本申请实施例所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。计算机可读介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是通用或专用计算机能够存取的任何可用介质。

上面结合附图对本申请的实施例进行了描述,但是本申请并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本申请的启示下,在不脱离本申请宗旨和权利要求所保护的范围情况下,还可做出很多形式,均属于本申请的保护之内。

相关技术
  • 可弯曲电子设备、可弯曲电子设备的控制方法、装置及电子设备
  • 电子设备的显示屏盖板、电子设备及电子设备的控制方法
  • 电子设备、电子设备的控制方法及操控方法
  • 无线蜂窝网络小区的操作控制方法、基站及无线蜂窝网络
  • 基于中继的蜂窝网络的准入控制方法及其蜂窝网络系统
技术分类

06120116082138