一种安卓系统应用关闭方法和装置制造方法

文档序号:6639061阅读:142来源:国知局
一种安卓系统应用关闭方法和装置制造方法
【专利摘要】本发明公开了一种安卓系统应用关闭方法,主要涉及计算机【技术领域】,具体包括:监听安卓系统中是否开始孵化进程;如果开始孵化进程,则判断所述进程是否属于系统必须范围内的进程;如果所述进程不属于系统必须范围内的进程,则记录所述进程的进程信息;在安卓系统锁屏状态下判断是否接收到用户触发的关闭指令;如果接收到关闭指令,则根据所述记录的进程信息,对所述进程进行关闭。本发明则可以记录app的进程信息,在系统锁屏后,如果用户通过终端的功能键触发关闭指令,则可则根据所述记录的进程信息,对所述进程进行关闭,取得了可在锁屏状态下便捷的关闭安卓系统中运行的非系统必须范围的进程,降低了系统的耗电量有益效果。
【专利说明】
一种安卓系统应用关闭方法和装置

【技术领域】
[0001]本发明涉及计算机【技术领域】,具体涉及一种安卓系统应用关闭方法和装置。

【背景技术】
[0002]随着智能手机的发展,出现了多种支持智能手机的系统。比如android(安卓)系统。Android是一种以Linux为基础的开放源码操作系统,主要使用于手机等移动终端。Android平台由操作系统、中间件、用户界面和应用软件组成。
[0003]随着Android系统的市场占有率的增加,越来越多的开发者基于Android系统开发app (applicat1n,应用),使用户使用android手机更方便。在传统的安卓系统中,存在一种应用关闭方法,即在系统解锁状态,用户长按退出功能键,即弹出当前系统中打开的应用的窗口界面,然后用户即可操作关闭相应应用。但是其对应用的关闭,需要先操作系统进入解锁状态,然后才能进入应用关闭过程。


【发明内容】

