一种休眠拦截方法及系统的制作方法

文档序号:6373103阅读:175来源:国知局
专利名称:一种休眠拦截方法及系统的制作方法
技术领域
本发明涉及手持设备领域,特别涉及一种休眠拦截方法及系统。
背景技术
现阶段随着手持设备的应用越来越广泛,功能日益丰富,相应的手持设备的耗电功率也越来越高,手持设备的电池续航能力也成为用户采购时较为关注的一项参数。由于现阶段电池技术的局限,很多手持设备的续航时间往往达不到用户理想的效果,所以手持设备节电能力的改良也成为研发的一项重点内容。手持设备的节电主要可以从硬件和软件两方面入手;硬件方面来讲,可以通过降低设备在工作时的功耗来达到节电的目的;软件方面来讲,可以在设备闲置时让设备进入 休眠状态,从而将能耗降到最低,当用户对设备进行操作时再将设备从休眠状态中唤醒。现阶段手持设备的操作系统中,除了系统自身拥有控制设备进入休眠的能力之夕卜,也会对其他应用程序开放休眠拦截接口,允许其他软件干涉设备的休眠与唤醒。这类接口的功能一般是允许应用程序组织设备进入休眠或将设备从休眠中唤醒。利用此类接口实现应用程序干涉设备休眠的机制被称为休眠拦截机制,即WakeLock机制。在WakeLock机制下,某个应用程序可以利用休眠拦截接口执行锁定(acquire)或释放(release)两种操作。当某一个应用程序执行acquire操作时,则表示该应用程序向系统申请拦截休眠,WakeLock机制在此时不允许系统进入休眠;当应用程序执行release操作,则释放拦截休眠的申请。WakeLock机制之下,只有当系统发现所有的应用程序均未执行acquire操作时,才能够进入休眠。WakeLock机制的流程图如图I所示,当设备空闲时间超过预设时间,则判断是否存在应用程序执行acquire操作,如果存在则保持唤醒状态,如果不存在则进入休眠状态。但是WakeLock机制存在的缺点是,该休眠拦截接口易被某些恶意软件滥用,一些程序由于自身功能的不完善,甚至处于一些特定的业务目的,会长时间的阻止设备进入休目民,执行acquire操作之后不对其释放,从而导致了系统不能进入休眠状态,提高了设备的耗能,也违背了 WakeLock机制通过控制休眠来促进设备节电,增强电池续航能力的初衷。

