CN106951314B - 面向Android系统后台服务自动唤醒的切断方法 - Google Patents

面向Android系统后台服务自动唤醒的切断方法 Download PDF

Info

Publication number
CN106951314B
CN106951314B CN201710142442.3A CN201710142442A CN106951314B CN 106951314 B CN106951314 B CN 106951314B CN 201710142442 A CN201710142442 A CN 201710142442A CN 106951314 B CN106951314 B CN 106951314B
Authority
CN
China
Prior art keywords
service
wake
time window
period
current
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.)
Active
Application number
CN201710142442.3A
Other languages
English (en)
Other versions
CN106951314A (zh
Inventor
崔勇
江逸敏
赖泽祺
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tsinghua University
Original Assignee
Tsinghua University
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Tsinghua University filed Critical Tsinghua University
Priority to CN201710142442.3A priority Critical patent/CN106951314B/zh
Publication of CN106951314A publication Critical patent/CN106951314A/zh
Application granted granted Critical
Publication of CN106951314B publication Critical patent/CN106951314B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4418Suspend and resume; Hibernate and awake
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

面向Android系统后台服务自动唤醒的切断方法,属于移动终端领域的计算资源与能耗优化技术领域,主要包括用于避免唤醒不必要的服务的唤醒管理和用于禁用后台的无效服务的服务管理,唤醒管理通过劫持系统的所有进程间通信,解析唤醒流的源节点和目标节点信息,计算出源节点和目标节点之间的决策因子,根据决策因子大小,切断与用户体验完全无关的后台服务激活途径;服务管理为每个服务分别设置工作和休眠时间窗口,逐步将很少被前台活动调用的服务置于休眠态,使其不过度占用系统的计算资源和网络资源,本发明在保证Android终端功能正常运作的前提下,切断无效的后台服务启动途径,减小终端CPU和内存开销,降低后台通信交互时延,缓解终端运行卡顿,降低能耗。

Description

面向Android系统后台服务自动唤醒的切断方法
技术领域
本发明属于移动终端领域的计算资源与能耗优化技术领域,特别涉及一种面向Android系统后台服务自动唤醒的切断方法。
背景技术
近年来,移动设备已经从用于呼叫和短消息通信的简单设备演变为可以运行各种第三方应用的复杂终端。Android的应用程序通信模型进一步促进了丰富应用程序的开发。Android开发人员可以利用其他应用程序提供的现有数据和服务,同时仍然可以留给用户一个单一、无缝的应用程序的使用体验。这样的开发模型减少了开发者负担,并促进了功能重用。现有Android平台将应用程序划分为四种组件(活动、广播接收器、内容提供器以及服务)并提供消息传递系统,以使组件可以在应用程序内部甚至跨应用程序进行通信。Android提供了特定的组件间通信方法,用于激活组件或触发组件之间的通信。
Android后台任务主要在关闭屏幕时运行,也可能于其他应用程序在前台运行时发生。通常,后台任务的目的是对应用状态进行刷新,进行云服务同步并获得状态更新/通知,或为了实现基于非触摸的用户交互,例如文件下载或音频播放。Android操作系统提供了一个名为“服务”的特殊组件来维护后台任务。服务的管理和使用是灵活和开放的,这使得开发人员可以自由、有效地定义和执行自定义后台任务。
然而,这种开放和自由实际上是一把双刃剑。后台服务很可能是计算和能耗密集型的。如果服务组件被非法应用程序不合理地利用,则会严重影响用户体验。例如,在当前的Android系统上,开发人员可以轻易启动驻留在后台的服务。因为没有提供用户接口,该服务对于用户而言是不可察觉的。因此对于Android的设计人员和应用程序开发人员来说,应正确使用服务以减少不必要的开销并改善用户体验。
目前还少有研究工作探究后台服务在实际Android应用程序中是否被合理使用。通过对120个流行应用进行的大规模测量结果来看,我们发现服务组件在现实部署中被严重过度使用。具体来说,许多应用程序滥用开放式API来激活其他应用程序,或者监听系统广播并激活后台服务。接近32%的后台服务根本不会被用户直接使用,且对用户体验没有帮助。更严重的是,我们发现超过67%的服务会自行启动另一个从未被前台活动使用的服务。
可见,Android后台应用自动唤醒现象非常普遍,且这种现象会带来严重的后果。
发明内容
为了克服上述现有技术的缺点,本发明的目的在于提供一种面向Android系统后台服务自动唤醒的切断方法,能够有效地切断非法后台应用的唤醒途径,使得对提升用户体验没有帮助的后台服务泛滥现象得到有效的缓解;本发明在保证Android终端正常运作的前提下,通过合理地管理后台服务、切断无效的后台服务启动途径,减小终端的CPU和内存的开销,降低后台通信交互时延,缓解终端运行卡顿现象,并降低能耗。
为了实现上述目的,本发明采用的技术方案是:
面向Android系统后台服务自动唤醒的切断方法,包括唤醒管理,所述唤醒管理用于避免唤醒不必要的服务,其方法如下:
步骤(1.1),检测到一次唤醒操作,将当前所有决策因子初始化为1;
步骤(1.2),若上一时段内目标组件运行在前台活动中,则将其决策因子置为1,否则将其决策因子置为上一时段决策因子大小以及服务利用率的加权平均值;
步骤(1.3),若当前决策因子小于阈值,则切断该唤醒操作,否则允许当前唤醒操作。
所述步骤(1.2)中,加权平均值计算公式为:
Figure BDA0001243224010000031
其中,DFt(S,D)表示t时段的组件S与组件D之间的决策因子,每隔单位时间会进行更新,组件D为所述目标组件,是唤醒流的目标节点,组件S是该唤醒流的源节点,t-1表示t时段的上一时段,utilizationa(t)表示当前服务在t时段内执行正常服务功能的时间百分比,act_num表示当前服务所需执行功能的数量。
所述唤醒管理是利用唤醒管理器,劫持系统的所有进程间通信,并解析所有唤醒流的源节点和目标节点信息,然后计算出源节点和目标节点之间的决策因子,当认为需要切断唤醒操作时,通过劫持的方式阻止ActivityManagerService系统模块启动这次唤醒。
本发明还可包括服务管理,所述服务管理用于禁用后台的无效服务,其方法如下:
步骤(2.1)初始化工作时间窗口和休眠时间窗口大小,进入步骤(2.2);
步骤(2.2)令当前后台服务进入工作时间窗口,在此期间服务可以使用系统计算和网络资源,若在该窗口时间段内该服务与前台活动发生过交互,则等本段工作时间窗口结束后进入步骤(2.3),否则等本段工作时间窗口结束后进入步骤(2.4);
步骤(2.3)令当前后台服务进入休眠时间窗口,不得使用系统计算和网络资源,若在此期间该后台服务被前台应用唤醒,则立即重复步骤(2.1);否则直到本休眠时间窗口结束后,重复步骤(2.2);
步骤(2.4)将休眠时间窗口大小翻倍,进入步骤(2.3)。
与现有技术相比,本发明的有益效果是:
1)利用劫持方式识别Android系统中不必要的服务唤醒,并提出了一种定量衡量唤醒必要性的决策因子;
2)提出了一种基于二进制指数退避思想的后台服务管理模式,通过设置工作时间窗口和休眠时间窗口,在保证正常的后台服务功能的前提下,有效地限制无效后台服务持续占用设备的网络资源和计算资源。
3)本发明提出的系统方案不需要修改Android系统源码,用户只需要经过简单易行的操作即可将本系统部署到设备上,可行性高。
附图说明
图1为本发明系统架构原理图。
图2为面向Android系统后台服务自动唤醒的切断技术的唤醒管理器工作流程图。
图3为面向Android系统后台服务自动唤醒的切断技术的服务管理器工作流程图。
具体实施方式
下面结合附图和实施例详细说明本发明的实施方式。
本发明面向Android系统后台服务自动唤醒的切断方法,主要设计思路是:
(1)对后台服务的利用率进行预测,并切断与用户体验完全无关的后台服务的激活途径;
(2)将所有未被使用的后台服务杀死。
为此,如图1所示,本发明设计了两个重要的技术模块:
(1)唤醒管理器,它能够切断不必要的后台服务的唤醒,而且不会对用户体验造成影响;
(2)服务管理器,它能够根据用户使用习惯,智能地禁用无用的后台服务。
在Android系统中,当发起一个启动新服务的组件间通信(例如startService()方法)时,该请求会被发送到系统的ActivityManagerService模块中。接收到请求之后,ActivityManagerService模块会首先检测该服务是否已经被启用。若否,ActivityManagerService模块会开启一个新的线程(受ActivityThread类控制),并在该新线程上启动指定的服务。在系统运行时,唤醒管理器会劫持与记录每次服务唤醒的信息,并根据当前后台服务的使用情况决定是否允许服务的唤醒。此外,服务管理器也会监控所有正在后台运行的服务,并限制无效的服务持续占用系统的计算资源和网络带宽资源。以下两段将详细阐述唤醒管理器与服务管理器的设计。
唤醒管理器的目标是避免唤醒不必要的服务。具体而言,唤醒管理器会劫持系统的所有进程间通信,并解析所有唤醒流的源节点和目标节点信息,然后计算出源节点和目标节点之间的决策因子。唤醒管理器的切断算法会根据决策因子的大小决定是否切断本次唤醒。关于决策因子的设计,基本思想如下:若一个组件被唤醒,却没有与前台活动发生任何的信息交互,则认为这种唤醒是无用的(只会增加终端开销);关于切断算法的设计,除了根据决策因子决定是否切断一次唤醒以外,还会周全地考虑该切断是否会影响正常的用户体验。因此,本发明在唤醒管理器中设置了一个阈值β。若决策因子低于该阈值,唤醒管理器会认为本次唤醒是不必要的,因此会通过劫持的方式阻止ActivityManagerService系统模块启动这次唤醒。
对于唤醒管理器,如图2所示,其唤醒管理主要分为四个步骤:(设当前为t时段)
步骤(1.1)检测到一次唤醒操作,开始初始化,将当前所有决策因子DF的值置为1,进入步骤(1.2)。
步骤(1.2)若t-1时段内,组件D运行在前台活动中,则将DFt(S,D)置为1,进入步骤(1.3),否则进入步骤(1.4);
步骤(1.3)若t-1时段内D没有运行在前台活动中,
Figure BDA0001243224010000051
Figure BDA0001243224010000052
进入步骤(1.4);
步骤(1.4)若DFt(S,D)<β,则当前唤醒是有害的,切断之;若DFt(S,D)≥β,不做额外操作。
其中,参数定义如下:
DFt(S,D),t时段的组件S与组件D之间的决策因子,每隔单位时间会进行更新。组件D为唤醒流的目标节点,组件S为该唤醒流的源节点utilizationa(t),当前服务在t时段内的利用率,即当前服务在t时段内执行正常服务功能的时间百分比。
act_num,当前服务所需执行功能的数量。
β,决策因子阈值,低于该值则认为本次唤醒为有害唤醒。
服务管理器的作用是禁用后台的无效服务。如前文所述,唤醒管理器会阻止不必要的服务唤醒。然而,现有Android系统中仍有相当部分的无效服务无法通过上述方法禁用。例如,某些后台服务对于一些特定的前台操作是必要的,但是在完成该前台操作后,这些服务却会常驻后台,占用着终端的网络和CPU资源。为解决这种问题,服务管理器的基本思路是:令无用的服务进入休眠态,仅当前台活动需要时才将其唤醒。Android系统对启用的服务没有加以限制。这些服务可以自由地使用CPU和网络带宽资源,即使它们对用户体验并没有任何帮助。考虑到Android系统对后台服务疏于管理的现状,服务管理器为每个服务分别设置了工作时间窗口和休眠时间窗口,并采用了一种基于二进制指数退避思想的后台服务管理模式。当服务处于工作时间窗口内时,服务可以使用CPU和网络资源;当服务处于休眠时间窗口内时,服务不能够使用CPU和网络资源。而对于每个服务,这两种窗口机制是交替运行的。若某服务在工作时间窗口内没有与前台进程发生数据交互,服务管理器会将其休眠时间窗口加倍,使其休眠的时间更长。通过这种方式,服务管理器能够逐步将很少被前台活动调用的服务置于休眠态,使其不过度占用系统的计算资源和网络资源。若在休眠过程中,前台应用需要用到后台服务,服务管理器会立刻将该服务调整到工作时间窗口内,并将其对应的休眠时间窗口置为初始值。
对于服务管理器,如图3所示,其服务管理主要分为四个步骤:
步骤(2.1)初始化工作时间窗口和休眠时间窗口大小。进入步骤(2.2)。
步骤(2.2)令当前后台服务进入工作时间窗口,在此期间服务可以使用系统计算和网络资源。若在该窗口时间段内该服务与前台活动发生过交互,则等本段工作时间窗口结束后进入步骤(2.3),否则进入步骤(2.4)。
步骤(2.3)令当前后台服务进入休眠时间窗口,不得使用系统计算和网络资源。若在此期间该后台服务被前台应用唤醒,则立即重复步骤(2.1);否则直到本休眠时间窗口结束后,重复步骤(2.2)。
步骤(2.4)将休眠时间窗口大小翻倍。进入步骤(2.3)。
综上所述,本发明提出了一种基于Android平台的后台应用唤醒切断方法,能够有效地切断非法后台服务的唤醒途径,并限制无效后台服务持续占用系统的计算资源和网络带宽资源,使得对提升用户体验没有帮助的后台服务泛滥和相互唤醒现象得到有效的缓解。