[0004]鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的一种安卓系统应用关闭装置和相应的一种安卓系统应用关闭方法。
[0005]依据本发明的一个方面,提供了一种安卓系统应用关闭方法,包括:
[0006]监听安卓系统中是否开始孵化进程;
[0007]如果开始孵化进程,则判断所述进程是否属于系统必须范围内的进程;如果所述进程不属于系统必须范围内的进程,则记录所述进程的进程信息;
[0008]在安卓系统锁屏状态下判断是否接收到用户触发的关闭指令;
[0009]如果接收到关闭指令,则根据所述记录的进程信息,对所述进程进行关闭。
[0010]优选地,还包括:
[0011]将安卓系统初始的进程孵化器替换为特定的第一进程孵化器;通过所述第一进程孵化器监听安卓系统是否开始孵化进程。
[0012]优选地,所述通过所述第一进程孵化器监听安卓系统是否开始孵化进程包括:
[0013]通过所述第一进程孵化器创建java虚拟机;
[0014]通过所述java虚拟机注册监听套接字,通过所述监听套接字监听安卓系统是否开始孵化进程。
[0015]优选地,所述通过所述套接字监听是否开始孵化窗口服务包括:
[0016]监听所述套接字中是否接收到孵化进程的创建消息;如果所述监听套接字接收到创建消息,则确定开始孵化进程。
[0017]优选地,所述在安卓系统锁屏状态下判断是否接收到用户触发的关闭指令包括:
[0018]在锁屏状态下,接收用户对指定按键的触发操作,判断所述对指定按键的触发操作是否符合预定规则;如果所述对指定按键的触发操作符合预定规则,则判断接收到关闭指令。
[0019]优选地,还包括:
[0020]在窗口服务调用的窗口对象获取函数之前,拦截对所述安卓系统中初始窗口对象获取函数的调用;
[0021]将所述拦截的初始窗口对象获取函数替换为第一窗口对象获取函数;
[0022]在触发窗口服务以获取窗口对象时,所述窗口服务通过调用所述第一窗口对象获取函数获取窗口对象并返回指定进程以进行窗口对象记录。
[0023]优选地,在接收到关闭指令之后,还包括:
[0024]根据进程信息与窗口对象的对应关系,从对应的窗口对象中获取窗口缩略图,并将所述窗口缩略图展示在锁屏界面的指定位置;
[0025]进一步的,还包括:
[0026]接收到用户针对至少一个窗口缩略图的第二关闭指令;当接收到针对至少一个窗口缩略图的第二关闭指令,根据所述记录的进程信息,对相应的进程进行关闭。
[0027]优选地,所述在窗口服务调用的窗口对象获取函数之前,拦截对所述安卓系统中初始窗口对象获取函数的调用包括:
[0028]通过所述第一进程孵化器监听是否开始孵化窗口服务;
[0029]如果监听到开始孵化窗口服务,则拦截对所述窗口服务的创建,从而拦截窗口服务对其需要调用的安卓系统中初始窗口对象获取函数的加载。
[0030]优选地,将所述拦截窗口对象获取函数替换为第一窗口对象获取函数包括:
[0031]在拦截对所述窗口服务的创建后,将窗口服务需要加载的初始窗口对象获取函数替换为第一窗口对象获取函数;
[0032]创建所述窗口服务,并加载所述第一窗口对象获取函数。
[0033]优选地,所述将窗口服务需要加载的初始窗口对象获取函数替换为第一窗口对象获取函数包括:
[0034]将窗口服务需要加载的初始getfocuswindow函数,替换为第一 getfocuswindow函数;所述第一 getfocuswindow函数的返回时序为返回指定进程。
[0035]优选地,所述窗口服务通过调用所述第一窗口对象获取函数获取窗口对象包括:
[0036]通过第一 getfocuswindow函数,查找窗口对象堆栈顶部的windowstata窗口对象。
[0037]优选地,还包括:
[0038]在窗口对象堆栈顶部的窗口对象发生变化时,判断所述窗口对象是否已经获取;
[0039]如果所述窗口对象未获取,则继续将所述窗口对象返回指定进程。
[0040]根据本发明的另一方面,提供了一种安卓系统应用关闭装置,包括:
[0041]进程创建监听模块,适于监听安卓系统中是否开始孵化进程;
[0042]进行信息记录模块,适于如果开始孵化进程,则判断所述进程是否属于系统必须范围内的进程;如果所述进程不属于系统必须范围内的进程,则记录所述进程的进程信息;
[0043]关闭触发模块,适于在安卓系统锁屏状态下判断是否接收到用户触发的关闭指令;
[0044]进程关闭模块,适于如果接收到关闭指令,则根据所述记录的进程信息,对所述进程进行关闭。
[0045]优选地,还包括:
[0046]进程孵化器替换模块,适于将安卓系统初始的进程孵化器替换为特定的第一进程孵化器;通过所述第一进程孵化器监听安卓系统是否开始孵化进程。
[0047]优选地,所述进程创建监听模块包括:
[0048]Java虚拟机创建模块,适于通过所述第一进程孵化器创建java虚拟机;
[0049]监听套接字注册模块,适于通过所述java虚拟机注册监听套接字,通过所述监听套接字监听安卓系统是否开始孵化进程。
[0050]优选地,所述进程创建监听模块包括:
[0051]第一进程创建监听模块,适于监听所述套接字中是否接收到孵化进程的创建消息;如果所述监听套接字接收到创建消息,则确定开始孵化进程。
[0052]优选地,所述关闭触发模块包括:
[0053]第一关闭触发模块,适于在锁屏状态下,接收用户对指定按键的触发操作,判断所述对指定按键的触发操作是否符合预定规则;如果所述对指定按键的触发操作符合预定规贝U,则判断接收到关闭指令。
[0054]优选地,还包括:
[0055]窗口拦截模块,适于在窗口服务调用的窗口对象获取函数之前,拦截对所述安卓系统中初始窗口对象获取函数的调用;
[0056]函数替换模块,适于将所述拦截的初始窗口对象获取函数替换为第一窗口对象获取函数;
[0057]窗口获取模块,适于在触发窗口服务以获取窗口对象时,所述窗口服务通过调用所述第一窗口对象获取函数获取窗口对象并返回指定进程以进行窗口对象记录。
[0058]优选地,在关闭触发模块之后,还包括:
[0059]窗口展示模块,适于根据进程信息与窗口对象的对应关系,从对应的窗口对象中获取窗口缩略图,并将所述窗口缩略图展示在锁屏界面的指定位置;
[0060]进一步的,还包括:
[0061]第二关闭指令模块,适于接收到用户针对至少一个窗口缩略图的第二关闭指令;当接收到针对至少一个窗口缩略图的第二关闭指令,根据所述记录的进程信息,对相应的进程进行关闭。
[0062]优选地,所述窗口拦截模块包括:
[0063]第一监听模块,适于通过所述第一进程孵化器监听是否开始孵化窗口服务;
[0064]第一拦截模块,适于如果监听到开始孵化窗口服务,则拦截对所述窗口服务的创建,从而拦截窗口服务对其需要调用的安卓系统中初始窗口对象获取函数的加载。
[0065]优选地,所述函数替换模块包括:
[0066]第一函数替换模块,适于在拦截对所述窗口服务的创建后,将窗口服务需要加载的初始窗口对象获取函数替换为第一窗口对象获取函数;
[0067]窗口服务创建模块,适于创建所述窗口服务,并加载所述第一窗口对象获取函数。
[0068]优选地,所述将窗口服务需要加载的初始窗口对象获取函数替换为第一窗口对象获取函数包括:
[0069]第二函数替换模块,适于将窗口服务需要加载的初始getfocuswindow函数,替换为第一 getfocuswindow函数;所述第一 getfocuswindow函数的返回时序为返回指定进程。
[0070]优选地,所述窗口服务通过调用所述第一窗口对象获取函数获取窗口对象包括:
[0071]第一窗口对象获取模块,适于通过第一 getfocuswindow函数,查找窗口对象堆栈顶部的windowstata窗口对象。
[0072]优选地,还包括:
[0073]窗口对象判断模块,适于在窗口对象堆栈顶部的窗口对象发生变化时,判断所述窗口对象是否已经获取;如果所述窗口对象未获取,则继续将所述窗口对象返回指定进程。
[0074]根据本发明的一种安卓系统应用关闭方法可以在安卓系统孵化(fork)进程开始之时,即可获取进程的进程信息,对于系统必须范围的进程,比如systemsever进程是安卓系统执行的基础进程,包括通话进程、通知栏进程等,不进行记录,那么对于除了系统必须进程之外的其他进程,比如APP(appliCat1n,应用)进程,本发明则可以记录app的进程信息。在系统锁屏后,如果用户通过终端的功能键触发关闭指令,则可则根据所述记录的进程信息,对所述系统必须进程不进行关闭,避免将系统相关进程如果关闭而影响用户的正常使用,而对于系统必须进程之外的进程则可进行关闭。本发明此解决了系统锁屏后,无法快速关闭安卓系统中运行非系统必须范围外的进程的问题,取得了可在锁屏状态下便捷的关闭安卓系统中运行的非系统必须范围的进程,降低了系统的耗电量有益效果。
[0075]上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的【具体实施方式】。

【专利附图】

【附图说明】
[0076]通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
[0077]图1示出了根据本发明一个实施例的一种安卓系统应用关闭方法的流程示意图;
[0078]图2示出了根据本发明一个实施例的一种安卓系统窗口对象获取方法的流程示意图;
[0079]图3示出了根据本发明一个实施例的一种安卓系统窗口对象获取方法的流程示意图;
[0080]图4示出了根据本发明一个实施例的一种安卓系统应用关闭装置的结构示意图;
[0081]图5示出了根据本发明一个实施例的一种安卓系统应用关闭装置的结构示意图;
[0082]图6示出了根据本发明一个实施例的一种安卓系统应用关闭装置的结构示意图。

