发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的一种程序的自启管理方法和装置。
依据本发明的一个方面,提供了一种程序的自启管理方法,包括:
解析操作系统中程序注册的敏感事件的广播消息;
接收用户在预置的第一界面位置上点击的自启管理行为;
确定所述自启管理行为对应程序的自启管理状态;其中,所述自启管理状态包括:禁止状态;
针对所述禁止状态对应程序,阻止其接收到所注册敏感事件的广播消息。
可选地,所述针对所述禁止状态对应程序,阻止其接收到所注册敏感事 件的广播消息的步骤,包括:
停止所述禁止状态对应程序的进程;和/或
强制停止所述禁止状态对应程序的进程,使其包状态为停止状态;和/或
禁用所述禁止状态对应程序的组件;和/或
先于所述禁止状态对应程序接收到其注册敏感事件的广播消息,并拦截该广播消息。
可选地,所述方法还包括:
将解析得到的所述程序注册的敏感事件的广播消息缓存至数据库;
则所述针对所述禁止行为对应的程序,阻止其接收到所注册敏感事件的广播消息的步骤,包括:
从所述数据库中读取所述禁止状态对应程序所注册敏感事件的广播消息;
阻止所述禁止状态对应程序接收到所注册敏感事件的广播消息。
可选地,所述敏感事件包括如下事件中的一种或多种:开机事件、充电事件、网络状态变化事件、定时器事件、GPS事件和关联程序启动事件。
可选地,所述针对所述禁止状态对应程序,阻止其接收到所注册敏感事件的广播消息的步骤,具体为当开机启动或者用户进入自启管理界面时针对所述禁止状态对应程序,阻止其接收到所注册敏感事件的广播消息。
可选地,所述自启管理状态还包括:允许状态;
则所述方法还包括:针对所述允许状态对应程序,允许其接收到所注册敏感事件的广播消息。
可选地,所述方法还包括:
展示自启白名单及对应的操作按钮;其中,所述自启白名单包括谨慎禁止的程序,所述操作按钮包括:往所述自启白名单中添加程序的添加按钮,和/或,从所述自启白名单中移除程序的移除按钮。
可选地,所述方法还包括:
当操作系统中新安装程序后,检测新安装的程序是否拥有自启权限;
展示拥有自启权限的程序。
可选地,所述方法还包括:
检测操作系统中是否存在建议禁止自启的程序,若存在,则显示弹窗,该弹窗用于引导用户进行自启管理。
根据本发明的另一方面,提供了一种程序的自启管理装置,包括:
解析模块,用于解析操作系统中程序注册的敏感事件的广播消息;
接口模块,用于接收用户在预置的第一界面位置上点击的自启管理行为;
确定模块,用于确定所述自启管理行为对应程序的自启管理状态;其中,所述自启管理状态包括:禁止状态;及
禁用模块,用于针对所述禁止状态对应程序,阻止其接收到所注册敏感事件的广播消息。
可选地,所述禁用模块,包括:
第一停止单元,用于停止所述禁止状态对应程序的进程;和/或
第二停止单元,用于强制停止所述禁止状态对应程序的进程,使其包状态为停止状态;和/或
组件禁止单元,用于禁用所述禁止状态对应程序的组件;和/或
消息拦截单元,用于先于所述禁止状态对应程序接收到其注册敏感事件的广播消息,并拦截该广播消息。
可选地,所述装置还包括:
缓存模块,用于将解析得到的所述程序注册的敏感事件的广播消息缓存至数据库;
则所述禁用模块,包括:
读取单元,用于从所述数据库中读取所述禁止状态对应程序所注册敏感事件的广播消息;及
阻止单元,用于阻止所述禁止状态对应程序接收到所注册敏感事件的广播消息。
可选地,所述敏感事件包括如下事件中的一种或多种:开机事件、充电事件、网络状态变化事件、定时器事件、GPS事件和关联程序启动事件。
可选地,所述禁用模块,具体用于当开机启动或者用户进入自启管理界面时针对所述禁止状态对应程序,阻止其接收到所注册敏感事件的广播消息。
可选地,所述自启管理状态还包括:允许状态;
则所述装置还包括:用于针对所述允许状态对应程序,允许其接收到所注册敏感事件的广播消息的启用模块。
可选地,所述装置还包括:
展示模块,用于展示自启白名单及对应的操作按钮;其中,所述自启白名单包括谨慎禁止的程序,所述操作按钮包括:往所述自启白名单中添加程序的添加按钮,和/或,从所述自启白名单中移除程序的移除按钮。
可选地,所述装置还包括:
第一检测模块,用于当操作系统中新安装程序后,检测新安装的程序是否拥有自启权限;
第一展示模块,用于展示拥有自启权限的程序。
可选地,所述装置还包括:
第二检测模块,用于检测操作系统中是否存在建议禁止自启的程序;第二展示模块,用于在操作系统中存在建议禁止自启的程序时,显示弹窗,该弹窗用于引导用户进行自启管理。
根据本发明实施例的一种程序的自启管理方法和装置,针对用户所管理的禁止状态对应程序,阻止其接收到所注册敏感事件的广播消息;由于阻止程序接收到所注册敏感事件的广播消息能够禁止程序自启,因此,即使在应用程序的自启复活情况下,本发明实施例仍能够依据用户对于程序的自启管理行为及时纠正该应用程序的自启复活,从而达到提升运行速度,节省耗电量的效果。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它 目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
参照图1,示出了根据本发明一个实施例的一种程序的自启管理方法的步骤流程图,具体可以包括如下步骤:
步骤101、解析操作系统中程序注册的敏感事件的广播消息;
本发明实施例可以应用于安卓、Windows等各种操作系统,这些操作系统中程序具体可以包括操作系统自带程序(简称系统自带程序)和用户自行安装的应用程序(简称应用程序),无论是系统自带程序和应用程序都有可能在操作系统开启时自启,而本发明实施例则可以根据用户需求禁止需要自启的程序,以提升操作系统的运行速度,节省装载有操作系统的电子设备的耗电量。
本发明实施例主要以安卓系统中应用程序的禁止为例进行说明,其它种类操作系统的程序的禁止相互参照即可。
本专利的发明人发现,在安卓系统中,程序的自启需要一定的条件,上述开机就是一种自启条件的示例。发明人还发现,除了开机时自启外,安卓系统中应用程序还有可能随着一些敏感事件的启动而自启,这些敏感事件具体可以包括:充电事件、网络状态变化事件(如Wifi联网事件等)、定时器事件、GPS(全球定位系统,Global Positioning System)事件和关联程序启动事件等等,这里的关联程序启动事件是指当程序之间存在关联关系时某应用程序会随着所关联程序的启动而启动。例如,如果微信与QQ之间存在关联关系,那么,即使用户通过自启管理界面禁止了微信,当QQ启动时微信也会自启。又如,如果购物客户端与支付宝钱包之间存在关联关系,那么,当京东启动时支付宝钱包也会关联启动以提供支付环境。再如,如果某应用程序客户端与微博之间存在关联关系,那么,当该应用程序客户端启动时微博也会关联启动以使用微博账号登陆该应用程序客户端。
可以理解,本领域技术人员可以根据应用程序的具体情况寻找其它的敏感事件,如SD卡(安全数码卡,Secure Digital Memory Card)插拔事件等,本发明实施例对具体的敏感事件不加以限制。本发明实施例主要以开启事件为例进行说明,其它敏感事件相互参照即可。
在此介绍安卓系统中敏感事件自启的原理。安卓系统中有一些事件完成以后,会发送广播消息,也即,安卓系统中广播的是操作系统中产生的各种各样的事件。例如,收到一条短信就会产生一个收到短信息的事件,而一旦内部产生了这些事件,就会向所有注册了该事件的应用程序的广播接收器 对象来广播这些事件;而应用程序在接收到事件的广播消息后,可以通过将自己唤起等方式进行响应。
例如,安卓系统在启动完成后会在启动第一个应用进程(桌面)时发送一个Standard Broadcast(标准广播)消息,名为"android.intent.action.BOOT_COMPLETED”;这样,对于程序而言,所谓开机自启就是注册接收BOOT_COMPLETED的静态广播,并在收到广播时将自己唤起;由于上述静态广播为常驻型广播,也即当应用程序关闭后,如果有广播消息到来,应用程序也会被系统调用自动运行,故应用程序具备在收到广播时将自己唤起的能力。
在具体实现中,上述解析操作系统中程序注册的敏感事件的广播消息的过程具体可以包括:对于一种或多种敏感事件的广播消息,可以遍历操作系统中安装的程序,并查询哪些程序注册了这些敏感事件的广播消息。
具体地,考虑到上述静态广播是在各程序的配置文件(AndroidManifest.xml)中定义的,故可以依据敏感事件的广播消息对应字符串查询各程序的配置文件,以确定哪些程序注册了这些敏感事件的广播消息。例如,开机事件的广播消息对应字符串为"android.intent.action.BOOT_COMPLETED”,网络变化事件的广播消息对应字符串为“android.net.wifi.WIFI_STATE_CHANGED”等等。
步骤102、接收用户在预置的第一界面位置上点击的自启管理行为;
在具体应用用,预置的第一界面位置可以是针对自启管理而设置的按钮的位置,后续会对其进行详细介绍。
步骤103、确定所述自启管理行为对应程序的自启管理状态;其中,所述自启管理状态具体可以包括:禁止状态;
在实际应用中,用户可以通过自启管理UI(用户界面,User Interface)产生对于各程序的自启管理行为。例如,在本发明的一种应用示例中,自启管理UI可以在每个程序的附近区域展示允许按钮和禁止按钮,当用户点击禁止按钮后,程序的自启管理状态变成禁止状态,当用户点击允许按钮后,程序的自启管理状态变成允许状态;当然上述允许按钮和禁止按钮 只是作为示例,本发明实施例对具体的自启管理UI不加以限制。
在具体实现中,可以记录用户对于程序的自启管理行为,并依据用户最后一次产生的对于程序的自启管理行为确定程序的自启管理状态。
步骤104、针对所述禁止状态对应程序,阻止其接收到所注册敏感事件的广播消息。
依据上述敏感事件自启的原理,程序在接收到敏感事件的广播消息后,才可以通过将自己唤起等方式进行响应,这样,本发明实施例采用阻止程序接收到所注册敏感事件的广播消息的方式,能够实现禁止程序自启的目的;并且,本发明实施例阻止程序接收到所注册敏感事件的广播消息所针对的程序范围包括禁止状态对应程序也即用户不希望自启的程序,因此,能够在尊重用户意愿的情况下禁止程序自启,从而能够提升操作系统的运行速度,节省电子设备的耗电量。
本发明实施例可以提供如下针对所述禁止状态对应程序,阻止其接收到所注册敏感事件的广播消息的阻止接收方案:
阻止接收方案一、
阻止接收方案一停止所述禁止状态对应程序的进程;由于停止了所述禁止状态对应程序的进程,故所述禁止状态对应程序就无法接收到所注册敏感事件的广播消息,或者,即使接收到所注册敏感事件的广播消息,也无法启动。
例如,在安卓系统中,可以采用android.os.killProcess接口以停止给定ID的进程。
又如,还可以采用ActivityManager中的killBackgroundProcesses接口来停止进程优先级低于SERVICE_ADJ的进程;需要说明的是,使用该接口需要声明KILL_BACKGROUND_PROCESSES权限,另外,该接口为ActivityManager中的公开接口,不需要任何权限,也即无需获得ROOT权限。
阻止接收方案二、
阻止接收方案二强制停止所述禁止状态对应程序的进程,使其包状态为 停止状态;由于被标记为停止(stopped)状态的程序是不能接收广播的,因此能够阻止其接收到所注册敏感事件的广播消息。
在安卓系统中,可以采用forceStopPackage接口强制停止所述禁止状态对应程序的进程,使其包状态为停止状态;需要说明的是,在使用forceStopPackage接口时需要声明FORCE_STOP_PACKAGES权限,并且,forceStopPackage是一个隐藏接口,需要通过反射等手段实现调用,另外,使用forceStopPackage接口需要系统签名,因此需要预先获得ROOT权限,并且,使用forceStopPackage接口可能会清空定时器,因此可以适用于定时器事件。
阻止接收方案三、
阻止接收方案三禁用所述禁止状态对应程序的组件;对于程序而言,广播消息是通过其广播接收器来接收的,而广播接收器作为程序中的应用组件,拥有“android:enable”属性,如果能够通过“android:enable”属性禁止程序的组件,那么程序将无法接收到所述敏感事件的广播消息。
在具体实现中,可以通过调用setComponentEnabledSetting和setApplicationEnabledSetting接口将程序中的所有组件置为disable状态;其中,
Public void setComponentEnabledSetting(ComponentName componentName,int newState,int flags)
componentName:组件名称,也即所述禁止状态对应程序的广播接收器
newState:组件新的状态,可以设置三个值,分别是如下:
不可用状态:COMPONENT_ENABLED_STATE_DISABLED
可用状态:COMPONENT_ENABLED_STATE_ENABLED
默认状态:COMPONENT_ENABLED_STATE_DEFAULT
flags:行为标签,值可以是DONT_KILL_APP或者0。0说明杀死包含该组件的app public int getComponentEnabledSetting(ComponentName componentName)获取组件的状态
使用setComponentEnabledSetting接口必须是system程序并具有system 签名;因此,在未获得system权限但获得了ROOT权限的情况下,可以使用“pm disable”命令。
阻止接收方案四、
阻止接收方案四先于所述禁止状态对应程序接收到其注册敏感事件的广播消息,并拦截该广播消息,以使所述禁止状态对应程序无法接收到所注册敏感事件的广播消息。
在本发明的一种应用示例中,假设所述敏感事件的广播消息为有序广播,有序广播是按照接收者声明的优先级别,被接收者依次接收广播消息。如:A的级别高于B,B的级别高于C,那么,广播消息先传给A,再传给B,最后传给C。优先级别声明在intent-filter元素的android:priority属性中,数越大优先级别越高,取值范围:-1000到1000。因此,在具体实现中,可以设置比所述禁止状态对应程序更高的优先级,先于其接收其所注册敏感事件的广播消息,并通过BroadcastReceiver.abortBroadcast()来终止广播消息,由于广播消息被前面的接收者终止,后面的接收者就再也无法获取到广播消息,因此能够使所述禁止状态对应程序无法接收到所注册敏感事件的广播消息。
上面对针对所述禁止状态对应程序,阻止其接收到所注册敏感事件的广播消息的阻止接收方案进行了详细介绍,可以理解,本领域技术人员可以根据实际需要采用其中的任意一种方案,例如,当所述禁止状态对应程序比较顽固容易复活时可以采用上述阻止接收方案二,当所述禁止状态对应程序不太顽固且不容易复活时可以采用上述阻止接收方案三等的;另外,也可以联合使用多种方案,本发明实施例对具体的组合方式不加以限制。
在具体实现中,所述针对所述禁止状态对应程序,阻止其接收到所注册敏感事件的广播消息的步骤,具体可以为当开机启动或者用户进入自启管理界面时针对所述禁止状态对应程序,阻止其接收到所注册敏感事件的广播消息。由于开机自启为大多数程序最常用的敏感事件,故在开启启动时针对所述禁止状态对应程序,阻止其接收到所注册敏感事件的广播消息可以有效阻止其开机自启,并且也能够阻断其接收到除开机外其它敏感事件的广播消息 的通道。另外,当用户进入自启管理界面时,通常怀着提升运行速度的需求,因此,可以在此种情况下禁止所述禁止状态对应程序。
当然,除了上述时机外,本领域技术人员还可以根据实际需要,采用其它时机,例如,在每次敏感事件发生后,检测是否存在自启管理状态为禁止状态但仍然自启的程序,并针对检测得到的程序阻止其接收到所注册敏感事件的广播消息,也即,此种时机下可以只禁止复活自启的程序,如禁止与QQ关联启动的微信等等。
综上,本发明实施例针对用户所管理的禁止状态对应程序,阻止其接收到所注册敏感事件的广播消息;由于阻止程序接收到所注册敏感事件的广播消息能够禁止程序自启,因此,即使在应用程序的自启复活情况下,本发明实施例仍能够依据用户对于程序的自启管理行为及时纠正该应用程序的自启复活,从而达到提升运行速度,节省耗电量的效果。
参照图2,示出了根据本发明一个实施例的一种程序的自启管理方法的步骤流程图,具体可以包括如下步骤:
步骤201、解析操作系统中程序注册的敏感事件的广播消息;
步骤202、将解析得到的所述程序注册的敏感事件的广播消息缓存至数据库;
步骤203、接收用户在预置的第一界面位置上点击的自启管理行为;
步骤204、确定所述自启管理行为对应程序的自启管理状态;其中,所述自启管理状态具体可以包括:禁止状态;
步骤205、从所述数据库中读取所述禁止状态对应程序所注册敏感事件的广播消息;
步骤206、阻止所述禁止状态对应程序接收到所注册敏感事件的广播消息。
由于解析操作系统中程序注册的敏感事件的广播消息需要花费一定的时间,如10s以上,这样,在所述禁止状态对应程序的数量较多的情况下,将会影响禁止程序自启的效率。
针对上述问题,本实施例在实施例一的基础上,还可以将解析得到的所述程序注册的敏感事件的广播消息缓存至数据库,这样,在禁止程序自启的过程中,可以直接从所述数据库中读取所述禁止状态对应程序所注册敏感事件的广播消息,由于避免了解析操作系统中程序注册的敏感事件的广播消息的过程,因此,能够提高禁止程序自启的效率。
在具体实现中,在将解析得到的所述程序注册的敏感事件的广播消息缓存至数据库时,采用存储APP(Application)包名和广播消息的对应关系,这样,在读取数据库时,可以直接将所述禁止状态对应程序的APP包名与所属对应关系进行匹配。
参照图3,示出了根据本发明一个实施例的一种程序的自启管理方法的步骤流程图,具体可以包括如下步骤:
步骤301、解析操作系统中程序注册的敏感事件的广播消息;
步骤302、接收用户在预置的第一界面位置上点击的自启管理行为;
步骤303、确定所述自启管理行为对应程序的自启管理状态;其中,所述自启管理状态具体可以包括:禁止状态和允许状态;
步骤304、针对所述禁止状态对应程序,阻止其接收到所注册敏感事件的广播消息;
步骤305、针对所述允许状态对应程序,允许其接收到所注册敏感事件的广播消息。
相对于实施例一,本实施例的所述自启管理状态还可以包括:允许状态;则所述方法还可以包括:针对所述允许状态对应程序,允许其接收到所注册敏感事件的广播消息。
尤其地,为了提高自启管理速度,本实施例还可以专门针对自启管理状态从禁止状态变化为允许状态的程序,允许其接收到所注册敏感事件的广播消息,由于其发生了自启管理状态的上述改变,故上述允许操作相对于对其进行解禁处理。
在具体实现中,所述解禁处理方案与阻止接收方案的原理类似,不同的 是可以采用相反的处理,假设用户之前对于支付宝钱包的自启管理状态为禁止状态,且本发明实施例通过调用setComponentEnabledSetting接口并将其newState设置为COMPONENT_ENABLED_STATE_DISABLED来实现禁止处理;后来,用户又将对于支付宝钱包的自启管理状态修改为允许状态,那么,本发明实施例可以通过调用setComponentEnabledSetting接口并将其newState设置为COMPONENT_ENABLED_STATE_ENABLED来实现解禁处理。
由于所述解禁处理方案与阻止接收方案的原理类似,故在此不做赘述,相互参照即可。
为使本领域技术人员更好地理解本发明,下面给出本发明的一种程序的自启管理方法的示例,该示例中,可以在清理工具的界面上提供自启管理入口,用户可以通过该自启管理入口进入自启管理界面,例如,可以在清理工具的常用功能界面上提供该自启管理入口,用户点击该自启管理入口即可进入自启管理界面。
参照图4,示出了本发明的一种自启管理界面的结构示意图,其具体可以包括:自启动程序区域401、已禁止的自启动程序区域402、系统核心程序区域403和自启白名单的图标404;
其中,自启动程序区域401具体可以包括允许状态对应程序411及对应的自启管理按钮412,自启管理按钮412具体可以包括允许按钮和禁止按钮,自启动程序区域401中自启管理按钮412默认处于允许按钮位置,当用户点击禁止按钮时,则自启管理按钮412移动至禁止按钮位置,且允许状态对应程序411移动至已禁止的自启动程序区域402;
已禁止的自启动程序区域402具体可以包括禁止状态对应程序421及对应的自启管理按钮422,自启管理按钮422具体可以包括允许按钮和禁止按钮,自启动程序区域402中自启管理按钮412默认处于禁止按钮位置,当用户点击允许按钮时,则自启管理按钮422移动至允许按钮位置,且对应的禁止状态对应程序421可移动至自启动程序区域401;
系统核心程序区域403可用于展示系统核心程序,禁止该系统核心程序的自启,将会影响正常使用;
自启白名单的图标404位于界面的右上角,点击该自启白名单的图标404即可进入自启白名单。
参照图5,示出了根据本发明一个实施例的一种程序的自启管理方法的步骤流程图,具体可以包括如下步骤:
步骤501、解析操作系统中程序注册的敏感事件的广播消息;
步骤502、接收用户在预置的第一界面位置上点击的自启管理行为;
步骤503、确定所述自启管理行为对应程序的自启管理状态;其中,所述自启管理状态具体可以包括:禁止状态;
步骤504、针对所述禁止状态对应程序,阻止其接收到所注册敏感事件的广播消息;
步骤505、展示自启白名单及对应的操作按钮;其中,所述自启白名单具体可以包括谨慎禁止的程序,所述操作按钮具体可以包括:往所述自启白名单中添加程序的添加按钮,和/或,从所述自启白名单中移除程序的移除按钮。
相对于实施例一,本实施例还可以展示自启白名单及对应的操作按钮,其中所述自启白名单具体可以包括谨慎禁止的程序,也即默认不会禁止自启白名单中程序的自启权限,这样,用户可以根据需求对除自启白名单外的程序进行任意管理,因此,能够提高自启管理的便利性。
为了进一步提高自启管理的便利性,在本发明的一种可选实施例中,所述方法还可以包括:对于除所自启白名单外的程序进行一键禁止;所述自启白名单和一键禁止能够节省用户对于程序进行的自启管理操作,从而能够提高用户体验。具体地,可以在自启管理界面提供一键优化按钮,用户可以通过点击该一键优化按钮将自启动程序区域401中所有允许状态对应程序411管理为禁止状态和移动至已禁止的自启动程序区域402;该一键禁止功能能够降低用户在自启管理过程中的操作成本。
参照图6,示出了本发明的一种自启白名单的界面示意图,其具体可以包括:白名单程序601、白名单程序601对应的移除按钮602,及添加按钮603;其中,对于上述添加按钮603的点击操作可以进入待添加到白名单的程序列表,所述待添加到白名单的程序列表可与上述自启动程序区域401中允许状态对应程序一致,也可与上述自启动程序区域401中允许状态对应程序和上述已禁止的自启动程序区域402中禁止状态对应程序的总和一致。
需要说明的是,无论上述允许状态对应程序411、禁止状态对应程序421还是白名单程序601,其展现的项目均可以包括:程序的图标、名称和自启管理状态等等。
另外,若用户从已禁止的自启动程序区域502中恢复了某个程序的自启动权限,则可以将该程序自动加白,同时,可以在右上角的自启白名单的图标504附近区域显示“+1”动画,以实现提示用户的效果。
在本发明的一种优选实施例中,本发明还可以提供除了上述自启管理入口之外的进入自启管理界面的入口,相应地,所述方法还可以包括:当操作系统中新安装程序后,检测新安装的程序是否拥有自启权限;展示拥有自启权限的程序。
例如,当操作系统中新安装程序后,检测新安装的程序中是否有开机/后台自启权限,若有且手机已经获取Root权限则提示。所述提示过程具体可以包括:小悬浮窗展示提示图样,当接收到对于小悬浮窗的点击操作时,展示大悬浮窗,在该大悬浮窗中提示“新安装的程序中有几款拥有自启权限”,并展示拥有自启权限的程序icon(图标)。当接收到对于该大悬浮窗的点击操作时,可以进入上述自启管理界面。
在本发明的另一种优选实施例中,本发明还可以提供除了上述自启管理入口之外的进入自启管理界面的入口,相应地,所述方法还可以包括:检测操作系统中是否存在建议禁止自启的程序,若存在,则显示弹窗,该弹窗用于引导用户进行自启管理。
在具体实现中,该弹窗内部可通过CHECKBOX(复选框)的形式展示建议禁止自启的程序,其中,默认勾选上建议禁止自启的程序,用户可以取 消勾选,点击“禁止自启”后,会禁止掉勾选上的软件的自启权限。其中,所述建议禁止自启的程序可以为除系统核心程序外的程序,本发明对具体的建议禁止自启的程序不加以限制。
需要说明的是,若用户在该弹窗中取消某一程序的勾选,则说明用户希望允许该程序自启,因此可以将该程序自动加白。
综上,本发明的上述程序的自启管理方法能够根据操作系统的运行环境和用户需求,灵活地禁止程序自启,从而有效提升运行速度
对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于可选实施例,所涉及的动作并不一定是本发明实施例所必须的。
参照图7,示出了根据本发明一个实施例的一种程序的自启管理装置的结构框图,具体可以包括如下模块:
解析模块701,用于解析操作系统中程序注册的敏感事件的广播消息;
接口模块702,用于接收用户在预置的第一界面位置上点击的自启管理行为;
确定模块703,用于确定所述自启管理行为对应程序的自启管理状态;其中,所述自启管理状态具体可以包括:禁止状态;及
禁用模块704,用于针对所述禁止状态对应程序,阻止其接收到所注册敏感事件的广播消息。
在本发明的一种可选实施例中,所述禁用模块704,具体可以包括:
第一停止单元,用于停止所述禁止状态对应程序的进程;和/或
第二停止单元,用于强制停止所述禁止状态对应程序的进程,使其包状态为停止状态;和/或
组件禁止单元,用于禁用所述禁止状态对应程序的组件;和/或
消息拦截单元,用于先于所述禁止状态对应程序接收到其注册敏感事件 的广播消息,并拦截该广播消息。
在本发明的另一种可选实施例中,所述装置还可以包括:
缓存模块,用于将解析得到的所述程序注册的敏感事件的广播消息缓存至数据库;
则所述禁用模块704,具体可以包括:
读取单元,用于从所述数据库中读取所述禁止状态对应程序所注册敏感事件的广播消息;及
阻止单元,用于阻止所述禁止状态对应程序接收到所注册敏感事件的广播消息。
在本发明的再一种可选实施例中,所述敏感事件具体可以包括如下事件中的一种或多种:开机事件、充电事件、网络状态变化事件、定时器事件、GPS事件和关联程序启动事件。
在本发明的一种可选实施例中,所述禁用模块704,可具体用于当开机启动或者用户进入自启管理界面时针对所述禁止状态对应程序,阻止其接收到所注册敏感事件的广播消息。
在本发明的另一种可选实施例中,所述自启管理状态还可以包括:允许状态;
则所述装置还可以包括:用于针对所述允许状态对应程序,允许其接收到所注册敏感事件的广播消息的启用模块。
在本发明的再一种可选实施例中,所述装置还可以包括:展示模块,用于展示自启白名单及对应的操作按钮;其中,所述自启白名单具体可以包括谨慎禁止的程序,所述操作按钮具体可以包括:往所述自启白名单中添加程序的添加按钮,和/或,从所述自启白名单中移除程序的移除按钮。
在本发明的一种可选实施例中,所述装置还可以包括:
第一检测模块,用于当操作系统中新安装程序后,检测新安装的程序是否拥有自启权限;
第一展示模块,用于展示拥有自启权限的程序。
在本发明的另一种可选实施例中,所述装置还可以包括:
第二检测模块,用于检测操作系统中是否存在建议禁止自启的程序;第二展示模块,用于在操作系统中存在建议禁止自启的程序时,显示弹窗,该弹窗用于引导用户进行自启管理。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权限要求中所明确记载的特征更多的特征。更确切地说,如下面的权限要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权限要求书由此明确地并入该具体实施方式,其中每个权限要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权限要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或 者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权限要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权限要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的程序模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的程序的自启管理方法和装置中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网平台上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权限要求的范围的情况下可设计出替换实施例。在权限要求中,不应将位于括号之间的任何参考符号构造成对权限要求的限制。单词“包含”不排除存在未列在权限要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权限要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
本发明公开了A1、一种程序的自启管理方法,包括:
解析操作系统中程序注册的敏感事件的广播消息;
接收用户在预置的第一界面位置上点击的自启管理行为;
确定所述自启管理行为对应程序的自启管理状态;其中,所述自启管理状态包括:禁止状态;
针对所述禁止状态对应程序,阻止其接收到所注册敏感事件的广播消息。
A2、如A1所述的方法,所述针对所述禁止状态对应程序,阻止其接收到所注册敏感事件的广播消息的步骤,包括:
停止所述禁止状态对应程序的进程;和/或
强制停止所述禁止状态对应程序的进程,使其包状态为停止状态;和/或
禁用所述禁止状态对应程序的组件;和/或
先于所述禁止状态对应程序接收到其注册敏感事件的广播消息,并拦截该广播消息。
A3、如A1或A2所述的方法,所述方法还包括:
将解析得到的所述程序注册的敏感事件的广播消息缓存至数据库;
则所述针对所述禁止行为对应的程序,阻止其接收到所注册敏感事件的广播消息的步骤,包括:
从所述数据库中读取所述禁止状态对应程序所注册敏感事件的广播消息;
阻止所述禁止状态对应程序接收到所注册敏感事件的广播消息。
A4、如A1或A2所述的方法,所述敏感事件包括如下事件中的一种或多种:开机事件、充电事件、网络状态变化事件、定时器事件、GPS事件和关联程序启动事件。
A5、如A1所述的方法,所述针对所述禁止状态对应程序,阻止其接收到所注册敏感事件的广播消息的步骤,具体为当开机启动或者用户进入自启管理界面时针对所述禁止状态对应程序,阻止其接收到所注册敏感事件的广播消息。
A6、如A1或A2所述的方法,所述自启管理状态还包括:允许状态;
则所述方法还包括:针对所述允许状态对应程序,允许其接收到所注册敏感事件的广播消息。
A7、如A1或2所述的方法,所述方法还包括:
展示自启白名单及对应的操作按钮;其中,所述自启白名单包括谨慎禁止的程序,所述操作按钮包括:向所述自启白名单中添加程序的添加按钮,和/或,从所述自启白名单中移除程序的移除按钮。
A8、如A1或A2所述的方法,所述方法还包括:
当操作系统中新安装程序后,检测新安装的程序是否拥有自启权限;
展示拥有自启权限的程序。
A9、如A1或A2所述的方法,所述方法还包括:
检测操作系统中是否存在建议禁止自启的程序,若存在,则显示弹窗,该弹窗用于引导用户进行自启管理。
B10、一种程序的自启管理装置,包括:
解析模块,用于解析操作系统中程序注册的敏感事件的广播消息;
接口模块,用于接收用户在预置的第一界面位置上点击的自启管理行为;
确定模块,用于确定所述自启管理行为对应程序的自启管理状态;其中,所述自启管理状态包括:禁止状态;及
禁用模块,用于针对所述禁止状态对应程序,阻止其接收到所注册敏感事件的广播消息。
B11、如B10所述的装置,所述禁用模块,包括:
第一停止单元,用于停止所述禁止状态对应程序的进程;和/或
第二停止单元,用于强制停止所述禁止状态对应程序的进程,使其包状态为停止状态;和/或
组件禁止单元,用于禁用所述禁止状态对应程序的组件;和/或
消息拦截单元,用于先于所述禁止状态对应程序接收到其注册敏感事件的广播消息,并拦截该广播消息。
B12、如B10或B11所述的装置,所述装置还包括:
缓存模块,用于将解析得到的所述程序注册的敏感事件的广播消息缓存至数据库;
则所述禁用模块,包括:
读取单元,用于从所述数据库中读取所述禁止状态对应程序所注册敏感事件的广播消息;及
阻止单元,用于阻止所述禁止状态对应程序接收到所注册敏感事件的广播消息。
B13、如B10或B11所述的装置,所述敏感事件包括如下事件中的一种或多种:开机事件、充电事件、网络状态变化事件、定时器事件、GPS事件和关联程序启动事件。
B14、如B10所述的装置,所述禁用模块,具体用于当开机启动或者用户进入自启管理界面时针对所述禁止状态对应程序,阻止其接收到所注册敏感事件的广播消息。
B15、如B10或B11所述的装置,所述自启管理状态还包括:允许状态;
则所述装置还包括:用于针对所述允许状态对应程序,允许其接收到所注册敏感事件的广播消息的启用模块。
B16、如B10或B11所述的装置,所述装置还包括:
展示模块,用于展示自启白名单及对应的操作按钮;其中,所述自启白名单包括谨慎禁止的程序,所述操作按钮包括:向所述自启白名单中添加程序的添加按钮,和/或,从所述自启白名单中移除程序的移除按钮。
B17、如B 10或B 11所述的装置,所述装置还包括:
第一检测模块,用于当操作系统中新安装程序后,检测新安装的程序是否拥有自启权限;
第一展示模块,用于展示拥有自启权限的程序。
B 18、如B 10或B 11所述的装置,所述装置还包括:
第二检测模块,用于检测操作系统中是否存在建议禁止自启的程序;第二展示模块,用于在操作系统中存在建议禁止自启的程序时,显示弹窗,该 弹窗用于引导用户进行自启管理。