CN106941713A - 一种降低移动终端功耗的方法及其装置 - Google Patents
一种降低移动终端功耗的方法及其装置 Download PDFInfo
- Publication number
- CN106941713A CN106941713A CN201710345827.XA CN201710345827A CN106941713A CN 106941713 A CN106941713 A CN 106941713A CN 201710345827 A CN201710345827 A CN 201710345827A CN 106941713 A CN106941713 A CN 106941713A
- Authority
- CN
- China
- Prior art keywords
- finger daemon
- server
- application program
- mobile terminal
- packet
- 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
- 238000000034 method Methods 0.000 title claims abstract description 133
- 230000006854 communication Effects 0.000 claims abstract description 118
- 238000004891 communication Methods 0.000 claims abstract description 117
- 230000015654 memory Effects 0.000 claims abstract description 22
- 238000012384 transportation and delivery Methods 0.000 claims abstract description 12
- 230000008569 process Effects 0.000 claims description 87
- 238000012545 processing Methods 0.000 claims description 32
- 230000007246 mechanism Effects 0.000 claims description 24
- 230000009467 reduction Effects 0.000 claims description 16
- 230000005540 biological transmission Effects 0.000 claims description 15
- 230000008014 freezing Effects 0.000 claims description 7
- 238000007710 freezing Methods 0.000 claims description 7
- 238000003780 insertion Methods 0.000 claims description 4
- 230000037431 insertion Effects 0.000 claims description 4
- 238000013500 data storage Methods 0.000 claims 1
- 230000002829 reductive effect Effects 0.000 abstract description 2
- 230000005611 electricity Effects 0.000 description 15
- 230000006870 function Effects 0.000 description 13
- 238000010586 diagram Methods 0.000 description 9
- 238000001514 detection method Methods 0.000 description 8
- 238000005516 engineering process Methods 0.000 description 8
- 238000007726 management method Methods 0.000 description 8
- 238000010295 mobile communication Methods 0.000 description 8
- 230000004044 response Effects 0.000 description 6
- 238000005265 energy consumption Methods 0.000 description 5
- 230000015572 biosynthetic process Effects 0.000 description 4
- 238000011161 development Methods 0.000 description 4
- 230000005236 sound signal Effects 0.000 description 4
- 239000011230 binding agent Substances 0.000 description 3
- 238000010276 construction Methods 0.000 description 3
- 239000013256 coordination polymer Substances 0.000 description 3
- 238000012423 maintenance Methods 0.000 description 3
- IJJWOSAXNHWBPR-HUBLWGQQSA-N 5-[(3as,4s,6ar)-2-oxo-1,3,3a,4,6,6a-hexahydrothieno[3,4-d]imidazol-4-yl]-n-(6-hydrazinyl-6-oxohexyl)pentanamide Chemical compound N1C(=O)N[C@@H]2[C@H](CCCCC(=O)NCCCCCC(=O)NN)SC[C@@H]21 IJJWOSAXNHWBPR-HUBLWGQQSA-N 0.000 description 2
- 101100342198 Buchnera aphidicola subsp. Baizongia pistaciae (strain Bp) thrB gene Proteins 0.000 description 2
- 241000196324 Embryophyta Species 0.000 description 2
- 230000000712 assembly Effects 0.000 description 2
- 238000000429 assembly Methods 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 2
- 238000005314 correlation function Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000000670 limiting effect Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000004083 survival effect Effects 0.000 description 2
- 230000026676 system process Effects 0.000 description 2
- 230000002123 temporal effect Effects 0.000 description 2
- 238000013519 translation Methods 0.000 description 2
- 101150012579 ADSL gene Proteins 0.000 description 1
- 102100020775 Adenylosuccinate lyase Human genes 0.000 description 1
- 108700040193 Adenylosuccinate lyases Proteins 0.000 description 1
- 241001062009 Indigofera Species 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 239000003795 chemical substances by application Substances 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 238000007599 discharging Methods 0.000 description 1
- 230000005059 dormancy Effects 0.000 description 1
- 239000009730 ganji Substances 0.000 description 1
- 230000001771 impaired effect Effects 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 239000002184 metal Substances 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 238000013468 resource allocation Methods 0.000 description 1
- 230000000284 resting effect Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 238000001228 spectrum Methods 0.000 description 1
- 230000001629 suppression Effects 0.000 description 1
- 239000000725 suspension Substances 0.000 description 1
- 239000010409 thin film Substances 0.000 description 1
- 230000002463 transducing effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000002618 waking effect Effects 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W52/00—Power management, e.g. Transmission Power Control [TPC] or power classes
- H04W52/02—Power saving arrangements
- H04W52/0209—Power saving arrangements in terminal devices
- H04W52/0212—Power saving arrangements in terminal devices managed by the network, e.g. network or access point is leader and terminal is follower
- H04W52/0216—Power saving arrangements in terminal devices managed by the network, e.g. network or access point is leader and terminal is follower using a pre-established activity schedule, e.g. traffic indication frame
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/70—Reducing energy consumption in communication networks in wireless communication networks
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Mobile Radio Communication Systems (AREA)
- Telephone Function (AREA)
Abstract
本发明公开了一种降低移动终端功耗的方法及其装置,该方法包括:在Modem侧上创建一守护进程,守护进程关联应用程序和服务器的通讯;当应用程序的长连接定时器唤醒守护进程时,守护进程向服务器发送心跳包;当守护进程收到服务器的数据包时,守护进程查询通信信息并将数据包分发给AP侧上对应的应用程序。该装置包括设置在Modem侧的守护进程模块,用于在长连接定时器唤醒守护进程模块时,向服务器发送心跳包;以及在收到服务器的数据包时,查询通信信息并将数据包分发给应用程序;数据存储模块,用于存储应用程序和服务器的通讯信息,守护进程模块关联应用程序和服务器的通讯。本发明旨在解决移动终端长连接时被频繁唤醒而造成耗电量高的技术问题。
Description
技术领域
本发明涉及通讯技术领域,尤其涉及一种降低移动终端功耗的方法及其装置。
背景技术
随着移动互联网的发展,以即时通讯和社交网络为代表互联网应用在移动终端上形成了迅猛的发展。在现有的技术中,为了保证消息的即时传递和即时状态的更新,即时通讯和社交网络服务都需要移动终端和服务器保持连接状态。一般情况下,移动终端和服务器保持连接状态的方法是通过长连接的方式。长连接指在一个TCP连接上可以连续发送多个数据包,在TCP连接保持期间,如果没有数据包发送,需要双方发检测包以维持此连接。长连接多用于操作频繁,点对点的通讯,而且连接数不能太多情况。每个TCP连接都需要三步握手,这需要时间,如果每个操作都是先连接,再操作的话那么处理速度会降低很多,所以每个操作完后都不断开,下次处理时直接发送数据包,不用建立TCP连接。例如:数据库的连接用长连接,如果用短连接频繁的通信会造成socket错误,而且频繁的socket创建也是对资源的浪费。
虽然说智能移动终端的功能越来越强大,在硬件和系统上都取得了巨大的进步,但是电池技术上任然是制约移动终端发展的瓶颈。如果移动终端一直保持与服务器的长连接状态,移动终端将无法进入休眠状态。这种长连接状态长期持续,网络连接带来的移动终端耗电将是非常严重的。在Android系统上,为了保持长连接,需要通过定时发送心跳包,来保持网络地址转换(Network Address Translation,NAT)表项不被淘汰,定时的方式采用AlarmManager设定定时器保持移动终端能够定时的被唤醒。当移动终端被唤醒后,进程就会执行相应的代码来完成工作。针对此类问题,为了降低移动终端的功耗,通常的采用方式是通过限制这种长连接的使用,或者只允许部分应用可以保持长连接来降低唤醒次数和时间。这样就限制了长连接的灵活使用,从而降低了用户体验。
发明内容
本发明的主要目的在于提出一种降低移动终端功耗的方法及其装置,旨在解决移动终端长连接时被频繁唤醒而造成耗电量高的技术问题。
为实现上述目的,本发明提供的一种降低移动终端功耗的方法,该方法包括以下步骤:
在基带处理器(Modem侧)上创建一守护进程,所述守护进程关联应用程序和服务器的通讯;
当所述应用程序的长连接定时器唤醒所述守护进程时,所述守护进程向所述服务器发送心跳包;
当所述守护进程收到所述服务器的数据包时,所述守护进程查询所述通信信息并将所述数据包分发给应用处理器(AP侧)上对应的所述应用程序。
进一步的,每一所述应用程序对应一所述服务器,所述守护进程关联存储每一所述应用程序的心跳包;当所述应用程序的长连接定时器唤醒所述守护进程时,向所述应用程序对应的所述服务器发送所述应用程序的心跳包。
进一步的,所述守护进程预设一心跳包,所述心跳包关联每一所述应用程序对应的所述服务器,当所述应用程序的长连接定时器唤醒所述守护进程时,向所述应用程序对应的所述服务器发送所述心跳包。
进一步的,当多个所述应用程序分别向所述守护进程发送一所述长连接定时器时,所述守护进程通过批处理(batch)机制将所述长连接定时器插入批处理队列对齐。
进一步的,所述应用程序和所述服务器的通信信息存储在一通信信息表,所述通信信息表包括应用程序信息、服务器地址以及心跳包发送周期等信息。
进一步的,当所述应用程序向所述守护进程发送所述长连接定时器时,终端系统通过冻结机制将所述应用处理器的进程冻结;当所述长连接定时器唤醒所述守护进程时,所述应用处理器的进程保持冻结状态。
进一步的,当所述应用程序切换为后台运行时,所述应用程序设定长连接定时器,终端系统通过冻结机制将所述应用程序在应用处理器中的进程均冻结,所述应用程序暂停运行,并将所述长连接定时器发送给所述守护进程。
进一步的,所述守护进程通过套接字(socket)的方式与所述应用处理器进行通信;当所述守护进程收到所述服务器的数据包时,所述守护进程通过所述套接字(socket)连接并唤醒所述应用处理器,所述应用处理器接收所述数据包并分发对应的所述应用程序。
进一步的,所述守护进程唤醒所述应用处理器,所述应用处理器存储所述数据包,保持所述应用程序的进程保持冻结状态。
进一步的,当所述应用程序切换为当前操作时,所述应用处理器将对应所述应用程序的数据包发送给所述应用程序。
进一步的,当所述应用程序退出或者被所述终端系统关闭时,所述应用处理器检测到所述应用程序的进程结束,所述应用处理器通过套接字(socket)连接所述基带处理器的所述守护进程,更新所述应用程序信息。
进一步的,当所述应用程序退出或者被所述终端系统关闭时,所述守护进程从所述通信信息表删除所述应用程序信息,清除所述应用程序对应的长连接定时器。
进一步的,当所述通信信息表为空时,所述终端系统中没有所述应用程序后台运行,所述守护进程根据预设周期向所述服务器发送所述心跳包,保持所述守护进程与所述服务器之间的连接。
进一步的,当所述通信信息表为空时,计算所述守护进程向所服务器发送所述心跳包的执行次数,当所述执行次数大于等于预设次数阀值时,关闭所述守护进程与所述服务器之间的长连接。
进一步的,当所述应用程序处于后台运行时,设置所述心跳包的执行次数阀值,当所述心跳包的执行次数大于等于所述执行次数阀值时,提示用户是否关闭所述应用程序和所述服务器之间的长连接。
进一步的,当所述移动终端的电量小于等于预设电量阀值时,所述守护进程保持后台运行时间最短的所述应用程序与所述服务器之间的长连接,关闭其他应用程序与对应的服务器之间的长连接。
进一步的,当所述移动终端的电量小于等于预设电量阀值时,将当前剩余电量提示到操作界面,所述守护进程向操作界面发送保持长连接的所述通信信息表;提示选择关闭所述应用程序与所述服务器之间的长连接。
此外,为实现上述目的,本发明还提出一种降低移动终端功耗的装置,包括守护进程模块,所述守护进程模块设置在基带处理器(Modem侧)中,用于在应用程序的长连接定时器唤醒所述守护进程模块时,向服务器发送心跳包;以及在收到所述服务器的数据包时,查询通信信息并将所述数据包分发给应用处理器上对应的所述应用程序;
数据存储模块,用于存储应用程序和服务器的通讯信息,所述守护进程模块关联所述应用程序和所述服务器的通讯。
进一步的,所述守护进程模块包括:数据发送单元,用于在所述应用程序的长连接定时器唤醒所述守护进程模块时,向服务器发送心跳包;
数据接收单元,用于在收到所述服务器的数据包时,查询通信信息并将所述数据包分发给对应的所述应用程序;
通信连接单元,用于通过套接字(socket)的方式与应用处理器进行通信;
进程冻结单元,用于当所述应用程序向所述守护进程发送长连接定时器时,通过冻结机制将应用处理器的进程冻结。
进一步的,所述守护进程模块还包括批处理单元,用于在多个所述应用程序分别向所述守护进程发送一所述长连接定时器时,通过批处理(batch)机制将所述长连接定时器插入批处理队列对齐。
进一步的,所述数据存储模块存储一通信信息表,所述通信信息表包括应用程序信息、服务器地址以及心跳包发送周期等信息。
本发明提出的一种降低移动终端功耗的方法及其装置,通过在终端系统的基带处理器(Modem侧)中创建守护进程,这一守护进程作为应用程序的长连接代理,当应用程序需要定时发送心跳包时,仅仅唤醒该守护进程;通过守护进程完成心跳包的发送从而保证与服务器之间的数据通信;在服务器向应用程序发送数据包时,守护进程接收数据包,然后通过套接字(socket)连接终端系统的应用处理器,唤醒该应用处理器,然后将数据包分发到对应的应用程序。也即是通过在AP(Application Processor)侧建立一套通讯机制,在modem侧实现长连接请求进行统一管理,来减少AP侧中被唤醒进程的个数,从而降低移动终端被唤醒的频率和唤醒后的多进程带来的耗电开销;极大的提高了移动终端的使用时长。
附图说明
图1为实现本发明各个实施例的移动终端的硬件结构示意图;
图2为如图1所示的移动终端的无线通信系统示意图;
图3为本发明实施例的第一种降低移动终端功耗的方法流程框图;
图4为本发明实施例的第二种降低移动终端功耗的方法流程框图;
图5为本发明实施例的第三种降低移动终端功耗的方法流程框图;
图6为本发明实施例的第四种降低移动终端功耗的方法流程框图;
图7为本发明实施例的第五种降低移动终端功耗的方法流程框图;
图8为本发明实施例的第一种降低移动终端功耗的装置结构框图;
图9为本发明实施例的第二种降低移动终端功耗的装置结构框图;
图10为本发明实施例的降低移动终端功耗的装置程序流程框图;
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
现在将参考附图描述实现本发明各个实施例的移动终端。在后续的描述中,使用用于表示元件的诸如“模块”、“部件”或“单元”的后缀仅为了有利于本发明的说明,其本身并没有特定的意义。因此,″模块″与″部件″可以混合地使用。
移动终端可以以各种形式来实施。例如,本发明中描述的终端可以包括诸如移动电话、智能电话、笔记本电脑、数字广播接收器、PDA(个人数字助理)、PAD(平板电脑)、PMP(便携式多媒体播放器)、导航装置等等的移动终端以及诸如数字TV、台式计算机等等的固定终端。下面,假设终端是移动终端。然而,本领域技术人员将理解的是,除了特别用于移动目的的元件之外,根据本发明的实施方式的构造也能够应用于固定类型的终端。
图1为实现本发明各个实施例的移动终端的硬件结构示意。
移动终端100可以包括无线通信单元110、A/V(音频/视频)输入单元120、用户输入单元130、感测单元140、输出单元150、存储器160、接口单元170、控制器180和电源单元190等等。图1示出了具有各种组件的移动终端,但是应理解的是,并不要求实施所有示出的组件。可以替代地实施更多或更少的组件。将在下面详细描述移动终端的元件。
无线通信单元110通常包括一个或多个组件,其允许移动终端100与无线通信系统或网络之间的无线电通信。例如,无线通信单元可以包括广播接收模块111、移动通信模块112、无线互联网模块113、短程通信模块114和位置信息模块115中的至少一个。
广播接收模块111经由广播信道从外部广播管理服务器接收广播信号和/或广播相关信息。广播信道可以包括卫星信道和/或地面信道。广播管理服务器可以是生成并发送广播信号和/或广播相关信息的服务器或者接收之前生成的广播信号和/或广播相关信息并且将其发送给终端的服务器。广播信号可以包括TV广播信号、无线电广播信号、数据广播信号等等。而且,广播信号可以进一步包括与TV或无线电广播信号组合的广播信号。广播相关信息也可以经由移动通信网络提供,并且在该情况下,广播相关信息可以由移动通信模块112来接收。广播信号可以以各种形式存在,例如,其可以以数字多媒体广播(DMB)的电子节目指南(EPG)、数字视频广播手持(DVB-H)的电子服务指南(ESG)等等的形式而存在。广播接收模块111可以通过使用各种类型的广播系统接收信号广播。特别地,广播接收模块111可以通过使用诸如多媒体广播-地面(DMB-T)、数字多媒体广播-卫星(DMB-S)、数字视频广播-手持(DVB-H),前向链路媒体(MediaFLO@)的数据广播系统、地面数字广播综合服务(ISDB-T)等等的数字广播系统接收数字广播。广播接收模块111可以被构造为适合提供广播信号的各种广播系统以及上述数字广播系统。经由广播接收模块111接收的广播信号和/或广播相关信息可以存储在存储器160(或者其它类型的存储介质)中。
移动通信模块112将无线电信号发送到基站(例如,接入点、节点B等等)、外部终端以及服务器中的至少一个和/或从其接收无线电信号。这样的无线电信号可以包括语音通话信号、视频通话信号、或者根据文本和/或多媒体消息发送和/或接收的各种类型的数据。
无线互联网模块113支持移动终端的无线互联网接入。该模块可以内部或外部地耦接到终端。该模块所涉及的无线互联网接入技术可以包括WLAN(无线LAN)(Wi-Fi)、Wibro(无线宽带)、Wimax(全球微波互联接入)、HSDPA(高速下行链路分组接入)等等。
短程通信模块114是用于支持短程通信的模块。短程通信技术的一些示例包括蓝牙TM、射频识别(RFID)、红外数据协会(IrDA)、超宽带(UWB)、紫蜂TM等等。
位置信息模块115是用于检查或获取移动终端的位置信息的模块。位置信息模块的典型示例是GPS(全球定位系统)。根据当前的技术,GPS模块115计算来自三个或更多卫星的距离信息和准确的时间信息并且对于计算的信息应用三角测量法,从而根据经度、纬度和高度准确地计算三维当前位置信息。当前,用于计算位置和时间信息的方法使用三颗卫星并且通过使用另外的一颗卫星校正计算出的位置和时间信息的误差。此外,GPS模块115能够通过实时地连续计算当前位置信息来计算速度信息。
A/V输入单元120用于接收音频或视频信号。A/V输入单元120可以包括相机121和麦克风1220,相机121对在视频捕获模式或图像捕获模式中由图像捕获装置获得的静态图片或视频的图像数据进行处理。处理后的图像帧可以显示在显示单元151上。经相机121处理后的图像帧可以存储在存储器160(或其它存储介质)中或者经由无线通信单元110进行发送,可以根据移动终端的构造提供两个或更多相机1210。麦克风122可以在电话通话模式、记录模式、语音识别模式等等运行模式中经由麦克风接收声音(音频数据),并且能够将这样的声音处理为音频数据。处理后的音频(语音)数据可以在电话通话模式的情况下转换为可经由移动通信模块112发送到移动通信基站的格式输出。麦克风122可以实施各种类型的噪声消除(或抑制)算法以消除(或抑制)在接收和发送音频信号的过程中产生的噪声或者干扰。
用户输入单元130可以根据用户输入的命令生成键输入数据以控制移动终端的各种操作。用户输入单元130允许用户输入各种类型的信息,并且可以包括键盘、锅仔片、触摸板(例如,检测由于被接触而导致的电阻、压力、电容等等的变化的触敏组件)、滚轮、摇杆等等。特别地,当触摸板以层的形式叠加在显示单元151上时,可以形成触摸屏。
感测单元140检测移动终端100的当前状态,(例如,移动终端100的打开或关闭状态)、移动终端100的位置、用户对于移动终端100的接触(即,触摸输入)的有无、移动终端100的取向、移动终端100的加速或减速移动和方向等等,并且生成用于控制移动终端100的操作的命令或信号。例如,当移动终端100实施为滑动型移动电话时,感测单元140可以感测该滑动型电话是打开还是关闭。另外,感测单元140能够检测电源单元190是否提供电力或者接口单元170是否与外部装置耦接。感测单元140可以包括接近传感器1410。
接口单元170用作至少一个外部装置与移动终端100连接可以通过的接口。例如,外部装置可以包括有线或无线头戴式耳机端口、外部电源(或电池充电器)端口、有线或无线数据端口、存储卡端口、用于连接具有识别模块的装置的端口、音频输入/输出(I/O)端口、视频I/O端口、耳机端口等等。识别模块可以是存储用于验证用户使用移动终端100的各种信息并且可以包括用户识别模块(UIM)、客户识别模块(SIM)、通用客户识别模块(USIM)等等。另外,具有识别模块的装置(下面称为″识别装置″)可以采取智能卡的形式,因此,识别装置可以经由端口或其它连接装置与移动终端100连接。接口单元170可以用于接收来自外部装置的输入(例如,数据信息、电力等等)并且将接收到的输入传输到移动终端100内的一个或多个元件或者可以用于在移动终端和外部装置之间传输数据。
另外,当移动终端100与外部底座连接时,接口单元170可以用作允许通过其将电力从底座提供到移动终端100的路径或者可以用作允许从底座输入的各种命令信号通过其传输到移动终端的路径。从底座输入的各种命令信号或电力可以用作用于识别移动终端是否准确地安装在底座上的信号。输出单元150被构造为以视觉、音频和/或触觉方式提供输出信号(例如,音频信号、视频信号、警报信号、振动信号等等)。输出单元150可以包括显示单元151、音频输出模块152、警报单元153等等。
显示单元151可以显示在移动终端100中处理的信息。例如,当移动终端100处于电话通话模式时,显示单元151可以显示与通话或其它通信(例如,文本消息收发、多媒体文件下载等等)相关的用户界面(UI)或图形用户界面(GUI)。当移动终端100处于视频通话模式或者图像捕获模式时,显示单元151可以显示捕获的图像和/或接收的图像、示出视频或图像以及相关功能的UI或GUI等等。
同时,当显示单元151和触摸板以层的形式彼此叠加以形成触摸屏时,显示单元151可以用作输入装置和输出装置。显示单元151可以包括液晶显示器(LCD)、薄膜晶体管LCD(TFT-LCD)、有机发光二极管(OLED)显示器、柔性显示器、三维(3D)显示器等等中的至少一种。这些显示器中的一些可以被构造为透明状以允许用户从外部观看,这可以称为透明显示器,典型的透明显示器可以例如为TOLED(透明有机发光二极管)显示器等等。根据特定想要的实施方式,移动终端100可以包括两个或更多显示单元(或其它显示装置),例如,移动终端可以包括外部显示单元(未示出)和内部显示单元(未示出)。触摸屏可用于检测触摸输入压力以及触摸输入位置和触摸输入面积。
音频输出模块152可以在移动终端处于呼叫信号接收模式、通话模式、记录模式、语音识别模式、广播接收模式等等模式下时,将无线通信单元110接收的或者在存储器160中存储的音频数据转换音频信号并且输出为声音。而且,音频输出模块152可以提供与移动终端100执行的特定功能相关的音频输出(例如,呼叫信号接收声音、消息接收声音等等)。音频输出模块152可以包括扬声器、蜂鸣器等等。
警报单元153可以提供输出以将事件的发生通知给移动终端100。典型的事件可以包括呼叫接收、消息接收、键信号输入、触摸输入等等。除了音频或视频输出之外,警报单元153可以以不同的方式提供输出以通知事件的发生。例如,警报单元153可以以振动的形式提供输出,当接收到呼叫、消息或一些其它进入通信(incoming communication)时,警报单元153可以提供触觉输出(即,振动)以将其通知给用户。通过提供这样的触觉输出,即使在用户的移动电话处于用户的口袋中时,用户也能够识别出各种事件的发生。警报单元153也可以经由显示单元151或音频输出模块152提供通知事件的发生的输出。
存储器160可以存储由控制器180执行的处理和控制操作的软件程序等等,或者可以暂时地存储己经输出或将要输出的数据(例如,电话簿、消息、静态图像、视频等等)。而且,存储器160可以存储关于当触摸施加到触摸屏时输出的各种方式的振动和音频信号的数据。
存储器160可以包括至少一种类型的存储介质,所述存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等等。而且,移动终端100可以与通过网络连接执行存储器160的存储功能的网络存储装置协作。
控制器180通常控制移动终端的总体操作。例如,控制器180执行与语音通话、数据通信、视频通话等等相关的控制和处理。另外,控制器180可以包括用于再现(或回放)多媒体数据的多媒体模块181,多媒体模块181可以构造在控制器180内,或者可以构造为与控制器180分离。控制器180可以执行模式识别处理,以将在触摸屏上执行的手写输入或者图片绘制输入识别为字符或图像。
随着移动终端技术的发展,早期的移动终端仅仅用于电话、短信通讯,因此仅仅具有无线通信模块110,而控制器180就是通信处理器或者基带处理器182,即控制器180就是基带芯片。后来,移动终端具有了多媒体模块181,多媒体模块181是通过协处理器加速单元来实现的,也就是控制器180包括基带芯片加上协处理器加速单元。现有的智能移动终端普遍采用了基带芯片加上应用处理器183来实现的,也就是控制器180包括通信处理器(数字基带处理器)182和应用处理器183,,我们通常将应用处理器183AP可看做一计算机,数字基带处理器CP可看做无线modem。也就是我们常说的AP侧以及Modem侧。AP、CP间的接口技术有SPI、UART、USB、SDIO、shareMemory等等。AP、CP间的通信可通过传统AT命令、MBIM等进行,完成通话、短消息、移动上网等功能。
电源单元190在控制器180的控制下接收外部电力或内部电力并且提供操作各元件和组件所需的适当的电力。
这里描述的各种实施方式可以以使用例如计算机软件、硬件或其任何组合的计算机可读介质来实施。对于硬件实施,这里描述的实施方式可以通过使用特定用途集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理装置(DSPD)、可编程逻辑装置(PLD)、现场可编程门阵列(FPGA)、处理器、控制器、微控制器、微处理器、被设计为执行这里描述的功能的电子单元中的至少一种来实施,在一些情况下,这样的实施方式可以在控制器180中实施。对于软件实施,诸如过程或功能的实施方式可以与允许执行至少一种功能或操作的单独的软件模块来实施。软件代码可以由以任何适当的编程语言编写的软件应用程序(或程序)来实施,软件代码可以存储在存储器160中并且由控制器180执行。
至此,己经按照其功能描述了移动终端。下面,为了简要起见,将描述诸如折叠型、直板型、摆动型、滑动型移动终端等等的各种类型的移动终端中的滑动型移动终端作为示例。因此,本发明能够应用于任何类型的移动终端,并且不限于滑动型移动终端。
如图1中所示的移动终端100可以被构造为利用经由帧或分组发送数据的诸如有线和无线通信系统以及基于卫星的通信系统来操作。
现在将参考图2描述其中根据本发明的移动终端能够操作的通信系统。
这样的通信系统可以使用不同的空中接口和/或物理层。例如,由通信系统使用的空中接口包括例如频分多址(FDMA)、时分多址(TDMA)、码分多址(CDMA)和通用移动通信系统(UMTS)(特别地,长期演进(LTE))、全球移动通信系统(GSM)等等。作为非限制性示例,下面的描述涉及CDMA通信系统,但是这样的教导同样适用于其它类型的系统。
参考图2,CDMA无线通信系统可以包括多个移动终端100、多个基站(BS)270、基站控制器(BSC)275和移动交换中心(MSC)280。MSC280被构造为与公共电话交换网络(PSTN)290形成接口。MSC280还被构造为与可以经由回程线路耦接到基站270的BSC275形成接口。回程线路可以根据若干己知的接口中的任一种来构造,所述接口包括例如E1/T1、ATM,IP、PPP、帧中继、HDSL、ADSL或xDSL。将理解的是,如图2中所示的系统可以包括多个BSC2750。
每个BS270可以服务一个或多个分区(或区域),由多向天线或指向特定方向的天线覆盖的每个分区放射状地远离BS270。或者,每个分区可以由用于分集接收的两个或更多天线覆盖。每个BS270可以被构造为支持多个频率分配,并且每个频率分配具有特定频谱(例如,1.25MHz,5MHz等等)。
分区与频率分配的交叉可以被称为CDMA信道。BS270也可以被称为基站收发器子系统(BTS)或者其它等效术语。在这样的情况下,术语″基站″可以用于笼统地表示单个BSC275和至少一个BS270。基站也可以被称为″蜂窝站″。或者,特定BS270的各分区可以被称为多个蜂窝站。
如图2中所示,广播发射器(BT)295将广播信号发送给在系统内操作的移动终端100。如图1中所示的广播接收模块111被设置在移动终端100处以接收由BT295发送的广播信号。在图2中,示出了几个全球定位系统(GPS)卫星300。卫星300帮助定位多个移动终端100中的至少一个。
在图2中,描绘了多个卫星300,但是理解的是,可以利用任何数目的卫星获得有用的定位信息。如图1中所示的GPS模块115通常被构造为与卫星300配合以获得想要的定位信息。替代GPS跟踪技术或者在GPS跟踪技术之外,可以使用可以跟踪移动终端的位置的其它技术。另外,至少一个GPS卫星300可以选择性地或者额外地处理卫星DMB传输。
作为无线通信系统的一个典型操作,BS270接收来自各种移动终端100的反向链路信号。移动终端100通常参与通话、消息收发和其它类型的通信。特定基站270接收的每个反向链路信号被在特定BS270内进行处理。获得的数据被转发给相关的BSC275。BSC提供通话资源分配和包括BS270之间的软切换过程的协调的移动管理功能。BSC275还将接收到的数据路由到MSC280,其提供用于与PSTN290形成接口的额外的路由服务。类似地,PSTN290与MSC280形成接口,MSC与BSC275形成接口,并且BSC275相应地控制BS270以将正向链路信号发送到移动终端100。
移动终端100通过无线通信系统实现网络通信,一般采用了TCP/IP等通信协议实现与服务器端的数据交互,当网络通信时采用TCP协议时,在真正的读写操作之前,server与client之间必须建立一个连接,当读写操作完成后,双方不再需要这个连接时它们可以释放这个连接,连接的建立是需要三次握手的,而释放则需要4次握手,所以说每个连接的建立都是需要资源消耗和时间消耗。TCP连接一般会包括短连接和长连接:
TCP短连接时,client向server发起连接请求,server接到请求,然后双方建立连接。client向server发送消息,server回应client,然后一次读写完成,这时候双方任何一个都可以发起close操作,不过一般都是client先发起close操作,因为一般的server不会回复完client后立即关闭连接的。从上面的描述看,短连接一般只会在client/server间传递一次读写操作。短连接的管理比较简单,存在的连接都是有用的连接,不需要额外的控制手段。
TCP长连接时,client向server发起连接,server接受client连接,双方建立连接。Client与server完成一次读写之后,它们之间的连接并不会主动关闭,后续的读写操作会继续使用这个连接。
这涉及TCP保活功能,保活功能主要为服务器应用提供,服务器应用希望知道客户端是否崩溃,从而可以代表客户使用资源。如果客户已经消失,使得服务器上保留一个半开放的连接,而服务器又在等待来自客户端的数据,则服务器将应远等待客户端的数据,保活功能就是试图在服务器端检测到这种半开放的连接。
如果一个给定的连接在两小时内没有任何的动作,则服务器就向客户发一个探测报文段,客户端必须处于以下4个状态之一:
1、客户端依然正常运行,并从服务器可达。客户的TCP响应正常,而服务器也知道对方是正常的,服务器在两小时后将保活定时器复位。
2、客户端已经崩溃,并且关闭或者正在重新启动。在任何一种情况下,客户的TCP都没有响应。服务端将不能收到对探测的响应,并在75秒后超时。服务器总共发送10个这样的探测,每个间隔75秒。如果服务器没有收到一个响应,它就认为客户端已经关闭并终止连接。
3、客户端崩溃并已经重新启动。服务器将收到一个对其保活探测的响应,这个响应是一个复位,使得服务器终止这个连接。
4、客户机正常运行,但是服务器不可达,这种情况与2类似,TCP能发现的就是没有收到探查的响应。
从上面可以看出,TCP保活功能主要为探测长连接的存活状况,不过这里存在一个问题,存活功能的探测周期太长,还有就是它只是探测TCP连接的存活,遇到恶意的连接时,保活功能将失效。
在长连接的应用场景下,client端一般不会主动关闭它们之间的连接,Client与server之间的连接如果一直不关闭的话,会存在一个问题,随着客户端连接越来越多,server将难以承受,这时候server端需要采取一些策略,如关闭一些长时间没有读写事件发生的连接,这样可以避免一些恶意连接导致server端服务受损;如果条件再允许就可以以客户端机器为颗粒度,限制每个客户端的最大长连接数,这样可以完全避免某个客户端连累后端服务。
移动终端100一般涉及多种应用程序,这些应用程序需要与网络服务器保持数据交互,应用程序对TCP长连接的依赖越来越大,即时通讯软件或者VOIP(VoiceoverInternetProtocol,将模拟信号数字化)软件需要在任何时候都能接收到服务器端的消息,这就需要建立并维持与服务器之间的连接。但在现有技术中,应用程序与服务器之间建立的长连接,需要应用程序的进程去维持这个长连接,也就是移动终端的AP侧资源来实现长连接的维持。
基于上述移动终端硬件结构以及通信系统,提出本发明方法各个实施例。
如图3所示,本发明第一实施例提出一种降低移动终端功耗的方法,该方法包括以下步骤:
S101、在基带处理器上创建一守护进程,所述守护进程关联应用程序和服务器的通讯;
S102、当所述应用程序的长连接定时器唤醒所述守护进程时,所述守护进程向所述服务器发送心跳包;
S103、当所述守护进程收到所述服务器的数据包时,所述守护进程查询所述通信信息并将所述数据包分发给应用处理器(AP侧)上对应的所述应用程序。
其中,每一所述应用程序对应一所述服务器,所述守护进程关联存储每一所述应用程序的心跳包;当所述应用程序的长连接定时器唤醒所述守护进程时,向所述应用程序对应的所述服务器发送所述应用程序的心跳包。
例如,对应QQ、微信、支付宝等通信应用程序,分别需要对应的服务器保持长连接,需要与不同的服务器连接,对应QQ、微信、支付宝等通信应用程序需要不同的心跳包,这样心跳包的数量就很多,占用存储空间。
为减少心跳包的数量,所述守护进程预设一心跳包,所述心跳包关联每一所述应用程序对应的所述服务器,当所述应用程序的长连接定时器唤醒所述守护进程时,向所述应用程序对应的所述服务器发送所述心跳包。例如,对应QQ、微信、支付宝等通信应用程序仅仅设置同一个的心跳包,利用同一个心跳包保持守护进程与不同服务器之间的连接,然后通过守护进程关联QQ、微信、支付宝等通信应用程序,实现对应服务器与应用程序之间的长连接。
通过创建守护进程,同时关联应用程序和服务器之间的通信信息,当需要维持长连接时,应用程序的长连接定时器由守护进程接收并管理,守护进程向服务器发送心跳包,这就避免了应用程序来维持长连接,通过守护进程实现了长连接的同一管理;当服务器发送来数据包时,也是守护进程接收后唤醒终端系统,再分发到对应的应用程序。
如图4所示,本发明第一实施例提出二种降低移动终端功耗的方法,该方法包括以下步骤:
S201、在基带处理器上创建一守护进程,所述守护进程关联应用程序和服务器的通讯;
S202、当多个所述应用程序分别向所述守护进程发送一所述长连接定时器时,所述守护进程通过批处理(batch)机制将所述长连接定时器插入批处理队列对齐;所述应用程序和所述服务器的通信信息存储在一通信信息表
S203、当所述应用程序的长连接定时器唤醒所述守护进程时,所述守护进程向所述服务器发送心跳包;
S204、当所述守护进程收到所述服务器的数据包时,所述守护进程查询所述通信信息并将所述数据包分发给应用处理器(AP侧)上对应的所述应用程序。
通信信息表中存储应用程序信息和服务器的通信地址,发送心跳包周期等信息,便于守护进程快速查询到应用程序和服务器之间的通信信息,以维持两者之间的长连接。
如图5所示,本发明第一实施例提出三种降低移动终端功耗的方法,该方法包括以下步骤:
S301、在基带处理器上创建一守护进程,所述守护进程关联应用程序和服务器的通讯;
S302、当所述应用程序向所述守护进程发送所述长连接定时器时,终端系统通过冻结机制将所述应用处理器的进程冻结;当所述长连接定时器唤醒所述守护进程时,所述应用处理器的进程保持冻结状态。
S303、当多个所述应用程序分别向所述守护进程发送一所述长连接定时器时,所述守护进程通过批处理(batch)机制将所述长连接定时器插入批处理队列对齐;所述应用程序和所述服务器的通信信息存储在一通信信息表
S304、当所述应用程序的长连接定时器唤醒所述守护进程时,所述守护进程向所述服务器发送心跳包;
S305、当所述守护进程收到所述服务器的数据包时,所述守护进程查询所述通信信息并将所述数据包分发给应用处理器上对应的所述应用程序。
其中,当所述应用程序切换为后台运行时,所述应用程序设定长连接定时器,通过冻结机制将将所述应用程序在终端系统中的进程均冻结,所述应用程序暂停运行,并将所述长连接定时器发送给所述守护进程。设定长连接定时器的时机为应用程序被切换到后台运行时,此时终端心跳没有实际使用这一应用程序,但是为了维持应用程序的快速实时数据通信,特别是一些通信应用程序,如QQ、微信等,需要保持通信应用程序与服务器之间的长连接,更新应用程序的信息。
如图6所示,本发明第一实施例提出四种降低移动终端功耗的方法,该方法包括以下步骤:
S401、在基带处理器上创建一守护进程,所述守护进程关联应用程序和服务器的通讯;
S402、当所述应用程序向所述守护进程发送所述长连接定时器时,终端系统通过冻结机制将所述应用处理器的进程冻结;当所述长连接定时器唤醒所述守护进程时,所述应用处理器的进程保持冻结状态。
S403、当多个所述应用程序分别向所述守护进程发送一所述长连接定时器时,所述守护进程通过批处理(batch)机制将所述长连接定时器插入批处理队列对齐;所述应用程序和所述服务器的通信信息存储在一通信信息表
S404、当所述应用程序的长连接定时器唤醒所述守护进程时,所述守护进程向所述服务器发送心跳包;
S405、所述守护进程通过套接字的方式与所述应用处理器进行通信;当所述守护进程收到所述服务器的数据包时,所述守护进程通过所述套接字连接并唤醒所述应用处理器,所述应用处理器接收所述数据包并分发对应的所述应用程序。
其中,所述守护进程唤醒所述应用处理器,所述应用处理器存储所述数据包,保持所述应用程序的进程保持冻结状态。
其中,当所述应用程序切换为当前操作时,所述应用处理器将对应所述应用程序的数据包发送给所述应用程序。
例如,守护进程接收数据包,一般是通过应用处理器唤醒应用程序后预存储,应用程序可以选择不显示;但这一过程已经激活了应用程序的进程,当应用程序与服务器之间频繁通信时,如QQ、微信等通信应用程序,几乎是实时数据传输的,即使通过守护进程保持长连接,也没有使得通信应用程序保持冻结状态,反而使得守护进程频繁的接收数据包;增加了能耗。现在通过守护进程接收数据包后应用处理器预先存储起来,不发送给应用程序;当应用程序被使用时,也就是应用程序前台运行,再将数据包发送给应用程序;保持后台运行的应用程序保持冻结状态,减少能耗。
如图7所示,本发明第一实施例提出五种降低移动终端功耗的方法,该方法包括以下步骤:
S501、在基带处理器上创建一守护进程,所述守护进程关联应用程序和服务器的通讯;
S502、当所述应用程序向所述守护进程发送所述长连接定时器时,终端系统通过冻结机制将所述应用处理器的进程冻结;当所述长连接定时器唤醒所述守护进程时,所述应用处理器的进程保持冻结状态。
S503、当多个所述应用程序分别向所述守护进程发送一所述长连接定时器时,所述守护进程通过批处理(batch)机制将所述长连接定时器插入批处理队列对齐;所述应用程序和所述服务器的通信信息存储在一通信信息表
S504、当所述应用程序的长连接定时器唤醒所述守护进程时,所述守护进程向所述服务器发送心跳包;
S505、所述守护进程通过套接字的方式与所述应用处理器进行通信;当所述守护进程收到所述服务器的数据包时,所述守护进程通过所述套接字连接并唤醒所述应用处理器,所述应用处理器接收所述数据包并分发对应的所述应用程序
S506、当所述应用程序退出或者被所述终端系统关闭时,所述应用处理器检测到所述应用程序的进程结束,所述应用处理器通过套接字(socket)连接所述基带处理器的所述守护进程,所述守护进程从所述通信信息表删除所述应用程序信息,清除所述应用程序对应的长连接定时器
应用程序退出或者关闭时,一般情况下长连接即时关闭,但是,当应用程序仅仅是退出重新登录或者切换帐号时,若是断开长连接后又要建立数据通信,这样会影响数据通信的体验。
因此,当所述通信信息表为空时,所述终端系统中没有所述应用程序后台运行,所述守护进程根据预设周期向所述服务器发送所述心跳包,保持所述守护进程与所述服务器之间的连接。例如,该预设周期可以是2min,5min,10min等等,守护进程保持与常用应用程序的服务器之间的长连接,与服务器保持长连接,快速启动。
当所述通信信息表为空时,计算所述守护进程向所服务器发送所述心跳包的执行次数,当所述执行次数大于等于预设次数阀值时,关闭所述守护进程与所述服务器之间的长连接。守护进程与服务器之间的长连接不能够长期保持下去,这样增加了能耗,因此,在保持一定的时间后应当关闭相应的长连接。
其中,当所述应用程序处于后台运行时,设置所述心跳包的执行次数阀值,当所述心跳包的执行次数大于等于所述执行次数阀值时,提示用户是否关闭所述应用程序和所述服务器之间的长连接。
其中,当所述移动终端的电量小于等于预设电量阀值时,所述守护进程保持后台运行时间最短的所述应用程序与所述服务器之间的长连接,关闭其他应用程序与对应的服务器之间的长连接。
其中,当所述移动终端的电量小于等于预设电量阀值时,将当前剩余电量提示到操作界面,所述守护进程向操作界面发送保持长连接的所述通信信息表;提示选择关闭所述应用程序与所述服务器之间的长连接。
随着移动终端电量消耗,当移动终端电量到达预设电量阀值时,为了延长电量消耗时间,需要关闭一些后台运行的应用程序的消耗,其中长连接是主要的后台能耗之一,守护进程将通信信息表推送给操作界面,用户可以选择关闭全部或者部分应用程序与服务器之间的长连接,从而节约了能耗。
此外,为实现上述目的,如图8所示,本发明还提出一种降低移动终端功耗的装置,包括守护进程模块1821,所述守护进程模块1821设置在基带处理器182中,用于在应用程序的长连接定时器唤醒所述守护进程模块时,向服务器发送心跳包;以及在收到所述服务器的数据包时,查询通信信息并将所述数据包分发给应用处理器(AP侧)上对应的所述应用程序;
数据存储模块1822,用于存储应用程序和服务器的通讯信息,所述守护进程模块关联所述应用程序和所述服务器的通讯。
如图9所示,所述守护进程模块1821包括:数据发送单元,用于在所述应用程序的长连接定时器唤醒所述守护进程模块时,向服务器发送心跳包;
数据接收单元,用于在收到所述服务器的数据包时,查询通信信息并将所述数据包分发给对应的所述应用程序;
通信连接单元,用于通过套接字(socket)的方式与应用处理器(AP侧)进行通信;
进程冻结单元,用于当所述应用程序向所述守护进程发送长连接定时器时,通过冻结机制将应用处理器183的进程冻结。
其中,所述守护进程模块1821还包括批处理单元,用于在多个所述应用程序分别向所述守护进程发送一所述长连接定时器时,通过批处理(batch)机制将所述长连接定时器插入批处理队列对齐。
其中,所述数据存储模块1822存储一通信信息表,所述通信信息表包括应用程序信息、服务器地址以及心跳包发送周期等信息。
如图10所示,应用程序的进程、守护进程等均包含在终端系统中,其中在应用处理器183中,也即是AP侧,多个应用程序的进程通过Binder调用机制与SystemServer关联,SystemServer通过Socket方式与基带处理器(Modem侧)182守护进程数据通信,守护进程通过TCP/IP协议与服务器实现数据通信,构成了本发明的系统结构,其中:
Binder是Android系统中特有的一种进程间通信(IPC)方式,从Unix发展而来的手段,通信双方必须处理线程同步、内存管理等复杂问题,在进程间传递数据使用的是共享内存的方式,这样数据只需要复制一次就能从一个进程到达另一个进程(一般的IPC都需要两部,从用户进程复制到内核,再从内核复制到服务进程),这样大大提高了数据传输的效率。Binder调用时会传递调用进程的euid到服务端,因此服务端可以通过检查调用进程的权限来决定是否允许其使用所调用的服务。
运行时,当应用程序设定长连接定时器时,将该定时器标记为长连接定时器(以便区分其他定时器),利用冻结机制将系统上的进程进行冻结,当长连接定时器唤醒终端系统时,仅唤醒守护进程,其他进程依然保持冻结状态。当多个长连接定时器请求发送过来时,将发送来的定时器请求做定时器对齐操作。主要通过制定窗口方式,将定时器划分到不同的bach批次中处理。守护进程中维护应用和服务器端通信信息表,以便能够查询应用信息,服务器地址,发送心跳包周期等。守护进程负责完成发送心跳包的操作。守护进程与SystemServer进程之间通过socket的方式进行通信。
当有消息接收时,能够唤醒准确分派到对应的应用程序。终端系统SystemServer,告知其需要收到相关消息,需要通知给对应的应用程序进行显示。当应用程序退出或者是被系统删除时,SystemServer检测该进程结束时,通过socket通知守护进程有进程被删除,需要更新应用信息,守护进程对该应用相关信息从通信信息表中去除,并清除相关长连接定时器操作。
守护进程作为客户端长连接代理,当应用程序需要定时发送心跳包时,通知代理侧守护进程。守护进程将该应用程序注册到长连接代理信息表中。守护进程通过bach机制,将长连接定时器插入批处理队列完成对齐。将最近的长连接定时器设置到kernel中。当系统休眠时,将应用程序侧进程冻结,当定时器到时唤醒系统时,应用程序侧进程任然保持冻结状态,仅唤醒代理守护进程。守护进程负责将心跳数据包发送到服务器端,保持长连接状态。当服务器端有推送消息发出时,守护进程收到数据包后,查询长连接代理信息表,将数据分发给应用程序。当应用程序退出,删除表中的应用节点,在批处理队列中清理定时器。
其中,socket通常也称作″套接字″,是支持TCP/IP的网络通信的基本操作单元,可以看做是不同主机之间的进程进行双向通信的端点,简单的说就是通信的两方的一种约定,用套接字中的相关函数来完成通信过程。应用程序通常通过″套接字″向网络发出请求或者应答网络请求。以J2SDK-1.3为例,Socket和ServerSocket类库位于java.net包中。ServerSocket用于服务器端,Socket是建立网络连接时使用的。在连接成功时,应用程序两端都会产生一个Socket实例,操作这个实例,完成所需的会话。对于一个网络连接来说,套接字是平等的,并没有差别,不因为在服务器端或在客户端而产生不同级别。不管是Socket还是ServerSocket它们的工作都是通过SocketImpl类及其子类完成的。
System Server是Android系统的核心,在Dalvik虚拟机启动后立即开始初始化和运行。其它的系统服务在System Server进程的环境中运行。System Server是终端系统的O进程,也即是内核态进程。
进程有内核态进程和用户态进程之分。所以进程的创建也就有两种方式:一是由操作系统创建,二是由父进程创建。在系统启动时,操作系统会创建一些进程,他们承担着管理和分配系统资源的任务,这些进程通常被称为系统进程。系统允许一个进程创建新进程,新进程即为子进程,子进程还可以创建新的子进程,形成进程树结构。整个Linux系统的所有进程也是一个树形结构。树根是系统自动构造的,即在内核态下执行的0号进程,他是所有进程的祖先。由0号进程创建1号进程(内核态),1号负责执行内核的部分初始化工作及进行系统配置,并创建若干个用于高速缓存和虚拟贮存管理的内核线程。随后,1号进程调用execve()运行可执行程序init,并演变成用户态1号进程,即init进程。它按照配置文件/etc/initab的要求,完成系统启动工作,创建编号为1号、2号。。的若干终端注册进程getty。每个getty进程设置其进程组标识号,并检测配置到系统终端的接口线路。当检测到来自终端的连接信号时,getty进程将通过函数execve()执行注册程序login,此时用户就可输入注册名和密码进入登陆过程,如果成功,由login程序再通过函数execv()执行shell,该shell进程接收getty进程的pid,取代原来的getty进程。再由shell直接或间接地产生其他进程。上述过程可描述为:0号进程->1号内核进程->1号内核线程->1号用户进程(init进程)->getty进程->shell进程。
本发明提出的一种降低移动终端功耗的方法及其装置,通过在终端系统中创建守护进程,这一守护进程作为应用程序的长连接代理,当应用程序需要定时发送心跳包时,仅仅唤醒该守护进程;通过守护进程完成心跳包的发送从而保证与服务器之间的数据通信;在服务器向应用程序发送数据包时,守护进程接收数据包,然后通过套接字(socket)连接终端系统,唤醒该终端系统,然后将数据包分发到对应的应用程序。本发明通过在AP(Application Processor)侧建立一套通讯机制,将长连接请求进行统一管理,来减少AP侧中被唤醒进程的个数,从而降低移动终端被唤醒的频率和唤醒后的多进程带来的耗电开销;极大的提高了移动终端的使用时长。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种降低移动终端功耗的方法,其特征在于,所述方法包括以下步骤:
在基带处理器上创建一守护进程,所述守护进程关联应用程序和服务器的通讯;
当所述应用程序的长连接定时器唤醒所述守护进程时,所述守护进程向所述服务器发送心跳包;
当所述守护进程收到所述服务器的数据包时,所述守护进程查询所述通信信息并将所述数据包分发给应用处理器上对应的所述应用程序。
2.根据权利要求1所述的一种降低移动终端功耗的方法,其特征在于,当多个所述应用程序分别向所述守护进程发送一所述长连接定时器时,所述守护进程通过批处理机制将所述长连接定时器插入批处理队列对齐。
3.根据权利要求2所述的一种降低移动终端功耗的方法,其特征在于,所述应用程序和所述服务器的通信信息存储在一通信信息表,所述通信信息表包括应用程序信息、服务器地址以及心跳包发送周期等信息。
4.根据权利要求1所述的一种降低移动终端功耗的方法,其特征在于,当所述应用程序向所述守护进程发送所述长连接定时器时,终端系统通过冻结机制将所述应用处理器的进程冻结;当所述长连接定时器唤醒所述守护进程时,所述应用处理器的进程保持冻结状态。
5.根据权利要求4所述的一种降低移动终端功耗的方法,其特征在于,所述守护进程通过套接字的方式与所述应用处理器进行通信;当所述守护进程收到所述服务器的数据包时,所述守护进程通过所述套接字连接并唤醒所述应用处理器,所述应用处理器接收所述数据包并分发对应的所述应用程序。
6.根据权利要求1所述的一种降低移动终端功耗的方法,其特征在于,当所述应用程序退出或者被关闭时,所述应用处理器检测到所述应用程序的进程结束,所述应用处理器通过套接字连接所述基带处理器的所述守护进程,更新所述应用程序信息。
7.根据权利要求6所述的一种降低移动终端功耗的方法,其特征在于,当所述应用程序退出或者被关闭时,所述守护进程从所述通信信息表删除所述应用程序信息,清除所述应用程序对应的长连接定时器。
8.一种降低移动终端功耗的装置,其特征在于,包括守护进程模块,所述守护进程模块设置在基带处理器中,用于在应用程序的长连接定时器唤醒所述守护进程模块时,向服务器发送心跳包;以及在收到所述服务器的数据包时,查询通信信息并将所述数据包分发给应用处理器上对应的所述应用程序;
数据存储模块,用于存储应用程序和服务器的通讯信息,所述守护进程模块关联所述应用程序和所述服务器的通讯。
9.根据权利要求8所述的一种降低移动终端功耗的装置,其特征在于,所述守护进程模块包括:数据发送单元,用于在所述应用程序的长连接定时器唤醒所述守护进程模块时,向服务器发送心跳包;
数据接收单元,用于在收到所述服务器的数据包时,查询通信信息并将所述数据包分发给对应的所述应用程序;
通信连接单元,用于通过套接字的方式与应用处理器进行通信;
进程冻结单元,用于当所述应用程序向所述守护进程发送长连接定时器时,通过冻结机制将应用处理器的进程冻结;
批处理单元,用于在多个所述应用程序分别向所述守护进程发送一所述长连接定时器时,通过批处理机制将所述长连接定时器插入批处理队列对齐。
10.根据权利要求8所述的一种降低移动终端功耗的装置,其特征在于,所述数据存储模块存储一通信信息表,所述通信信息表包括应用程序信息、服务器地址以及心跳包发送周期等信息。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN201710345827.XA CN106941713A (zh) | 2017-05-16 | 2017-05-16 | 一种降低移动终端功耗的方法及其装置 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN201710345827.XA CN106941713A (zh) | 2017-05-16 | 2017-05-16 | 一种降低移动终端功耗的方法及其装置 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| CN106941713A true CN106941713A (zh) | 2017-07-11 |
Family
ID=59465050
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN201710345827.XA Pending CN106941713A (zh) | 2017-05-16 | 2017-05-16 | 一种降低移动终端功耗的方法及其装置 |
Country Status (1)
| Country | Link |
|---|---|
| CN (1) | CN106941713A (zh) |
Cited By (17)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN108363629A (zh) * | 2018-02-28 | 2018-08-03 | 杭州朗和科技有限公司 | 用于即时通信的方法、介质、装置和计算设备 |
| CN108934056A (zh) * | 2018-06-20 | 2018-12-04 | 联想(北京)有限公司 | 电子设备的控制方法及系统 |
| CN109375959A (zh) * | 2018-09-28 | 2019-02-22 | 北京小米移动软件有限公司 | 定向拉起应用的方法及装置 |
| CN109753352A (zh) * | 2019-01-04 | 2019-05-14 | Oppo广东移动通信有限公司 | 应用冻结的处理方法、电子装置及计算机可读存储介质 |
| CN110990066A (zh) * | 2019-11-26 | 2020-04-10 | 江苏嘉则信息技术有限公司 | 一种通信终端的睡眠唤醒方法 |
| CN111988191A (zh) * | 2019-05-22 | 2020-11-24 | 北京华为数字技术有限公司 | 一种分布式通信网络的故障检测方法及装置 |
| CN112769651A (zh) * | 2021-01-13 | 2021-05-07 | 杭州迪普科技股份有限公司 | 一种tcp连接检测方法、装置及电子设备 |
| CN112911692A (zh) * | 2021-03-29 | 2021-06-04 | 努比亚技术有限公司 | 降低能耗的方法、移动终端及计算机可读存储介质 |
| CN113572751A (zh) * | 2021-07-20 | 2021-10-29 | 杭州默安科技有限公司 | 一种网络流量的分析系统及其方法 |
| CN113709202A (zh) * | 2020-05-22 | 2021-11-26 | 北京罗克维尔斯科技有限公司 | 唤醒系统芯片的方法及系统 |
| CN113765948A (zh) * | 2020-06-02 | 2021-12-07 | 华为技术有限公司 | 长连接装置和网络系统 |
| CN114125023A (zh) * | 2021-11-12 | 2022-03-01 | 青岛海尔科技有限公司 | 数据连接的确定方法及装置、存储介质及电子装置 |
| CN114126014A (zh) * | 2021-11-04 | 2022-03-01 | 维沃移动通信有限公司 | 心跳代理方法和装置 |
| EP3962180A4 (en) * | 2019-08-06 | 2022-06-15 | ZTE Corporation | NETWORK-BASED CONTROL METHOD FOR POWER CONSUMPTION OF APPLICATIONS, DEVICES AND STORAGE MEDIUM |
| US11693693B2 (en) | 2017-10-13 | 2023-07-04 | Huawei Technologies Co., Ltd. | Resource management based on ranking of importance of applications |
| CN118450471A (zh) * | 2023-12-13 | 2024-08-06 | 荣耀终端有限公司 | 唤醒方法、电子设备及可读存储介质 |
| CN120301797A (zh) * | 2024-01-04 | 2025-07-11 | 荣耀终端股份有限公司 | 一种长连接控制方法和设备 |
Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN103188653A (zh) * | 2011-12-27 | 2013-07-03 | 华为终端有限公司 | 接收数据的方法、发送数据的方法、移动终端和服务器 |
| WO2014200631A1 (en) * | 2013-06-11 | 2014-12-18 | Seven Networks, Inc. | Optimizing keepalive and other background traffic in a wireless network |
| WO2015077961A1 (zh) * | 2013-11-28 | 2015-06-04 | 华为终端有限公司 | 一种发送心跳消息的方法及移动终端 |
| CN105306418A (zh) * | 2014-06-24 | 2016-02-03 | 博雅网络游戏开发(深圳)有限公司 | 多应用程序共享通信连接的方法和系统 |
| CN105893129A (zh) * | 2016-03-30 | 2016-08-24 | 北京小米移动软件有限公司 | 终端中应用程序的处理方法及装置 |
-
2017
- 2017-05-16 CN CN201710345827.XA patent/CN106941713A/zh active Pending
Patent Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN103188653A (zh) * | 2011-12-27 | 2013-07-03 | 华为终端有限公司 | 接收数据的方法、发送数据的方法、移动终端和服务器 |
| WO2014200631A1 (en) * | 2013-06-11 | 2014-12-18 | Seven Networks, Inc. | Optimizing keepalive and other background traffic in a wireless network |
| WO2015077961A1 (zh) * | 2013-11-28 | 2015-06-04 | 华为终端有限公司 | 一种发送心跳消息的方法及移动终端 |
| CN105306418A (zh) * | 2014-06-24 | 2016-02-03 | 博雅网络游戏开发(深圳)有限公司 | 多应用程序共享通信连接的方法和系统 |
| CN105893129A (zh) * | 2016-03-30 | 2016-08-24 | 北京小米移动软件有限公司 | 终端中应用程序的处理方法及装置 |
Cited By (27)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US11693693B2 (en) | 2017-10-13 | 2023-07-04 | Huawei Technologies Co., Ltd. | Resource management based on ranking of importance of applications |
| CN108363629B (zh) * | 2018-02-28 | 2020-10-27 | 杭州朗和科技有限公司 | 用于即时通信的方法、介质、装置和计算设备 |
| CN108363629A (zh) * | 2018-02-28 | 2018-08-03 | 杭州朗和科技有限公司 | 用于即时通信的方法、介质、装置和计算设备 |
| CN108934056A (zh) * | 2018-06-20 | 2018-12-04 | 联想(北京)有限公司 | 电子设备的控制方法及系统 |
| CN109375959B (zh) * | 2018-09-28 | 2022-03-25 | 北京小米移动软件有限公司 | 定向拉起应用的方法及装置 |
| CN109375959A (zh) * | 2018-09-28 | 2019-02-22 | 北京小米移动软件有限公司 | 定向拉起应用的方法及装置 |
| CN109753352A (zh) * | 2019-01-04 | 2019-05-14 | Oppo广东移动通信有限公司 | 应用冻结的处理方法、电子装置及计算机可读存储介质 |
| CN111988191A (zh) * | 2019-05-22 | 2020-11-24 | 北京华为数字技术有限公司 | 一种分布式通信网络的故障检测方法及装置 |
| CN111988191B (zh) * | 2019-05-22 | 2022-03-29 | 北京华为数字技术有限公司 | 一种分布式通信网络的故障检测方法及装置 |
| EP3962180A4 (en) * | 2019-08-06 | 2022-06-15 | ZTE Corporation | NETWORK-BASED CONTROL METHOD FOR POWER CONSUMPTION OF APPLICATIONS, DEVICES AND STORAGE MEDIUM |
| US11943127B2 (en) | 2019-08-06 | 2024-03-26 | Zte Corporation | Network-based control method for power consumption of applications, terminal and storage medium |
| CN110990066B (zh) * | 2019-11-26 | 2023-12-05 | 江苏嘉则信息技术有限公司 | 一种通信终端的睡眠唤醒方法 |
| CN110990066A (zh) * | 2019-11-26 | 2020-04-10 | 江苏嘉则信息技术有限公司 | 一种通信终端的睡眠唤醒方法 |
| CN113709202A (zh) * | 2020-05-22 | 2021-11-26 | 北京罗克维尔斯科技有限公司 | 唤醒系统芯片的方法及系统 |
| CN113709202B (zh) * | 2020-05-22 | 2023-09-19 | 北京罗克维尔斯科技有限公司 | 唤醒系统芯片的方法及系统 |
| CN113765948A (zh) * | 2020-06-02 | 2021-12-07 | 华为技术有限公司 | 长连接装置和网络系统 |
| WO2021244087A1 (zh) * | 2020-06-02 | 2021-12-09 | 华为技术有限公司 | 长连接装置和网络系统 |
| CN113765948B (zh) * | 2020-06-02 | 2022-12-27 | 华为技术有限公司 | 长连接装置和网络系统 |
| CN112769651A (zh) * | 2021-01-13 | 2021-05-07 | 杭州迪普科技股份有限公司 | 一种tcp连接检测方法、装置及电子设备 |
| CN112769651B (zh) * | 2021-01-13 | 2022-04-26 | 杭州迪普科技股份有限公司 | 一种tcp连接检测方法、装置及电子设备 |
| CN112911692A (zh) * | 2021-03-29 | 2021-06-04 | 努比亚技术有限公司 | 降低能耗的方法、移动终端及计算机可读存储介质 |
| CN113572751A (zh) * | 2021-07-20 | 2021-10-29 | 杭州默安科技有限公司 | 一种网络流量的分析系统及其方法 |
| CN114126014A (zh) * | 2021-11-04 | 2022-03-01 | 维沃移动通信有限公司 | 心跳代理方法和装置 |
| CN114125023B (zh) * | 2021-11-12 | 2024-03-22 | 青岛海尔科技有限公司 | 数据连接的确定方法及装置、存储介质及电子装置 |
| CN114125023A (zh) * | 2021-11-12 | 2022-03-01 | 青岛海尔科技有限公司 | 数据连接的确定方法及装置、存储介质及电子装置 |
| CN118450471A (zh) * | 2023-12-13 | 2024-08-06 | 荣耀终端有限公司 | 唤醒方法、电子设备及可读存储介质 |
| CN120301797A (zh) * | 2024-01-04 | 2025-07-11 | 荣耀终端股份有限公司 | 一种长连接控制方法和设备 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN105763723B (zh) | 移动终端和系统升级方法 | |
| CN105282245B (zh) | 跨服务器消息推送系统及方法 | |
| CN104883658B (zh) | 虚拟卡信息的处理方法及系统 | |
| CN105100090B (zh) | 一种基于内外网分离的通信方法、服务器及系统 | |
| CN105357593B (zh) | 一种上传视频的方法、装置和系统 | |
| CN105511928B (zh) | 系统升级装置和方法 | |
| CN106844029A (zh) | 一种自管理的Android进程冻结和解冻的装置及方法 | |
| CN106453382A (zh) | 一种消息推送方法及装置 | |
| CN106843450A (zh) | 一种终端应用的存储处理方法和装置 | |
| CN107040543A (zh) | 单点登录方法、终端及存储介质 | |
| CN107104970A (zh) | 一种规则同步处理方法、系统、规则服务器及灰度服务器 | |
| CN106506364A (zh) | 一种接入方法、客户端和路由服务器 | |
| CN107122186A (zh) | 悬浮窗的管理方法与管理装置 | |
| CN107360214A (zh) | 一种消息推送处理方法、消息接收处理方法及装置 | |
| CN106991014A (zh) | 一种处理用户输入事件的方法、装置及移动终端 | |
| CN106412103A (zh) | 推送信息的显示装置及方法 | |
| CN106888317A (zh) | 一种交互处理方法、装置及终端 | |
| CN106899574A (zh) | 应用程序登录方法及终端 | |
| CN106775336A (zh) | 一种内容复制处理方法、装置及终端 | |
| CN106911486B (zh) | 一种消息推送处理方法、装置及系统 | |
| CN107229470B (zh) | 一种系统字体切换方法、移动终端以及计算机可读存储介质 | |
| CN109005290A (zh) | 一种闹钟设置方法、终端及计算机可读存储介质 | |
| CN105897700A (zh) | 信息处理方法、终端及服务器 | |
| CN106507460A (zh) | 一种智能省电方法、终端 | |
| CN107027113A (zh) | Sim卡激活方法及移动终端 |
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 | ||
| RJ01 | Rejection of invention patent application after publication | ||
| RJ01 | Rejection of invention patent application after publication |
Application publication date: 20170711 |