Claims (1)

1.面向Android系统后台服务自动唤醒的切断方法,其特征在于,包括唤醒管理和服务管理,所述唤醒管理是利用唤醒管理器,劫持系统的所有进程间通信,并解析所有唤醒流的源节点和目标节点信息,然后计算出源节点和目标节点之间的决策因子,当认为需要切断唤醒操作时,通过劫持的方式阻止ActivityManagerService系统模块启动这次唤醒,从而避免唤醒不必要的服务,其方法如下:
步骤(1.1),检测到一次唤醒操作,将当前所有决策因子初始化为1;
步骤(1.2),若上一时段内目标组件运行在前台活动中,则将其决策因子置为1,否则将其决策因子置为上一时段决策因子大小以及服务利用率的加权平均值,加权平均值计算公式为:
Figure FDA0002391867960000011
其中,DFt(S,D)表示t时段的组件S与组件D之间的决策因子,每隔单位时间会进行更新,组件D为所述目标组件,是唤醒流的目标节点,组件S是该唤醒流的源节点,t-1表示t时段的上一时段,utilizationa(t)表示当前服务在t时段内执行正常服务功能的时间百分比,act_num表示当前服务所需执行功能的数量;
步骤(1.3),若当前决策因子小于阈值,则切断该唤醒操作,否则允许当前唤醒操作;
所述服务管理用于禁用后台的无效服务,其方法如下:
步骤(2.1)初始化工作时间窗口和休眠时间窗口大小,进入步骤(2.2);
步骤(2.2)令当前后台服务进入工作时间窗口,在此期间服务能够使用系统计算和网络资源,若在该窗口时间段内该服务与前台活动发生过交互,则等本段工作时间窗口结束后进入步骤(2.3),否则等本段工作时间窗口结束后进入步骤(2.4);
步骤(2.3)令当前后台服务进入休眠时间窗口,不得使用系统计算和网络资源,若在此期间该后台服务被前台应用唤醒,则立即重复步骤(2.1);否则直到本休眠时间窗口结束后,重复步骤(2.2);
步骤(2.4)将休眠时间窗口大小翻倍,进入步骤(2.3)。
CN201710142442.3A 2017-03-10 2017-03-10 面向Android系统后台服务自动唤醒的切断方法 Active CN106951314B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710142442.3A CN106951314B (zh) 2017-03-10 2017-03-10 面向Android系统后台服务自动唤醒的切断方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710142442.3A CN106951314B (zh) 2017-03-10 2017-03-10 面向Android系统后台服务自动唤醒的切断方法

