一种移动终端及其唤醒锁控制方法和控制系统
技术领域
本发明涉及通信技术领域,特别是一种移动终端的唤醒锁控制方法及其应用该方法的系统、移动终端。
背景技术
手持设备设计中,由于电源有限,电源管理就显得尤为重要。通过挂起不必要的设备,降低CPU的频率或者其他方法,可以减少能量的消耗,达到省电的目的。电源管理作为一个系统工程,从应用程序到内核框架,再到设备驱动和硬件设备,通过降低组件闲置时的能耗,将电源有效地分配给系统的不同组件,使其达到电源管理最优化。
Android电源管理建立在标准Linux电源管理的基础上,而又增加了自己独有的方法去管理和节省电源,这种Android独有的方法被称之为唤醒锁机制。现有的唤醒锁机制中,Android应用或者服务在申请CPU资源的时候会占据一个唤醒锁(WakeLock),电源管理服务在监测到有唤醒锁被占据时,Android应用框架层以及本地库通知电源管理驱动保持CPU活动状态;一旦系统中没有任何活动的唤醒锁时,Android就会关闭CPU,达到节能的目的。
Android系统设计wake lock电源管理机制是为了应用和内核更好的使用到系统的设备保证系统和应用程序的正常运行。但是一些第三方应用对唤醒锁机制的不规范甚至是滥用,导致手机的续航受到了很大的影响。这些应用由于程序运行的需要而申请了唤醒锁,但是在运行完成之后没有进行释放,导致系统功耗增大。还有一些应用可能是恶意的应用,申请了永久的唤醒锁k锁,使得手机一直运行于高功耗状态下,手机续航大大降低。这些第三方应用对唤醒锁不规范的使用不容易被用户察觉,用户面对这种情况也不知道相应的解决方案,并且很有可能误以为是电池出了问题,所以需要一种机制来优化系统中唤醒锁的使用。
发明内容
本发明为解决上述问题,提供了一种移动终端及其唤醒锁控制方法和控制系统,其通过优化唤醒锁的释放机制,降低手机功耗,增加手机续航,提升用户体验。
为实现上述目的,本发明采用的技术方案为:
首先,本发明提供一种移动终端的唤醒锁控制方法,其包括以下步骤:
10.对移动终端进行状态检测,若移动终端为运行状态,则不对唤醒锁执行释放操作;若移动终端为待机状态,则执行步骤20;
20.对移动终端中持有唤醒锁的应用程序进行属性检测,若该应用程序属于系统进程或者属于白名单,则不对唤醒锁执行释放操作;否则执行步骤30;
30.对移动终端中持有唤醒锁的应用程序进行超时检测,若该应用程序的唤醒锁使用时间未超过预设时间范围,则不对唤醒锁执行释放操作并继续对该应用程序进行超时检测;若该应用程序的唤醒锁使用时间超过预设时间范围,则释放该应用程序的唤醒锁并返回步骤10。
优选的,所述的步骤10中对移动终端进行状态检测,主要是检测移动终端是否正在播放音频、是否正在充电、是否正在下载、是否正在亮屏,若其中任一项的检测结果为是,则表示该移动终端为运行状态;若所有项的检测结果均为否,则表示该移动终端为待机状态。
优选的,所述的步骤20中对移动终端中持有唤醒锁的应用程序进行属性检测,主要是检测该应用程序是否属于系统进程或是否位于白名单中,若其中任一项的检测结果为是,则不对唤醒锁执行释放操作;若所有项的检测结果均为否,则进一步对该应用程序进行超时检测。
优选的,所述的步骤30中对移动终端中持有唤醒锁的应用程序进行超时检测,其中该应用程序的唤醒锁使用时间是从亮屏停止时开始计时,并在亮屏开启后计时归零。
优选的,若移动终端的所有应用程序均未持有唤醒锁或者唤醒锁均已释放,则不再执行应用程序的属性检测和超时检测,直至下一次亮屏停止时再重新启动应用程序的属性检测和超时检测。
其次,本发明提供一种移动终端的唤醒锁控制系统,其包括:
移动终端状态检测模块,其对移动终端进行状态检测,若移动终端为运行状态,则不对唤醒锁执行释放操作;若移动终端为待机状态,则由应用程序属性检测模块对各个应用程序执行属性检测;
应用程序属性检测模块,其对移动终端中持有唤醒锁的应用程序进行属性检测,若该应用程序属于系统进程或者属于白名单,则不对唤醒锁执行释放操作;否则由应用程序超时检测模块对该应用程序执行超时检测;
应用程序超时检测模块,其对移动终端中持有唤醒锁的应用程序进行超时检测,若该应用程序的唤醒锁使用时间未超过预设时间范围,则不对唤醒锁执行释放操作并继续对该应用程序进行超时检测;若该应用程序的唤醒锁使用时间超过预设时间范围,则释放该应用程序的唤醒锁。
优选的,所述的移动终端状态检测模块进一步包括:
音频检测单元,用于检测移动终端是否正在播放音频;
充电检测单元,用于检测移动终端是否正在充电;
下载检测单元,用于检测移动终端是否正在下载;
亮屏检测单元,用于检测移动终端是否正在亮屏;
若其中任一检测单元的检测结果为是,则表示该移动终端为运行状态;若所有检测单元的检测结果均为否,则表示该移动终端为待机状态。
优选的,所述的应用程序属性检测模块进一步包括:
系统进程检测单元,用于检测该应用程序是否属于系统进程;
名单检测单元,用于检测该应用程序是否位于白名单中;
若其中任一检测单元的检测结果为是,则不对唤醒锁执行释放操作;若所有检测单元的检测结果均为否,则进一步调用应用程序超时检测模块对该应用程序进行超时检测。
优选的,所述的应用程序超时检测模块包括用于计算应用程序的唤醒锁使用时间的计时器,亮屏停止时调用所述计时器开始计时,并在亮屏开启后计时归零。
另外,本发明还提供一种移动终端,该移动终端包括电源管理系统,还包括上述任一项所述的唤醒锁控制系统,该唤醒锁控制系统与电源管理系统相连接。
本发明的有益效果是:
本发明的一种移动终端及其唤醒锁控制方法和控制系统,其通过对移动终端进行状态检测,若移动终端为运行状态,则不对唤醒锁执行释放操作;若移动终端为待机状态,则进一步对移动终端中持有唤醒锁的应用程序进行属性检测,若该应用程序属于系统进程或者属于白名单,则不对唤醒锁执行释放操作;否则再一步对移动终端中持有唤醒锁的应用程序进行超时检测,若该应用程序的唤醒锁使用时间未超过预设时间范围,则不对唤醒锁执行释放操作并继续对该应用程序进行超时检测;若该应用程序的唤醒锁使用时间超过预设时间范围,则释放该应用程序的唤醒锁;从而减少手机功耗,延长续航,提升用户体验。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本发明的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1为本发明移动终端的唤醒锁控制方法的流程简图;
图2为本发明移动终端的状态检测方法的流程简图;
图3为本发明持有唤醒锁的应用程序的属性检测方法的流程简图;
图4为本发明移动终端的唤醒锁控制系统的结构示意图;
图5为本发明移动终端的结构示意图;
图6为采用现有技术的移动终端的待机电流图;
图7为采用本发明唤醒锁控制方法的移动终端待机电流图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,本发明的一种移动终端的唤醒锁控制方法,其包括以下步骤:
10.对移动终端进行状态检测,若移动终端为运行状态,则不对唤醒锁执行释放操作;若移动终端为待机状态,则执行步骤20;
20.对移动终端中持有唤醒锁的应用程序进行属性检测,若该应用程序属于系统进程或者属于白名单,则不对唤醒锁执行释放操作;否则执行步骤30;
30.对移动终端中持有唤醒锁的应用程序进行超时检测,若该应用程序的唤醒锁使用时间未超过预设时间范围,则不对唤醒锁执行释放操作并继续对该应用程序进行超时检测;若该应用程序的唤醒锁使用时间超过预设时间范围,则释放该应用程序的唤醒锁并返回步骤10。
如图2所示,所述的步骤10中对移动终端进行状态检测,主要是检测移动终端是否正在播放音频、是否正在充电、是否正在下载、是否正在亮屏,若其中任一项的检测结果为是,则表示该移动终端为运行状态;若所有项的检测结果均为否,则表示该移动终端为待机状态。其中,所述的音频包括音频通话、铃声、FM以及音乐等;且,上述状态检测的检测项目仅列举了几个主要项目,本领域技术人员在实际检测过程中还可以根据需要添加其他检测项目。以上检测通过后,将逐个对各个应用程序的唤醒锁进行检测。
如图3所示,所述的步骤20中对移动终端中持有唤醒锁的应用程序进行属性检测,主要是检测该应用程序是否属于系统进程或是否位于白名单中,若其中任一项的检测结果为是,则不对唤醒锁执行释放操作;若所有项的检测结果均为否,则进一步对该应用程序进行超时检测。上述判断是否属于系统进程,主要是通过Package Manager判断,以及特殊判断media、android,该部分属于公知常识,在此不进行赘述。所述的步骤30中对移动终端中持有唤醒锁的应用程序进行超时检测,其中该应用程序的唤醒锁使用时间是从亮屏停止时开始计时,并在亮屏开启后计时归零。
还未释放唤醒锁的应用程序重新对其进行超时检测,直到唤醒锁的使用时间达到预设的时间范围,本实施例中,该预设的时间范围为5分钟。
若移动终端的所有应用程序均未持有唤醒锁或者唤醒锁均已释放,则不再执行应用程序的属性检测和超时检测,直至下一次亮屏停止时再重新启动应用程序的属性检测和超时检测。
如图4所示,本发明提供一种移动终端的唤醒锁控制系统100,其包括:
移动终端状态检测模块101,其对移动终端进行状态检测,若移动终端为运行状态,则不对唤醒锁执行释放操作;若移动终端为待机状态,则由应用程序属性检测模块102对各个应用程序执行属性检测;
应用程序属性检测模块102,其对移动终端中持有唤醒锁的应用程序进行属性检测,若该应用程序属于系统进程或者属于白名单,则不对唤醒锁执行释放操作;否则由应用程序超时检测模块103对该应用程序执行超时检测;
应用程序超时检测模块103,其对移动终端中持有唤醒锁的应用程序进行超时检测,若该应用程序的唤醒锁使用时间未超过预设时间范围,则不对唤醒锁执行释放操作并继续对该应用程序进行超时检测;若该应用程序的唤醒锁使用时间超过预设时间范围,则释放该应用程序的唤醒锁。
本实施例中,所述的移动终端状态检测模块101进一步包括:
音频检测单元,用于检测移动终端是否正在播放音频;
充电检测单元,用于检测移动终端是否正在充电;
下载检测单元,用于检测移动终端是否正在下载;
亮屏检测单元,用于检测移动终端是否正在亮屏;
若其中任一检测单元的检测结果为是,则表示该移动终端为运行状态;若所有检测单元的检测结果均为否,则表示该移动终端为待机状态。
所述的应用程序属性检测模块102进一步包括:
系统进程检测单元,用于检测该应用程序是否属于系统进程;
名单检测单元,用于检测该应用程序是否位于白名单中;
若其中任一检测单元的检测结果为是,则不对唤醒锁执行释放操作;若所有检测单元的检测结果均为否,则进一步调用应用程序超时检测模块对该应用程序进行超时检测。
其中,所述的应用程序超时检测模块103包括用于计算应用程序的唤醒锁使用时间的计时器,亮屏停止时调用所述计时器开始计时,并在亮屏开启后计时归零。
如图5所示,本发明还提供一种移动终端300,该移动终端包括电源管理系统200,还包括上述任一项所述的唤醒锁控制系统100,该唤醒锁控制系统100与电源管理系统200相连接。通过实验可以看出,采用本发明唤醒锁控制方法的移动终端待机电流(图7)与采用现有技术的移动终端的待机电流(图6)相比,待机电流得到了明显的减小,维持在一个比较低的水平,说明采用本发明的唤醒锁控制方法能改起到明显改善待机电流的效果从而减少手机功耗,延长续航。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于系统实施例和终端实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。并且,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。另外,本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
上述说明示出并描述了本发明的优选实施例,应当理解本发明并非局限于本文所披露的形式,不应看作是对其他实施例的排除,而可用于各种其他组合、修改和环境,并能够在本文发明构想范围内,通过上述教导或相关领域的技术或知识进行改动。而本领域人员所进行的改动和变化不脱离本发明的精神和范围,则都应在本发明所附权利要求的保护范围内。