发明内容
有鉴于此,本发明的目的在于提供一种休眠拦截方法及系统,通过配置休眠拦截权限来阻止一部分程序对设备休眠的干涉,从而屏蔽了恶意程序阻止其执行acquire操作。为实现上述目的,有如下技术方案一种休眠拦截方法,根据用户指令为应用程序配置休眠拦截权限,则所述方法包括以下步骤当应用程序利用休眠拦截接口发出执行锁定操作和/或释放操作的指令时;判断发出指令的应用程序是否存在休眠拦截权限;
如果存在则按照该应用程序发出的指令执行该操作,如果不存在则屏蔽该指令。所述为应用程序配置休眠拦截权限具体为仅为指定的程序配置休眠拦截权限,对未指定的程序不配置休眠拦截权限;或仅对指定的程序不配置休眠拦截权限,对未指定的程序配置休眠拦截权限。所述为指定的程序配置休眠拦截权限或对未指定的程序配置休眠拦截权限具体为生成一个配置文件,将需要配置休眠拦截权限的应用程序的名称标识写入一个XML格式的名单中,并将该名单写入所述配置文件。所述锁定操作和/或释放操作的指令中包含发出指令的应用程序的名称标识,则 所述判断发出指令的应用程序是否存在休眠拦截权限具体为 根据所述指令获取发出指令的应用程序的名称标识,并以该程序的名称标识与所述配置文件中写入需要配置休眠拦截权限的程序名称标识的名单进行对照;如果该名单中包含该程序的名称标识则认为该程序存在休眠拦截权限;如果该名单中不包含该程序的名称标识则认为该程序不存在休眠拦截权限。所述方法还包括判断系统空置时间是否达到预先设置的进入休眠时间;当空置时间达到进入休眠时间,则判断是否有应用程序执行了锁定操作;当任意程序执行了锁定操作,则系统保持唤醒状态;当没有程序执行锁定操作,则系统进入休眠。所述方法还包括当有程序执行锁定操作使系统保持唤醒状态时,设置一个判断周期时间,每隔判断周期时间重新判断是否有应用程序执行了锁定操作;如果存在则系统保持唤醒状态,直到不存在程序执行锁定操作,则系统进入休眠状态。一种休眠拦截系统,所述系统包括配置模块,用于根据用户指令为应用程序配置休眠拦截权限;权限模块,用于当应用程序利用休眠拦截接口发出执行锁定操作和/或释放操作的指令时;判断发出指令的应用程序是否存在休眠拦截权限;并生成判断权限结果;执行模块,用于获取所述判断权限结果,如果判断权限结果为存在休眠拦截权限,则按照该应用程序发出的指令执行该操作,如果判断权限结果为不存在休眠拦截权限,则屏蔽该指令。所述配置模块包括白名单单元和/或黑名单单元,具体为白名单单元,用于获得用户指定出的需要配置休眠拦截权限的程序,仅为指定的程序配置休眠拦截权限,对未指定的程序不配置休眠拦截权限;黑名单单元,用于获得用户指定出的不需要配置休眠拦截权限的程序,仅对指定的程序不配置休眠拦截权限,对未指定的程序配置休眠拦截权限。所述系统还包括空置时间模块,用于预先设置进入休眠时间,判断系统空置时间是否达到进入休眠时间,当达到进入休眠时间则触发锁定模块;
锁定模块,用于在空置时间模块触发之下,判断是否有应用程序执行了锁定操作,生成判断操作结果;休眠控制模块,用于获取判断操作结果,当判断操作结果中显示任意程序执行了锁定操作,则系统保持唤醒状态;当没有程序执行锁定操作,则系统进入休眠。所述系统还包括循环模块,用于当有程序执行锁定操作使系统保持唤醒状态时,设置一个判断周期时间,每隔判断周期时间重新判断是否有应用程序执行了锁定操作;如果存在则系统保持唤醒状态,直到不存在程序执行锁定操作,则系统进入休眠状态。通过以上技术方案可知,本发明存在的有益效果是通过为应用程序配置休眠拦截权限,禁止了一部分不良程序执行锁定操作,避免了一些程序由于自身功能的不完善,甚至处于一些特定的业务目的,而长时间的阻止设备进入休眠;从而使得系统能够正常的进 入休眠状态,降低设备的耗电量,提高电池续航时间。