Publications (2)

Publication Number Publication Date
CN106951314A CN106951314A (zh) 2017-07-14
CN106951314B true CN106951314B (zh) 2020-06-09

Family

ID=59467840

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710142442.3A Active CN106951314B (zh) 2017-03-10 2017-03-10 面向Android系统后台服务自动唤醒的切断方法

Country Status (1)

Country Link
CN (1) CN106951314B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109992398B (zh) * 2017-12-29 2021-06-25 Oppo广东移动通信有限公司 资源管理方法、装置、移动终端及计算机可读存储介质
CN109992425B (zh) * 2017-12-29 2022-03-15 Oppo广东移动通信有限公司 信息处理方法、装置、计算机设备和计算机可读存储介质
CN110018901B (zh) * 2018-01-10 2021-08-03 Oppo广东移动通信有限公司 内存回收方法、装置、计算机设备和计算机可读存储介质
CN110806925B (zh) * 2018-08-06 2022-08-23 成都鼎桥通信技术有限公司 音频播放方法及设备
CN117632521B (zh) * 2024-01-26 2024-05-03 中电云计算技术有限公司 后台任务的cpu利用率控制方法、装置、设备及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105894176A (zh) * 2016-03-12 2016-08-24 丽水学院 基于延长连续工作时间的弹性服务制排班系统和方法
CN106059835A (zh) * 2016-07-28 2016-10-26 北京神狐时代通信技术有限公司 一种低能耗计算机集群节点的高可靠性控制方法
CN106412959A (zh) * 2016-10-21 2017-02-15 黄东 一种大数据移动网络端口的业务优化调度方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105894176A (zh) * 2016-03-12 2016-08-24 丽水学院 基于延长连续工作时间的弹性服务制排班系统和方法
CN106059835A (zh) * 2016-07-28 2016-10-26 北京神狐时代通信技术有限公司 一种低能耗计算机集群节点的高可靠性控制方法
CN106412959A (zh) * 2016-10-21 2017-02-15 黄东 一种大数据移动网络端口的业务优化调度方法