【具体实施方式】
[0083]下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
[0084]本发明的核心思想之一是:在安卓系统孵化(fork)进程开始之时,即可获取进程的进程信息,然后判断这些进程哪些是非安卓系统必须的进程(比如systemsever进程是安卓系统执行的基础进程,systemsever还包括通话进程、通知栏进程等),对于不是安卓系统必须的进程(比如APP (applicat1n,应用)进程),本发明则可以记录其进程信息。然后根据用户触发的关闭指令,则可根据记录的进程信息,将这些进程进行关闭。使其可在锁屏状态下便捷的关闭安卓系统中运行的非系统必须范围之外的进程,降低了系统的耗电量。
[0085]实施例一
[0086]参照图1,其示出了本发明一种安卓系统应用关闭方法的流程示意图,包括:
[0087]步骤110,监听安卓系统中是否开始孵化进程;
[0088]在Android系统中,所有的应用程序进程以及系统服务进程SystemServer都是由zygote进程孵化(fork)出来的,本发明可以在zygote进程孵化其他进程时,则对孵化过程进行监听,也即监听对进程的创建。
[0089]优选的,还包括:
[0090]子步骤100,将安卓系统初始的进程孵化器替换为特定的第一进程孵化器;通过所述第一进程孵化器监听安卓系统是否开始孵化进程。
[0091]在本发明中,为了实现进程孵化过程的监听,需要首先对android系统初始的进程孵化器即zygote进程进行替换,替换为指定的第一进程孵化器,即第一 zygote进程,该第一 zygote进程可以监听安卓系统是否开始孵化进程。本发明可通过android系统初始的zygote进程替换为第一 zygote进程实现监听和获取过程。
[0092]当然,在替换安卓系统初始的zygote进程为第一 zygote进程后,需要重启android系统。替换后的第一 zygote进程的功能除了包括安卓系统初始的zygote进程的功能之外,还添加了监听是安卓系统否开始孵化进程以及监听之后的各种处理逻辑。
[0093]当然,对于安卓系统,上述替换过程可预先获取系统的root权限,然后再进行替换。
[0094]优选的,所述通过所述第一进程孵化器监听安卓系统是否开始孵化进程包括:
[0095]子步骤112,通过所述第一进程孵化器创建java虚拟机;
[0096]子步骤113,通过所述java虚拟机注册监听套接字,通过所述监听套接字监听安卓系统是否开始孵化进程。
[0097]在android系统的正常启动过程中,大致为:启动系统一〉init进程读取启动init.rc一>init进程创建zygote进程一>zygote进程创建java虚拟机载入zygotelnit类一> 通过所述虚拟机注册socket—>等待ActivityManagerService向socket写入创建进程的创建消息一〉zygote进程根据所述创建消息创建对应进程。
[0098]那么本发明在前述步骤将android系统初始的zygote进程替换为本发明指定的第一 zygote进程后,android系统重启后,其init进程即可创建本发明的第一 zygote进程,然后即可第一 zygote进程创建java虚拟机,进而注册监听套接字,通过所述监听套接字监听是安卓系统否开始孵化进程。
[0099]优选的,所述通过所述套接字监听是否开始孵化窗口服务包括:
[0100]子步骤134,监听所述套接字中是否接收到孵化进程的创建消息;如果所述监听套接字接收到创建消息,则确定开始孵化进程。
[0101]在本发明实施例中在android系统需要创建进程时,系统(比如ActivityManagerService)需要向所述监听套接字写入创建进行的创建消息,那么监听所述监听套接字中是否接收到创建消息,即可判断系统是否开始孵化进程。如果所述监听套接字接收到创建消息,则确定开始孵化进程。如果所述监听套接字没接收到创建消息,则说明没有进程需要孵化。
[0102]步骤120,如果开始孵化进程,则判断所述进程是否属于系统必须范围内的进程;如果所述进程不属于系统必须范围内的进程,则进入步骤130 ;
[0103]步骤130,记录所述进程的进程信息;
[0104]在本发明实施例中,替换后的第一 zygote进程还会加载一个进程名单,该进程名单记录了系统必须范围内的进程,比如systemsever进程、WindowManagerService等系统进程,这些进程如果被关闭,则会影响系统本身的正常使用。对于该进程名单之外的进程,比如浏览器、即时通讯等APP的进程,本发明则可对其进程信息进行记录,比如记录进程名。在本发明实施例中也可将所述进程信息返回指定进程进行记录。
[0105]然后即可等待后续步骤。
[0106]步骤140,在安卓系统锁屏状态下判断是否接收到用户触发的关闭指令;如果接收到关闭指令,则进入步骤150 ;
[0107]当用户在安装系统锁屏后,如果用户想关闭其使用时启动但是未关闭的APP^J可以在锁屏状态下,按预先设置的对某个功能按键的监听,比如声音按键,长按增加声音键3s,则触发关闭指令,系统则需要进入关闭打开的app进程的步骤。上述预先设置的对某个功能按键的监听,也可以通过前述第一 zygote进程设置个一监听逻辑执行。
[0108]优选的,所述在安卓系统锁屏状态下判断是否接收到用户触发的关闭指令包括:
[0109]子步骤141,在锁屏状态下,接收用户对指定按键的触发操作,判断所述对指定按键的触发操作是否符合预定规则;如果所述对指定按键的触发操作符合预定规则,则判断接收到关闭指令。
[0110]在本发明实施例中,替换后的第一 zygote进程还加载对指定按键的触发的预定规则逻辑,比如前述锁屏状态下长按增加声音键3s,则触发关闭指令。那么在后续系统启动后,监听在锁屏状态下对增加声音键的触发。
[0111]当然,在本发明实施例中,可以在屏幕点亮后接收户对指定按键的触发操作。
[0112]步骤150,根据所述记录的进程信息,对所述进程进行关闭。
[0113]在操作系统确定接收到关闭指令后,则根据所述记录的进程信息,对所述进程进行关闭。比如根据记录的进程信息,可以调用killp1cess函数对进程进行关闭。
[0114]本发明实施例在安卓系统孵化(fork)进程开始之时,即可获取进程的进程信息,那么本发明可以将非系统必须的进程,比如systemsever进程等安卓系统执行的基础进程、还比如通话进程、通知栏进程等,不进行记录,以避免在后续关闭时将这些系统相关进程如果关闭,影响用户的正常使用,而对于除了系统必须进程之外的其他进程,比如APP进程,本发明则可以记录app的进程信息。在系统锁屏后,如果用户通过终端的功能键触发关闭指令,则可则根据所述记录的进程信息,对所述系统必须进程范围之外的进程进行关闭。使其可在锁屏状态下便捷的关闭安卓系统中运行的非系统必须范围之外的进程,降低了系统的耗电量。
[0115]实施例二
[0116]参照图2,其示出了本发明一种安卓系统窗口对象获取方法的流程示意图,包括:
[0117]步骤210,监听安卓系统中是否开始孵化进程;
[0118]步骤220,如果开始孵化进程,则判断所述进程是否属于系统必须范围内的进程;如果所述进程不属于系统必须范围内的进程,则记录所述进程的进程信息;
[0119]步骤230,在窗口服务调用的窗口对象获取函数之前,拦截对所述安卓系统中初始窗口对象获取函数的调用;
[0120]在传统的viewserver执行过程中,要通过viewserver去获取窗口对象时,需要调用窗口对象获取函数,在viewserver调用完所述窗口对象获取函数去窗口管理服务windows manager servive维持的窗口 list堆栈中获取窗口对象windostata后,会返回viewserver,然后再由viewserver通过外部套接字传输所述获取到窗口对象的所有数据。
[0121]其中,Viewserver是一种服务,可以理解为一个进程。
[0122]而本发明实施例,则viewserver调用所述窗口对象获取函数之前,拦截对所述安卓系统中初始窗口对象获取函数的调用,然后进入步骤120。
[0123]在本发明实施例中,可以通过将安卓系统初始的进程孵化器替换为特定的第一进程孵化器,然后通过第一进程孵化器实现在窗口服务调用的窗口对象获取函数之前,拦截对所述安卓系统中初始窗口对象获取函数的调用。
[0124]优选的,所述在窗口服务调用的窗口对象获取函数之前,拦截对所述安卓系统中初始窗口对象获取函数的调用包括:
[0125]子步骤231,通过所述第一进程孵化器监听是否开始孵化窗口服务;
[0126]在本发明实施中在前述将安卓系统初始的进程孵化器替换为特定的第一进程孵化器时,即对android系统初始的进程孵化器即zygote进程进行替换,替换为指定的第一zygote进程,该第一 zygote进程还可以添加监听是否开始创建viewserver的逻辑,即还可通过所述第一进程孵化器监听是否开始孵化窗口服务。
[0127]优选的,通过所述第一进程孵化器监听是否开始孵化窗口服务包括:
[0128]子步骤A2311,通过所述第一进程孵化器创建java虚拟机;
[0129]该步骤与子步骤112是同一个步骤。
[0130]子步骤A2312,通过所述java虚拟机注册监听套接字,在所述监听套接字中添加是否开始孵化窗口服务逻辑,以通过所述监听套接字监听安卓系统是否开始孵化进程。
[0131]该步骤是在子步骤113执行的基础上,注册监听套接字时添加了在所述监听套接字中添加是否开始孵化窗口服务逻辑。
[0132]在android系统的正常启动过程中,大致为:启动系统一〉init进程读取启动init.rc一>init进程创建zygote进程一>zygote进程创建java虚拟机载入zygotelnit类一> 通过所述虚拟机socket—>等待ActivityManagerService向socket写入创建进程的创建消息一 >zygote进程根据所述创建消息创建对应进程。
[0133]那么本发明在前述步骤将android系统初始的zygote进程替换为本发明指定的第一 zygote进程后,android系统重启后,其init进程即可创建本发明的第一 zygote进程,然后即可第一 zygote进程创建java虚拟机,进通过所述java虚拟机注册监听套接字,在本发明的监听套接字除了监听各个进程的是否开始孵化的逻辑,还进一步的有针对viewserver这个特定的进程的监听逻辑。
[0134]优选的,所述通过所述套接字监听是否开始孵化窗口服务包括:
[0135]子步骤A215,监听所述套接字中是否接收到孵化窗口服务的第一消息;如果所述套接字接收到孵化窗口服务的第一消息,则确定开始孵化窗口服务。
[0136]上述注册的套接字,本发明实施例中是监听套接字中的接收到的消息。在android系统需要创建进程时,系统需要向套接字发送创建viewserver的第一消息,那么监听所述套接字中是否接收到孵化窗口服务的第一消息,即可判断系统是否开始创建Vi ewserver。如果所述套接字接收到孵化窗口服务的第一消息,则确定开始孵化窗口服务。如果所述套接字没接收到孵化窗口服务的第一消息,则系统没有孵化窗口服务。
[0137]子步骤232,如果监听到开始孵化窗口服务,则拦截对所述窗口服务的创建,从而拦截窗口服务对其需要调用的安卓系统中初始窗口对象获取函数的加载。
[0138]那么本发明实施例在监听到开始创建viewserver后,则拦截对viewserver的创建。在本发明实施例中拦截对viewserver的创建的过程为拦截viewserver对其需要调用的函数的加载,比如拦截viewserver对其需要调用的窗口对象获取函数的加载。
[0139]步骤240,将所述拦截的初始窗口对象获取函数替换为第一窗口对象获取函数;
[0140]本发明实施例将拦截的初始窗口对象获取函数,替换为自己的第一窗口对象获取函数,即前述第一窗口对象获取函数;本发明实施例中自己的第一窗口对象获取函数的功能和接口与安卓系统初始的窗口对象获取函数的功能和接口一致,都可去w i n dow smanager servive维持的窗口对象list堆栈中获取windowstata,第一窗口对象获取函数只是在获取到windowstata后返回的对象变更为本发明实施例指定的指定进程。
[0141]优选的,将所述拦截窗口对象获取函数替换为第一窗口对象获取函数包括:
[0142]子步骤241,在拦截对所述窗口服务的创建后,将窗口服务需要加载的初始窗口对象获取函数替换为第一窗口对象获取函数;
[0143]在本发明实施例中,在前述替换android系统初始的zygote进程为本发明的第一zygote进程时,将初始的zygotelnit类替换为本发明修改后的zygotelnit类的过程中,在修改后的zygotelnit类中,会将本发明需要的第一窗口对象获取函数也加进去,该第一窗口对象获取函数在获取到windowstata之前的过程与android系统原始的窗口对象获取函数一致,只是第一窗口对象获取函数获取到windowstata后的返回时序更改为直接返回指定进程。
[0144]子步骤242,创建所述窗口服务,并加载所述第一窗口对象获取函数。
[0145]那么在将android系统初始的窗口对象获取函数替换为本发明的第一窗口对象获取函数之后,则可继续执行创建所述viewserver的过程,仓ll建之后则会加载其所需的函数,其所需的函数包括所述第一窗口对象获取函数。
[0146]步骤250,在触发窗口服务以获取窗口对象时,所述窗口服务通过调用所述第一窗口对象获取函数获取窗口对象并返回指定进程以进行窗口对象记录;
[0147]在将拦截的初始的窗口对象获取函数替换为本发明自己的第一窗口对象获取函数之后,继续执行viewserver的调用,那么其调用的即为本发明的第一窗口对象获取函数,该第一窗口对象获取函数获取到windowstata后返回的对象变更为本发明实施例指定的指定进程,那么即可通过指定进程记录各windowstata的信息。
[0148]当所述viewserver调用所述第一窗口对象获取函数去windows manager servive维持的窗口 list堆栈中获取到windowstata后,即可直接将所述windowstata通过viewserver和指定进程间的pipe管道返回android系统的指定进程。
[0149]步骤260,在安卓系统锁屏状态下判断是否接收到用户触发的关闭指令;如果接收到关闭指令,则进入步骤270 ;
[0150]步骤270,根据进程信息与窗口对象的对应关系,从对应的窗口对象中获取窗口缩略图,并将所述窗口缩略图展示在锁屏界面的指定位置;
[0151]在本发明实施例中,可从指定进程记录的windowstata中,获取与记录的进程信息对应的windowstata,然后基于这些windowstata中的窗口消息生成相应的窗口缩略图。
[0152]步骤280,接收到用户针对至少一个窗口缩略图的第二关闭指令;
[0153]步骤290,当接收到针对至少一个窗口缩略图的第二关闭指令,根据所述记录的进程信息,对相应的进程进行关闭。
[0154]比如当前系统内存中运行的app进程有A、B、C,那么在步骤280展示A、B、C的窗口缩略图之后,用户可以选择全部关闭,也可以选择关闭某个,那么选择之后即可根据记录的进程信息查找该被选择进程的进程信息,调用关闭函数对相应的进程关闭。
[0155]优选的,还包括:
[0156]步骤292,在窗口对象堆栈顶部的窗口对象发生变化时,判断所述窗口对象是否已经获取;
[0157]步骤294,如果所述窗口对象未获取,则继续将所述窗口对象返回指定进程。
[0158]在本发明实施例中,因为第一 getfocuswindow函数是获取的栈顶的windowstata,而栈顶的windowstata表示当前展示的或者说激活应用的窗口对象,其他处于后台的窗口对象则会在栈顶之下的某个位置。本发明实施例只要栈顶的windowstata变化,即android系统当前展示的app变化,即可获取该变化后的windowstata。
[0159]那么本发明可不断获取栈顶的windowstata,并且对已经获取的windowstata进行记录,在下次获取windowstata之时,根据前述记录,如果栈顶的windowstata没有变化,则不用获取,如果栈顶的windowstata变化了,则继续将所述窗口对象返回指定进程。
[0160]本发明实施例,可以在对进程信息进行记录的同时,也可对进程所对应的窗口对象进行记录,在锁屏状态下,可以根基记录的进程,展示对应的窗口信息,方便用户控制关闭哪些进程。使用户可在锁屏状态下便捷的关闭安卓系统中运行的非系统必须范围之外的进程,降低了系统的耗电量。
[0161]实施例三
[0162]参照图3,其示出了本发明一种安卓系统窗口对象获取方法的流程示意图,包括:
[0163]步骤310,将安卓系统初始的进程孵化器替换为特定的第一进程孵化器;
[0164]即将android系统初始的zygote进程替换为本发明预置的第一 zygote进程;第一 zygote进程的功能除了包括初始的zygote进程的功能之外,还添加了监听是否开始监听安卓系统是否开始孵化进程以及孵化窗口服务以及监听之后的处理逻辑。在替换后,可重启系统,启动系统最开始的init进程。
[0165]步骤312,通过所述第一进程孵化器创建java虚拟机;
[0166]步骤314,通过所述java虚拟机注册监听套接字,以通过所述监听套接字监听安卓系统是否开始孵化进程的以及进一步监听安卓系统是否开始孵化窗口服务;如果监听到安卓系统开始孵化进程,则进入步骤316 ;如果监听到安卓系统是否开始孵化窗口服务,则进入步骤322 ;
[0167]步骤316,判断所述进程是否属于系统必须范围内的进程;如果所述进程不属于系统必须范围内的进程,则进入步骤318 ;
[0168]步骤318,记录所述进程的进程信息;
[0169]步骤322,拦截对所述窗口服务的创建,从而拦截窗口服务对其需要调用的getfocuswindow函数的加载;
[0170]步骤324,在拦截对所述窗口服务的创建后,将窗口服务需要加载的初始getfocuswindow 函数,替换为第一 getfocuswindow 函数;所述第一 getfocuswindow 函数的返回时序为返回指定进程;
[0171]本发明的第一 getfocuswindow函数与android系统中本身的初始getfocuswindow函数具有相同的参数设置,只是将系统的初始getfocuswindow函数的返回对象修改为了本发明的指定进程。
[0172]步骤326,创建所述窗口服务,并加载所述第一 getfocuswindow函数;
[0173]在替换了上述函数之后,即可继续执行进程孵化过程,第一 zygote进程可以继续创建viewserver,仓丨j建后加载第一 getfocuswindow函数的相关参数。
[0174]步骤328,窗口服务通过第一 getfocuswindow函数,查找窗口对象堆栈顶部的windowstata窗口对象,并将windowstata窗口对象返回指定进程以进程窗口对象的记录;
[0175]通过前述步骤之后,在窗口服务执行获取窗口对象时,则可调用所述第一getfocuswindow函数,从存储窗口对象的堆栈,获取栈顶的windowstata,然后即可将windowstata通过viewserver和指定进程之间的pipe管道传返回给指定进程。当然viewserver和指定进程之间的pipe管道可以在使用时构建。
[0176]在本发明实施例中,任意一个app打开时,其对应的windowstata均会在前述堆栈的栈顶,那么通过上述步骤即可记录所有打开的app的windowstata。
[0177]步骤330,在安卓系统锁屏状态下判断是否接收到用户触发的关闭指令;如果接收到关闭指令,则进入步骤332 ;
[0178]步骤332,根据进程信息与窗口对象的对应关系,从对应的窗口对象中获取窗口缩略图,并将所述窗口缩略图展示在锁屏界面的指定位置;
[0179]步骤334,接收到用户针对至少一个窗口缩略图的第二关闭指令;
[0180]步骤336,当接收到针对至少一个窗口缩略图的第二关闭指令,根据所述记录的进程信息,对相应的进程进行关闭。
[0181]实施例四
[0182]参照图4,其示出了本发明一种安卓系统应用关闭装置的结构示意图,包括:
[0183]进程创建监听模块410,适于监听安卓系统中是否开始孵化进程;
[0184]进行信息记录模块420,适于如果开始孵化进程,则判断所述进程是否属于系统必须范围内的进程;如果所述进程不属于系统必须范围内的进程,则记录所述进程的进程信息;
[0185]关闭触发模块430,适于在安卓系统锁屏状态下判断是否接收到用户触发的关闭指令;
[0186]进程关闭模块440,适于如果接收到关闭指令,则根据所述记录的进程信息,对所述进程进行关闭。
[0187]优选的,还包括:
[0188]进程孵化器替换模块,适于将安卓系统初始的进程孵化器替换为特定的第一进程孵化器;通过所述第一进程孵化器监听安卓系统是否开始孵化进程。
[0189]优选的,所述进程创建监听模块包括:
[0190]Java虚拟机创建模块,适于通过所述第一进程孵化器创建java虚拟机;
[0191]监听套接字注册模块,适于通过所述java虚拟机注册监听套接字,通过所述监听套接字监听安卓系统是否开始孵化进程。
[0192]优选的,所述进程创建监听模块包括:
[0193]第一进程创建监听模块,适于监听所述套接字中是否接收到孵化进程的创建消息;如果所述监听套接字接收到创建消息,则确定开始孵化进程。
[0194]优选的,所述关闭触发模块包括:
[0195]第一关闭触发模块,适于在锁屏状态下,接收用户对指定按键的触发操作,判断所述对指定按键的触发操作是否符合预定规则;如果所述对指定按键的触发操作符合预定规贝U,则判断接收到关闭指令。
[0196]实施例五
[0197]参照图5,其示出了本发明一种安卓系统应用关闭装置的结构示意图,包括:
[0198]进程创建监听模块510,适于监听安卓系统中是否开始孵化进程;
[0199]进行信息记录模块520,适于如果开始孵化进程,则判断所述进程是否属于系统必须范围内的进程;如果所述进程不属于系统必须范围内的进程,则记录所述进程的进程信息;
[0200]窗口拦截模块530,适于在窗口服务调用的窗口对象获取函数之前,拦截对所述安卓系统中初始窗口对象获取函数的调用;
[0201]函数替换模块540,适于将所述拦截的初始窗口对象获取函数替换为第一窗口对象获取函数;
[0202]窗口获取模块550,适于在触发窗口服务以获取窗口对象时,所述窗口服务通过调用所述第一窗口对象获取函数获取窗口对象并返回指定进程以进行窗口对象记录。
[0203]关闭触发模块560,适于在安卓系统锁屏状态下判断是否接收到用户触发的关闭指令;进入窗口展示模块570;
[0204]窗口展示模块570,适于根据进程信息与窗口对象的对应关系,从对应的窗口对象中获取窗口缩略图,并将所述窗口缩略图展示在锁屏界面的指定位置;
[0205]第二关闭指令模块580,适于接收到用户针对至少一个窗口缩略图的第二关闭指令;
[0206]进程关闭模块590,适于当接收到针对至少一个窗口缩略图的第二关闭指令,根据所述记录的进程信息,对相应的进程进行关闭。
[0207]优选的,所述窗口拦截模块包括:
[0208]第一监听模块,适于通过所述第一进程孵化器监听是否开始孵化窗口服务;
[0209]第一拦截模块,适于如果监听到开始孵化窗口服务,则拦截对所述窗口服务的创建,从而拦截窗口服务对其需要调用的安卓系统中初始窗口对象获取函数的加载。
[0210]优选的,所述函数替换模块包括:
[0211]第一函数替换模块,适于在拦截对所述窗口服务的创建后,将窗口服务需要加载的初始窗口对象获取函数替换为第一窗口对象获取函数;
[0212]窗口服务创建模块,适于创建所述窗口服务,并加载所述第一窗口对象获取函数。
[0213]优选的,通过所述第一进程孵化器监听是否开始创建窗口服务。
[0214]优选的,通过所述监听套接字监听是否开始创建窗口服务。
[0215]优选的,所述窗口拦截模块包括:
[0216]创建消息监听模块,适于监听所述套接字中是否接收到创建窗口服务的第一消息;如果所述套接字接收到创建窗口服务的第一消息,则确定开始创建窗口服务。
[0217]实施例六
[0218]参照图6,其示出了本发明一种安卓系统应用关闭装置的结构示意图,包括:
[0219]进程孵化器替换模块610,适于将安卓系统初始的进程孵化器替换为特定的第一进程孵化器;
[0220]虚拟机创建模块612,适于通过所述第一进程孵化器创建java虚拟机;
[0221]第一窗口服务创建监听模块614,适于通过所述java虚拟机注册监听套接字,以通过所述监听套接字监听安卓系统是否开始孵化进程的以及进一步监听安卓系统是否开始孵化窗口服务;如果监听到安卓系统开始孵化进程,则进入进程判断模块616 ;如果监听到安卓系统是否开始孵化窗口服务,则进入第二拦截模块622 ;
[0222]进程判断模块616,适于如果开始孵化进程,则判断所述进程是否属于系统必须范围内的进程;如果所述进程不属于系统必须范围内的进程,则进入进程记录模块618 ;
[0223]进程记录模块618,适于记录所述进程的进程信息;
[0224]第二拦截模块622,拦截对所述窗口服务的创建,从而拦截窗口服务对其需要调用的getfocuswindow函数的加载;
[0225]第二函数替换模块624,适于将窗口服务需要加载的初始getfocuswindow函数,替换为第一 getfocuswindow函数;所述第一 getfocuswindow函数的返回时序为返回指定进程;
[0226]窗口服务创建模块626,适于创建所述窗口服务,并加载所述第一 getfocuswindow函数;
[0227]第一窗口对象获取模块628,适于窗口服务通过第一 getfocuswindow函数,查找窗口对象堆栈顶部的windowstata窗口对象,并将windowstata窗口对象返回指定进程;
[0228]通过上述模块的记录,则可为后续在锁屏状态下关闭APP进程提供数据支持。
[0229]关闭触发模块630,适于在安卓系统锁屏状态下判断是否接收到用户触发的关闭指令;进入窗口展示模块632;
[0230]窗口展示模块632,适于根据进程信息与窗口对象的对应关系,从对应的窗口对象中获取窗口缩略图,并将所述窗口缩略图展示在锁屏界面的指定位置;
[0231]第二关闭指令模块634,适于接收到用户针对至少一个窗口缩略图的第二关闭指令;
[0232]进程关闭模块636,适于当接收到针对至少一个窗口缩略图的第二关闭指令,根据所述记录的进程信息,对相应的进程进行关闭。
[0233]在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
[0234]在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
[0235]类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循【具体实施方式】的权利要求书由此明确地并入该【具体实施方式】,其中每个权利要求本身都作为本发明的单独实施例。
[0236]本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
[0237]此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
[0238]本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的安卓系统应用关闭设备中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
[0239]应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
[0240]Al、一种安卓系统应用关闭方法,包括:
[0241]监听安卓系统中是否开始孵化进程;
[0242]如果开始孵化进程,则判断所述进程是否属于系统必须范围内的进程;如果所述进程不属于系统必须范围内的进程,则记录所述进程的进程信息;
[0243]在安卓系统锁屏状态下判断是否接收到用户触发的关闭指令;
[0244]如果接收到关闭指令,则根据所述记录的进程信息,对所述进程进行关闭。
[0245]A2、如Al所述的方法,还包括:
[0246]将安卓系统初始的进程孵化器替换为特定的第一进程孵化器;通过所述第一进程孵化器监听安卓系统是否开始孵化进程。
[0247]A3、如A2所述的方法,所述通过所述第一进程孵化器监听安卓系统是否开始孵化进程包括:
[0248]通过所述第一进程孵化器创建java虚拟机;
[0249]通过所述java虚拟机注册监听套接字,通过所述监听套接字监听安卓系统是否开始孵化进程。
[0250]A4、如A3所述的方法,所述通过所述套接字监听是否开始孵化窗口服务包括:
[0251]监听所述套接字中是否接收到孵化进程的创建消息;如果所述监听套接字接收到创建消息,则确定开始孵化进程。
[0252]A5、如Al所述的方法,所述在安卓系统锁屏状态下判断是否接收到用户触发的关闭指令包括:
[0253]在锁屏状态下,接收用户对指定按键的触发操作,判断所述对指定按键的触发操作是否符合预定规则;如果所述对指定按键的触发操作符合预定规则,则判断接收到关闭指令。
[0254]A6、如A2所述的方法,还包括:
[0255]在窗口服务调用的窗口对象获取函数之前,拦截对所述安卓系统中初始窗口对象获取函数的调用;
[0256]将所述拦截的初始窗口对象获取函数替换为第一窗口对象获取函数;
[0257]在触发窗口服务以获取窗口对象时,所述窗口服务通过调用所述第一窗口对象获取函数获取窗口对象并返回指定进程以进行窗口对象记录。
[0258]A7、如A6所述的方法,在接收到关闭指令之后,还包括:
[0259]根据进程信息与窗口对象的对应关系,从对应的窗口对象中获取窗口缩略图,并将所述窗口缩略图展示在锁屏界面的指定位置;
[0260]进一步的,还包括:
[0261]接收到用户针对至少一个窗口缩略图的第二关闭指令;当接收到针对至少一个窗口缩略图的第二关闭指令,根据所述记录的进程信息,对相应的进程进行关闭。
[0262]AS、如A6所述的方法,所述在窗口服务调用的窗口对象获取函数之前,拦截对所述安卓系统中初始窗口对象获取函数的调用包括:
[0263]通过所述第一进程孵化器监听是否开始孵化窗口服务;
[0264]如果监听到开始孵化窗口服务,则拦截对所述窗口服务的创建,从而拦截窗口服务对其需要调用的安卓系统中初始窗口对象获取函数的加载。
[0265]A9、如A6所述的方法,将所述拦截窗口对象获取函数替换为第一窗口对象获取函数包括:
[0266]在拦截对所述窗口服务的创建后,将窗口服务需要加载的初始窗口对象获取函数替换为第一窗口对象获取函数;
[0267]创建所述窗口服务,并加载所述第一窗口对象获取函数。
[0268]A10、如A9所述的方法,所述将窗口服务需要加载的初始窗口对象获取函数替换为第一窗口对象获取函数包括:
[0269]将窗口服务需要加载的初始getfocuswindow函数,替换为第一 getfocuswindow函数;所述第一 getfocuswindow函数的返回时序为返回指定进程。
[0270]All、如AlO所述的方法,所述窗口服务通过调用所述第一窗口对象获取函数获取窗口对象包括:
[0271]通过第一 getfocuswindow函数,查找窗口对象堆栈顶部的windowstata窗口对象。
[0272]A12、如AlO所述的方法,还包括:
[0273]在窗口对象堆栈顶部的窗口对象发生变化时,判断所述窗口对象是否已经获取;
[0274]如果所述窗口对象未获取,则继续将所述窗口对象返回指定进程。
[0275]本发明还提供了 B13、一种安卓系统应用关闭装置,包括:
[0276]进程创建监听模块,适于监听安卓系统中是否开始孵化进程;
[0277]进行信息记录模块,适于如果开始孵化进程,则判断所述进程是否属于系统必须范围内的进程;如果所述进程不属于系统必须范围内的进程,则记录所述进程的进程信息;
[0278]关闭触发模块,适于在安卓系统锁屏状态下判断是否接收到用户触发的关闭指令;
[0279]进程关闭模块,适于如果接收到关闭指令,则根据所述记录的进程信息,对所述进程进行关闭。
[0280]B14、如B13所述的装置,还包括:
[0281]进程孵化器替换模块,适于将安卓系统初始的进程孵化器替换为特定的第一进程孵化器;通过所述第一进程孵化器监听安卓系统是否开始孵化进程。
[0282]B15、如B14所述的装置,所述进程创建监听模块包括:
[0283]Java虚拟机创建模块,适于通过所述第一进程孵化器创建java虚拟机;
[0284]监听套接字注册模块,适于通过所述java虚拟机注册监听套接字,通过所述监听套接字监听安卓系统是否开始孵化进程。
[0285]B16、如B15所述的装置,所述进程创建监听模块包括:
[0286]第一进程创建监听模块,适于监听所述套接字中是否接收到孵化进程的创建消息;如果所述监听套接字接收到创建消息,则确定开始孵化进程。
[0287]B17、如B13所述的装置,所述关闭触发模块包括:
[0288]第一关闭触发模块,适于在锁屏状态下,接收用户对指定按键的触发操作,判断所述对指定按键的触发操作是否符合预定规则;如果所述对指定按键的触发操作符合预定规贝1J,则判断接收到关闭指令。
[0289]B18、如B14所述的装置,还包括:
[0290]窗口拦截模块,适于在窗口服务调用的窗口对象获取函数之前,拦截对所述安卓系统中初始窗口对象获取函数的调用;
[0291]函数替换模块,适于将所述拦截的初始窗口对象获取函数替换为第一窗口对象获取函数;
[0292]窗口获取模块,适于在触发窗口服务以获取窗口对象时,所述窗口服务通过调用所述第一窗口对象获取函数获取窗口对象并返回指定进程以进行窗口对象记录。
[0293]B19、如B18所述的装置,在关闭触发模块之后,还包括:
[0294]窗口展示模块,适于根据进程信息与窗口对象的对应关系,从对应的窗口对象中获取窗口缩略图,并将所述窗口缩略图展示在锁屏界面的指定位置;
[0295]进一步的,还包括:
[0296]第二关闭指令模块,适于接收到用户针对至少一个窗口缩略图的第二关闭指令;当接收到针对至少一个窗口缩略图的第二关闭指令,根据所述记录的进程信息,对相应的进程进行关闭。
[0297]B20、如B18所述的装置,所述窗口拦截模块包括:
[0298]第一监听模块,适于通过所述第一进程孵化器监听是否开始孵化窗口服务;
[0299]第一拦截模块,适于如果监听到开始孵化窗口服务,则拦截对所述窗口服务的创建,从而拦截窗口服务对其需要调用的安卓系统中初始窗口对象获取函数的加载。
[0300]B21、如B18所述的装置,所述函数替换模块包括:
[0301]第一函数替换模块,适于在拦截对所述窗口服务的创建后,将窗口服务需要加载的初始窗口对象获取函数替换为第一窗口对象获取函数;
[0302]窗口服务创建模块,适于创建所述窗口服务,并加载所述第一窗口对象获取函数。
[0303]B22、如B21所述的装置,所述将窗口服务需要加载的初始窗口对象获取函数替换为第一窗口对象获取函数包括:
[0304]第二函数替换模块,适于将窗口服务需要加载的初始getfocuswindow函数,替换为第一 getfocuswindow函数;所述第一 getfocuswindow函数的返回时序为返回指定进程。
[0305]B23、如B22所述的装置,所述窗口服务通过调用所述第一窗口对象获取函数获取窗口对象包括:
[0306]第一窗口对象获取模块,适于通过第一 getfocuswindow函数,查找窗口对象堆栈顶部的windowstata窗口对象。
[0307]B24、如B23所述的装置,还包括:
[0308]窗口对象判断模块,适于在窗口对象堆栈顶部的窗口对象发生变化时,判断所述窗口对象是否已经获取;如果所述窗口对象未获取,则继续将所述窗口对象返回指定进程。
【权利要求】
1.一种安卓系统应用关闭方法,包括: 监听安卓系统中是否开始孵化进程; 如果开始孵化进程,则判断所述进程是否属于系统必须范围内的进程;如果所述进程不属于系统必须范围内的进程,则记录所述进程的进程信息; 在安卓系统锁屏状态下判断是否接收到用户触发的关闭指令; 如果接收到关闭指令,则根据所述记录的进程信息,对所述进程进行关闭。
2.如权利要求1所述的方法,其特征在于,还包括: 将安卓系统初始的进程孵化器替换为特定的第一进程孵化器;通过所述第一进程孵化器监听安卓系统是否开始孵化进程。
3.如权利要求2所述的方法,其特征在于,所述通过所述第一进程孵化器监听安卓系统是否开始孵化进程包括: 通过所述第一进程孵化器创建java虚拟机; 通过所述java虚拟机注册监听套接字,通过所述监听套接字监听安卓系统是否开始孵化进程。
4.如权利要求3所述的方法,其特征在于,所述通过所述套接字监听是否开始孵化窗口服务包括: 监听所述套接字中是否接收到孵化进程的创建消息;如果所述监听套接字接收到创建消息,则确定开始孵化进程。
5.如权利要求1所述的方法,其特征在于,所述在安卓系统锁屏状态下判断是否接收到用户触发的关闭指令包括: 在锁屏状态下,接收用户对指定按键的触发操作,判断所述对指定按键的触发操作是否符合预定规则;如果所述对指定按键的触发操作符合预定规则,则判断接收到关闭指令。
6.如权利要求2所述的方法,其特征在于,还包括: 在窗口服务调用的窗口对象获取函数之前,拦截对所述安卓系统中初始窗口对象获取函数的调用; 将所述拦截的初始窗口对象获取函数替换为第一窗口对象获取函数; 在触发窗口服务以获取窗口对象时,所述窗口服务通过调用所述第一窗口对象获取函数获取窗口对象并返回指定进程以进行窗口对象记录。
7.如权利要求6所述的方法,其特征在于,在接收到关闭指令之后,还包括: 根据进程信息与窗口对象的对应关系,从对应的窗口对象中获取窗口缩略图,并将所述窗口缩略图展示在锁屏界面的指定位置; 进一步的,还包括: 接收到用户针对至少一个窗口缩略图的第二关闭指令;当接收到针对至少一个窗口缩略图的第二关闭指令,根据所述记录的进程信息,对相应的进程进行关闭。
8.如权利要求6所述的方法,其特征在于,所述在窗口服务调用的窗口对象获取函数之前,拦截对所述安卓系统中初始窗口对象获取函数的调用包括: 通过所述第一进程孵化器监听是否开始孵化窗口服务; 如果监听到开始孵化窗口服务,则拦截对所述窗口服务的创建,从而拦截窗口服务对其需要调用的安卓系统中初始窗口对象获取函数的加载。
9.如权利要求6所述的方法,其特征在于,将所述拦截窗口对象获取函数替换为第一窗口对象获取函数包括: 在拦截对所述窗口服务的创建后,将窗口服务需要加载的初始窗口对象获取函数替换为第一窗口对象获取函数; 创建所述窗口服务,并加载所述第一窗口对象获取函数。
10.一种安卓系统应用关闭装置,包括: 进程创建监听模块,适于监听安卓系统中是否开始孵化进程; 进行信息记录模块,适于如果开始孵化进程,则判断所述进程是否属于系统必须范围内的进程;如果所述进程不属于系统必须范围内的进程,则记录所述进程的进程信息; 关闭触发模块,适于在安卓系统锁屏状态下判断是否接收到用户触发的关闭指令; 进程关闭模块,适于如果接收到关闭指令,则根据所述记录的进程信息,对所述进程进行关闭。
【文档编号】G06F9/46GK104484223SQ201410784204
【公开日】2015年4月1日 申请日期:2014年12月16日 优先权日:2014年12月16日
【发明者】张辉 申请人:北京奇虎科技有限公司, 奇智软件(北京)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1