为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图I为现有技术中WakeLock机制流程示意图;图2为本发明实施例所述方法流程图;图3为本发明另一实施例所述方法流程图;图4为本发明实施例所述系统结构示意图;图5为本发明另一实施例所述系统结构示意图。
具体实施例方式为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。参照图I所示,为本发明所述方法的一个具体实施例,本实施例中所述方法是基于WakeLock,也就是本实施例中同样是应用程序利用休眠拦截接口执行锁定操作或释放操作。应用程序在执行锁定操作以后,系统将无法进入休眠状态,应用程序也可以通过执行释放操作接触对系统的锁定;当没有任何一个应用程序执行锁定操作时,系统才可以进入休眠状态。本实施例中所述方法包括以下步骤步骤101、根据用户指令为应用程序配置休眠拦截权限;步骤102、当应用程序利用休眠拦截接口发出执行锁定操作和/或释放操作的指令时;判断发出指令的应用程序是否存在休眠拦截权限;步骤103、如果存在则按照该应用程序发出的指令执行该操作,如果不存在则屏蔽该指令。本实施例为本发明所述方法的一个基础实施例,本实施例通过休眠拦截权限的配置,使得用户信任的一部分应用程序具有休眠拦截权限,而另一些恶意程序或者不受信任的程序则不为其匹配该权限,这也就防止了休眠拦截接口的滥用,避免了某些程序长期执行锁定操作,使得系统无法进入休眠的情况发生。由于系统进入休眠状态时耗电功率大幅度降低,所以保证系统能够正常的进入休眠状态,对于硬件设备的节电有着重要的影响。需要说明是,本实施例中为应用程序配置休眠拦截权限具体可以采取以下两种方式一为用户指定出需要配置休眠拦截权限的程序,仅为指定的程序配置休眠拦截权限,对未指定的程序不配置休眠拦截权限;即传统的白名单模式。该模式中用户需要筛选出受到信任的应用程序加入白名单,并为这一部分应用程序配置休眠拦截权限,其他程序均不配置该权限。另一为用户指定出不需要配置休眠拦截权限的程序,仅对指定的程序不配置休眠 拦截权限,对未指定的程序配置休眠拦截权限;即传统的黑名单模式。在这一模式中,用户需要筛选出不被信任的应用程序加入黑名单,仅针对这一部分应用程序不配置休眠拦截权限;对于黑名单以外的应用程序均配置休眠拦截权限。用户可以根据需要在两种模式中选择一种,或者同时开启两种模式。参照图2所示,为本发明所述方法的另一个具体实施例,本实施例中,所述方法应用在手持设备的系统软件当中,具体步骤如下步骤201、生成一个配置文件,将需要配置休眠拦截权限的应用程序的名称标识写入一个XML格式的名单中,并将该名单写入所述配置文件;本实施例中,在确定所述需要配置休眠拦截权限的应用程序时,同样可以采取图I所示实施例中的白名单模式或者黑名单模式;在白名单模式下,将白名单中的应用程序名称标识写入XML格式名单;在黑名单模式下,将黑名单以外的应用程序名称标识写入XML格式名单。而一般来讲,系统中每个应用程序必定会存在一个名称标识,即包名(PackageName),系统中以此对应用程序进行区分和识别。步骤202、应用程序利用休眠拦截接口发出执行锁定操作和/或释放操作的指令,所述指令包含发出指令的应用程序的名称标识;步骤203、根据所述指令获取发出指令的应用程序的名称标识,并以该程序的名称标识与所述配置文件中写入需要配置休眠拦截权限的程序名称标识的名单进行对照;本步骤的目的即判断该应用程序是否存在休眠拦截权限,本实施例中通过对照该应用程序是否被写入了所述XML格式名单当中,也就是如果该名单中包含该程序的名称标识则认为该程序存在休眠拦截权限;如果该名单中不包含该程序的名称标识则认为该程序不存在休眠拦截权限。步骤204、如果该应用程序存在休眠拦截权限,则按照该应用程序发出的指令执行该操作,如果不存在则屏蔽该指令;本实施例中,该拦截动作在系统底层完成,拦截动作本身是透明的,也即应用程序所发出的执行锁定操作和/或释放操作的指令后,返回给应用程序的反馈仍然正常,但不存在权限的应用程序所发出的指令即被拦截,不予执行。在以上三个步骤中,实现的技术效果与图I所示实施例基本一致,配置了休眠拦截权限的应用程序即可以利用休眠拦截接口执行操作并干涉系统进入休眠。当应用程序执行了锁定(acquire)操作,则起到阻止系统进入休眠的作用,当应用程序不需要继续对系统执行acquire操作时,则利用释放(release)操作解除对系统的锁定。步骤205、判断系统空置时间是否达到预先设置的进入休眠时间;如果达到则进入步骤206 ;本实施例中该步骤类似于个人计算机在一定时间内没有被操作,则进入待机状态或睡眠状态的过程。本实施例中可以假设预设的进入休眠时间为5分钟;当所述连续5分钟以上没有对手持设备进行任何操作,则空置时间达到进入休眠时间。步骤206、当空置时间达到进入休眠时间,则判断是否有应用程序执行了锁定操 作;本实施例中由于应用程序同样存在干涉系统进入休眠的权限,即系统开放了休眠拦截接口,所以即使空置时间达到了进入休眠时间,系统也不能够自行进入休眠。系统还必须判断是否有程序执行了 acquire操作。当然在本实施例中通过步骤201至步骤203的配置,只有存在休眠拦截权限的应用程序才能够使用休眠拦截接口执行acquire操作。步骤207、当任意程序执行了锁定操作,则系统保持唤醒状态;当没有程序执行锁定操作,则系统进入休眠。本实施例中拦截休眠的机制与现有的WakeLock机制基本相同,当任意程序执行了 acquire操作,则系统不能进入休眠,必须保持唤醒;只有在所有程序都没有执行acquire操作的情况下,系统才可以进入休眠。另外,本实施例中还加入了一种循环机制,具体如下当有程序执行锁定操作使系统保持唤醒状态时,设置一个判断周期时间,每隔判断周期时间重新判断是否有应用程序执行了锁定操作;如果存在则系统保持唤醒状态,直到不存在程序执行锁定操作,则系统进入休眠状态。也就是设置一个周期,并且按照此周期重复执行步骤205和步骤206。如果某一次判断中,由于某些应用程序执行了 acquire操作导致系统不能进入休眠,则一个时间周期之后,重新判断是否有程序执行了 acquire操作。如果原来的acquire操作全部被release操作释放的话,则系统进入休眠;如果acquire操作依然存在那么系统保持唤醒,并且在下一个周期继续重复步骤206和步骤207中的判断过程。本实施例存在的有益效果是,基于传统的WakeLock机制下,阻止了一部分程序对于休眠拦截接口的使用;即坚持了 WakeLock机制通过控制休眠来促进设备节电,增强电池续航能力的初衷,也避免了休眠拦截接口的滥用。同时通过循环机制的建立,每隔一段时间对重新判断系统中是否有程序执行acquire操作,实现系统中不存在acquire操作时尽快进入休眠。参照图3所示,为本发明所述休眠拦截系统的一个具体实施例,本实施例中所述系统包括配置模块,用于根据用户指令为应用程序配置休眠拦截权限;
权限模块,用于当应用程序利用休眠拦截接口发出执行锁定操作和/或释放操作的指令时;判断发出指令的应用程序是否存在休眠拦截权限;并生成判断权限结果;执行模块,用于获取所述判断权限结果,如果判断权限结果为存在休眠拦截权限,则按照该应用程序发出的指令执行该操作,如果判断权限结果为不存在休眠拦截权限,则屏蔽该指令。本实施例为对应图I所示方法实施例而设计的系统实施例,二者的技术方案在本质上一致。本实施例通过休眠拦截权限的配置,使得用户信任的一部分应用程序具有休眠拦截权限,而另一些恶意程序或者不受信任的程序则不为其匹配该权限,这也就防止了休眠拦截接口的滥用,避免了某些程序长期执行锁定操作,使得系统无法进入休眠的情况发生。由于系统进入休眠状态时耗电功率大幅度降低,所以保证系统能够正常的进入休眠状态,对于硬件设备的节电有着重要的影响。本实施例中所述配置模块可同时包括两个子单元或包括二者中的任意一个,所述 两个子单元分别为白名单单元和黑名单单元。白名单单元,用于获得用户指定出的需要配置休眠拦截权限的程序,仅为指定的程序配置休眠拦截权限,对未指定的程序不配置休眠拦截权限;当利用所述白名单单元执行权限配置时,即对应传统的白名单模式,该模式中用户需要筛选出受到信任的应用程序加入白名单,并为这一部分应用程序配置休眠拦截权限,其他程序均不配置该权限;黑名单单元,用于获得用户指定出的不需要配置休眠拦截权限的程序,仅对指定的程序不配置休眠拦截权限,对未指定的程序配置休眠拦截权限;利用所述黑名单单元执行权限配置时,即对应传统的黑名单模式,在这一模式中,用户需要筛选出不被信任的应用程序加入黑名单,仅针对这一部分应用程序不配置休眠拦截权限;对于黑名单以外的应用程序均配置休眠拦截权限。在实际情况下,所述配置模块可以包含二者之一,也可以同时包含二者;使用过程中,用户可以单独利用黑名单单元或白名单单元进行权限配置,也可以同时应用此二者。参照图4所示为本发明所述系统的另一个具体实施例。本实施例在图3所示系统实施例的基础上还包括空置时间模块,用于预先设置进入休眠时间,判断系统空置时间是否达到进入休眠时间,当达到进入休眠时间则触发锁定模块;锁定模块,用于在空置时间模块触发之下,判断是否有应用程序执行了锁定操作,生成判断操作结果;休眠控制模块,用于获取判断操作结果,当判断操作结果中显示任意程序执行了锁定操作,则系统保持唤醒状态;当没有程序执行锁定操作,则系统进入休眠;循环模块,用于当有程序执行锁定操作使系统保持唤醒状态时,设置一个判断周期时间,每隔判断周期时间重新判断是否有应用程序执行了锁定操作;如果存在则系统保持唤醒状态,直到不存在程序执行锁定操作,则系统进入休眠状态。本实施例的技术方案在实质上对应图2所示的方法实施例。本实施例存在的有益效果是,基于传统的WakeLock机制下,阻止了一部分程序对于休眠拦截接口的使用;即坚持了 WakeLock机制通过控制休眠来促进设备节电,增强电池续航能力的初衷,也避免了休眠拦截接口的滥用。同时通过循环机制的建立,每隔一段时间对重新判断系统中是否有程序执行acquire操作,实现系统中不存在acquire操作时尽快进入休眠。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
权利要求
1.一种休眠拦截方法,其特征在于,根据用户指令为应用程序配置休眠拦截权限,则所述方法包括以下步骤 当应用程序利用休眠拦截接口发出执行锁定操作和/或释放操作的指令时;判断发出指令的应用程序是否存在休眠拦截权限; 如果存在则按照该应用程序发出的指令执行该操作,如果不存在则屏蔽该指令。
2.根据权利要求I所述方法,其特征在于,所述为应用程序配置休眠拦截权限具体为 仅为指定的程序配置休眠拦截权限,对未指定的程序不配置休眠拦截权限; 或仅对指定的程序不配置休眠拦截权限,对未指定的程序配置休眠拦截权限。
3.根据权利要求2所述方法,其特征在于,所述为指定的程序配置休眠拦截权限或对未指定的程序配置休眠拦截权限具体为 生成一个配置文件,将需要配置休眠拦截权限的应用程序的名称标识写入一个XML格式的名单中,并将该名单写入所述配置文件。
4.根据权利要求3所述方法,其特征在于,所述锁定操作和/或释放操作的指令中包含发出指令的应用程序的名称标识,则所述判断发出指令的应用程序是否存在休眠拦截权限具体为 根据所述指令获取发出指令的应用程序的名称标识,并以该程序的名称标识与所述配置文件中写入需要配置休眠拦截权限的程序名称标识的名单进行对照; 如果该名单中包含该程序的名称标识则认为该程序存在休眠拦截权限;如果该名单中不包含该程序的名称标识则认为该程序不存在休眠拦截权限。
5.根据权利要求1-4任意一项所述方法,其特征在于,所述方法还包括 判断系统空置时间是否达到预先设置的进入休眠时间; 当空置时间达到进入休眠时间,则判断是否有应用程序执行了锁定操作; 当任意程序执行了锁定操作,则系统保持唤醒状态;当没有程序执行锁定操作,则系统进入休眠。
6.根据权利要求5所述方法,其特征在于,所述方法还包括 当有程序执行锁定操作使系统保持唤醒状态时,设置一个判断周期时间,每隔判断周期时间重新判断是否有应用程序执行了锁定操作; 如果存在则系统保持唤醒状态,直到不存在程序执行锁定操作,则系统进入休眠状态。
7.—种休眠拦截系统,其特征在于,所述系统包括 配置模块,用于根据用户指令为应用程序配置休眠拦截权限; 权限模块,用于当应用程序利用休眠拦截接口发出执行锁定操作和/或释放操作的指令时;判断发出指令的应用程序是否存在休眠拦截权限;并生成判断权限结果; 执行模块,用于获取所述判断权限结果,如果判断权限结果为存在休眠拦截权限,则按照该应用程序发出的指令执行该操作,如果判断权限结果为不存在休眠拦截权限,则屏蔽该指令。
8.根据权利要求7所述系统,其特征在于,所述配置模块包括白名单单元和/或黑名单单元,具体为 白名单单元,用于获得用户指定出的需要配置休眠拦截权限的程序,仅为指定的程序配置休眠拦截权限,对未指定的程序不配置休眠拦截权限;黑名单单元,用于获得用户指定出的不需要配置休眠拦截权限的程序,仅对指定的程序不配置休眠拦截权限,对未指定的程序配置休眠拦截权限。
9.根据权利要求7或8所述系统,其特征在于,所述系统还包括 空置时间模块,用于预先设置进入休眠时间,判断系统空置时间是否达到进入休眠时间,当达到进入休眠时间则触发锁定模块; 锁定模块,用于在空置时间模块触发之下,判断是否有应用程序执行了锁定操作,生成判断操作结果; 休眠控制模块,用于获取判断操作结果,当判断操作结果中显示任意程序执行了锁定操作,则系统保持唤醒状态;当没有程序执行锁定操作,则系统进入休眠。
10.根据权利要求9所述系统,其特征在于,所述系统还包括 循环模块,用于当有程序执行锁定操作使系统保持唤醒状态时,设置一个判断周期时间,每隔判断周期时间重新判断是否有应用程序执行了锁定操作;如果存在则系统保持唤醒状态,直到不存在程序执行锁定操作,则系统进入休眠状态。
全文摘要
本发明实施例提供一种休眠拦截方法与系统,所述方法包括以下步骤为应用程序配置休眠拦截权限;当应用程序利用休眠拦截接口发出执行锁定操作和/或释放操作的指令时;判断应用程序是否存在休眠拦截权限;如果存在则按照该应用程序发出的指令执行该操作,如果不存在则屏蔽该指令;所述系统包括配置模块,用于为应用程序配置休眠拦截权限;权限模块,用于判断发出指令的应用程序是否存在休眠拦截权限;并生成判断权限结果;执行模块,用于获取所述判断权限结果,如果判断权限结果为存在休眠拦截权限,则按照该应用程序发出的指令执行该操作,如果判断权限结果为不存在休眠拦截权限,则屏蔽该指令。
文档编号G06F21/00GK102841672SQ20121023824
公开日2012年12月26日 申请日期2012年7月10日 优先权日2012年7月10日
发明者刘啸, 苏勇 申请人:上海果壳电子有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1