Also Published As

Publication number Publication date
CN106951314A (zh) 2017-07-14

Similar Documents

Publication Publication Date Title
CN106951314B (zh) 面向Android系统后台服务自动唤醒的切断方法
US9535747B2 (en) Application heartbeat period adjusting method and apparatus, and terminal
CN105354044B (zh) 一种应用唤醒方法及装置
Athivarapu et al. Radiojockey: mining program execution to optimize cellular radio usage
US9568989B2 (en) Method for acting as service agent, modem, and terminal by establishing a heartbeat connection with an application server
CN105573460B (zh) 应用程序唤醒时间的调节方法及装置
RU2739290C1 (ru) Способ управления многоадресным однонаправленным каналом и оконечное устройство
EP3013114B1 (en) Method for sending heartbeat message and mobile terminal
US8606290B2 (en) Method and apparatus for performing a demotion in a cellular communications network
WO2013091561A1 (zh) 一种节能方法、装置及通讯终端
WO2017161638A1 (zh) 一种多系统的冻结与唤醒方法及装置
WO2017156676A1 (zh) 一种针对应用的处理方法、装置及智能终端
US20170289075A1 (en) Method and Device for Managing Instant Communication Application Program, and Mobile Terminal thereof
CN112383585A (zh) 消息处理系统、方法及电子设备
CN109992314B (zh) 数据上报方法、装置、终端和存储介质
CN106686708B (zh) 一种数据业务管理的方法及装置
CN110022596B (zh) 一种终端待机状态的配置方法、装置及管理平台
CN110928586B (zh) App后台保活方法及装置
US20230276532A1 (en) RRC Connection Release Control Method and Apparatus
CN113784369A (zh) 功率余量报告phr上报方法、装置及终端
TWI407765B (zh) 行動裝置、省電方法及電腦可執行媒體
WO2022028597A1 (zh) 控制辅小区的方法、终端及网络侧设备
US9639137B2 (en) Control method and electronic device
CN107436674A (zh) 终端控制方法、装置及非临时性计算机可读介质
CN114765907A (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
GR01 Patent grant
GR01 Patent grant