一种应用进程的监控方法和装置与流程

文档序号:13821259阅读:143来源:国知局
一种应用进程的监控方法和装置与流程

本发明涉及通信技术领域,具体涉及一种应用进程的监控方法和装置。



背景技术:

随着计算机技术的发展,以及终端的普及,终端应用的种类也越来越为繁多,多种终端应用的进程(简称应用进程)在同一终端中运行,难免会出现一些状况,比如某个应用进程被另一个应用强行关闭,或某个应用进程意外中止,等等,为此,有必要对应用进程进行实时监控,以保障重要的应用进程能够正常运行。

在现有技术中,一般会通过linux层的子进程轮询父进程的方式,来定期向待监控应用的主进程发送消息,从而达到对该主进程进行监控的目的。例如,具体可以由该待监控应用执行native方法(一个java类方法),通过在linux层的fork()函数产生一个linux进程,然后利用该进程定时地向主进程发送意图(intent)请求,如果主进程终止(即死亡),则因为该请求被系统唤起(即拉活主进程);如果主进程未终止,则主进程无视该请求。此外,为了保证主进程的存活时间,一般需要采用较快的频率来发送该意图请求。

在对现有技术的研究和实践过程中,本发明的发明人发现,在现有方案中,由于需要采用较快的发送频率来发送意图请求,因此,电量消耗较大,而且,如果linux进程也意外中止的话,则无法实现,所以,该方案只能适用于特定的系统,适应性较差。



技术实现要素:

本发明实施例提供一种应用进程的监控方法和装置;可以节省电量的消耗,以及适用于多数系统,改善其适用性。

本发明实施例提供一种应用进程的监控方法,其特征在于,包括:

调用待监控应用的主进程和守护进程;

通过所述主进程创建第一系统文件和第二系统文件;

由所述主进程对所述第一系统文件的读取权限进行设置,使得所述第一系统文件在主进程中止之后,才可被守护进程读取,以及由所述守护进程对所述第二系统文件的读取权限进行设置,使得所述第二系统文件在守护进程中止之后,才可被主进程读取;

通过所述主进程读取第二系统文件,以及采用所述守护进程读取第一系统文件;

当主进程读取到第二系统文件时,唤起所述守护进程;

当守护进程读取到第一系统文件时,唤起所述主进程。

相应的,本发明实施例还提供一种应用进程的监控装置,包括:

调用单元,用于调用待监控应用的主进程和守护进程;

创建单元,用于通过所述主进程创建第一系统文件和第二系统文件;

设置单元,用于由所述主进程对所述第一系统文件的读取权限进行设置,使得所述第一系统文件在主进程中止之后,才可被守护进程读取,以及由所述守护进程对所述第二系统文件的读取权限进行设置,使得所述第二系统文件在守护进程中止之后,才可被主进程读取;

读取单元,用于通过所述主进程读取第二系统文件,以及采用所述守护进程读取第一系统文件;

唤起单元,用于当主进程读取到第二系统文件时,唤起所述守护进程;当守护进程读取到第一系统文件时,唤起所述主进程。

本发明实施例可以调用待监控应用的主进程和守护进程,通过该主进程创建第一系统文件和第二系统文件,并由主进程对第一系统文件的读取权限进行设置,使得第一系统文件在主进程中止之后,才可被守护进程读取,以及由守护进程对第二系统文件的读取权限进行设置,使得第二系统文件在守护进程中止之后,才可被主进程读取,然后,采用主进程读取第二系统文件,以及采用守护进程读取第一系统文件,当主进程读取到第二系统文件时,唤起所述守护进程,当守护进程读取到第一系统文件时,唤起所述主进程;可见,该方案可以通过文件这一媒介,使得两个进程彼此进行死锁请求,从而实现进程终止的实时监测和唤起,由于这种进程之间的死锁请求相对于高频率地发送意图请求而言,不需要消耗额外的流程,而且,反应速度更快,且对系统没有特别的要求,因此,该方案相对于现有技术而言,可以大大节省耗电量,以及改善其适用性。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1a是本发明实施例提供的应用进程的监控方法的场景示意图;

图1b是本发明实施例提供的应用进程的监控方法的流程图;

图2a是本发明实施例提供的应用进程的监控方法的另一流程图;

图2b是本发明实施例提供的应用进程的监控方法中主进程同步的流程图;

图2c是本发明实施例提供的应用进程的监控方法中守护进程同步的流程图;

图3a是本发明实施例提供的应用进程的监控装置的结构示意图;

图3b是本发明实施例提供的应用进程的监控装置的另一结构示意图;

图4是本发明实施例提供的终端的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明实施例提供一种应用进程的监控方法和装置。

其中,该应用进程的监控装置可以集成在终端,比如手机、平板电脑、笔记本电脑或个人计算机(pc,personalcomputer)等设备中。

例如,以该应用进程的监控装置集成在终端中为例,参见图1a,终端可以调用待监控应用的主进程和守护进程,并对这些进程进行初始化,比如,可以通过该主进程创建第一系统文件和第二系统文件等,然后,通过文件锁方式对这两进程进行同步,以实现对这两个进程的死锁监控,并在确定进程终止(即进程死亡)时,对终止的进程进行唤起操作,譬如,具体可以分别对该第一系统文件和第二系统文件的读取权限进行设置,使得该第一系统文件在主进程中止之后,才可被守护进程读取,以及使得该第二系统文件在守护进程中止之后,才可被主进程读取,然后,采用该主进程读取第二系统文件,以及采用该守护进程读取第一系统文件,当主进程读取到第二系统文件时,则表明守护进程已经终止,于是唤起该守护进程,同理,当守护进程读取到第一系统文件时,则表明主进程已经终止,所以,执行唤起主进程的操作,等等。

以下分别进行详细说明。需说明的是,以下实施例的序号不作为对实施例优选顺序的限定。

实施例一、

本发明实施例将将应用进程的监控装置的角度进行描述,该应用进程的监控装置具体可以集成在终端中,该终端可以包括手机、平板电脑、笔记本电脑或pc等设备。

一种应用进程的监控方法,包括:调用待监控应用的主进程和守护进程;通过该主进程创建第一系统文件和第二系统文件;分别对该第一系统文件和第二系统文件的读取权限进行设置,使得该第一系统文件在主进程中止之后,才可被守护进程读取,以及使得该第二系统文件在守护进程中止之后,才可被主进程读取;通过该主进程读取第二系统文件,以及通过该守护进程读取第一系统文件;当主进程读取到第二系统文件时,唤起该守护进程;当守护进程读取到第一系统文件时,唤起该主进程。

如图1b所示,该应用进程的监控方法的流程具体可以如下:

101、调用待监控应用的主进程和守护进程(daemon)。

其中,待监控应用的主进程指的是待监控应用中的父进程,而守护进程是一种运行在后台的特殊进程,它可以独立于控制终端,并且周期性的执行某种任务或等待处理某些发生的事件,在本发明实施例中,守护进程与主进程可以相互进程监控。

102、通过该主进程创建第一系统文件和第二系统文件。

其中,第一系统文件和第二系统文件的内容和格式可以根据实际应用的需求而定。

此外,为了避免主进程和守护进程处于不同的阶段,无法完成两进程间的状态同步,可以先清理上一次唤起进程时残留的守护进程,即,在通过该主进程创建第一系统文件和第二系统文件之前,应用进程的监控方法还可以包括:

清理守护进程。

比如,具体可以终止该调用的守护进程,并由主进程重新唤起守护进程,等等。

103、分别对该第一系统文件和第二系统文件的读取权限进行设置,使得该第一系统文件在主进程中止之后,才可被守护进程读取,以及使得该第二系统文件在守护进程中止之后,才可被主进程读取。

例如,可以由主进程对第一系统文件的读取权限进行设置,使得第一系统文件在主进程中止之后,才可被守护进程读取,以及由守护进程对第二系统文件的读取权限进行设置,使得该第二系统文件在守护进程中止之后,才可被主进程读取,比如,具体可以如下:

通过主进程对该第一系统文件建立排他锁;以及,通过守护进程对该第二系统文件建立排他锁。

由于主进程对第一系统文件加了排他锁,所以,若守护进程尝试获取第一系统文件的读权限的时候,会因为当前文件已被锁定而无法读取,只能等待锁定文件的进程(即主进程)放弃对文件的排他锁。同理,由于守护进程对第二系统文件加了排他锁,所以,若主进程尝试获取第二系统文件的读权限的时候,也会因为当前文件已被锁定而无法读取,只能等待锁定文件的进程,即守护进程放弃对文件的排他锁才可。也就是说,在程序不主动解开排他锁之前,只有当一方进程终止的时候,系统将自动释放其所有的加锁资源。故,当一方进程获取到目标文件的读权限后,即认为另一方进程已终止,后续将进行详细说明,详见步骤104至106,如下:

104、通过该主进程读取第二系统文件,以及通过该守护进程读取第一系统文件。

其中,读取的方式可以根据实际应用的需求进行设置。比如,可以采用“阻塞读取”的方式来进行读取,即步骤“通过该主进程读取第二系统文件,以及通过该守护进程读取第一系统文件”具体可以如下:

通过该主进程阻塞读取第二系统文件,以及通过该守护进程阻塞读取第一系统文件。

其中,阻塞读取指的是在当前进程需要读取目标文件时,若该目标文件正在被其他读取任务占用,则将该当前进程中相应的读取任务挂起,直至其他读取任务使用完毕后,才唤醒该读取任务,以对该目标文件进行读取。

另外,需说明的是,这里的“读取”指的是尝试获取读权限,即主进程尝试获取第二系统文件的读权限,以及守护进程尝试获取第一系统文件的读权限。

可选的,为了避免两进程在同步的过程中,误判对方进程的状态,在对方未建立完毕时误判对方进程终止,并提前进入唤起(即拉活)阶段,可以在同步的过程中,通过主进程创建第三系统文件,以及通过守护进程创建第四系统文件,并在读取对方进程的第一系统文件或第二系统文件之前,尝试对对方进程的第三系统文件或第四系统文件进行删除(排除误判对方进程状态的可能性),在删除成功时,才进行读取。即,在步骤“通过该主进程读取第二系统文件,以及通过该守护进程读取第一系统文件”之前,该应用进程的监控方法还可以包括:

(1)通过主进程创建第三系统文件,以及通过守护进程创建第四系统文件。

(2)通过该主进程对该第四系统文件进行删除,若删除成功,则执行采用该主进程读取第二系统文件的步骤;若删除失败,则在预设时间后,返回执行通过该主进程对该第四系统文件进行删除的步骤。

(3)通过该守护进程对该第三系统文件进行删除,若删除成功,则执行通过该守护进程读取第一系统文件的步骤;若删除失败,则在预设时间后,返回执行通过该守护进程对该第三系统文件进行删除的步骤。

其中,该预设时间可以根据实际应用的需求而定,步骤(2)中的预设时间与步骤(3)的预设时间可以是相同的,也可以是不同的。此外,还需说明的是,步骤(2)和(3)的执行可以不分先后。

105、当主进程读取到第二系统文件时,唤起该守护进程。

其中,唤起方式可以有多种,比如,可以采用闹铃(alarmanager)、服务(service)、广播(broadcast)、或活动(activity)等方式。

可选的,为了提高唤起效率,除了可以采用上述任意一种唤起方式之外,还可以采用混合唤起的方式,即对上述多种唤起方式进行任意组合,具体可以如下:

依次采用预设多种唤起模式对该守护进程进行唤起。

其中,唤起模式、唤起次数、以及这多种唤起模式的执行顺序可以根据实际应用的需求进行设置。比如,该多种唤起模式可以包括alarmanager、service、broadcast、以及activity等方式的任意组合,等等。

需说明的是,各类唤起方式需要预先做了初始化,生成必要的对象资源,以确保发现进程终止后能够快速响应,在此不再赘述。

可选的,为了确保唤起的有效性,在对该守护进程进行唤起之后,还可以在等待一段时间后,对被唤起的守护进程的存活情况进行检测,以确保其可以成功唤起,即在步骤“对该守护进程进行唤起”之后,该应用进程的监控方法还可以包括:

在设定时间范围内,定时对被唤起的守护进程的存活情况进行检测,若检测结果指示该被唤起的守护进程未存活,则返回执行对该守护进程进行唤起的步骤,比如返回执行依次采用预设多种唤起模式对该守护进程进行唤起的步骤。

否则,若检测结果指示该被唤起的守护进程已经存活,则流程可以结束。

106、当守护进程读取到第一系统文件时,唤起该主进程。

其中,唤起方式可以有多种,比如,可以采用alarmanager、service、broadcast、或activity等方式。

与步骤105同理,为了提高唤起效率,除了可以采用alarmanager、service、broadcast、或activity等任意一种唤起方式之外,还可以采用混合唤起的方式,即对这多种唤起方式进行任意组合,具体可以如下

依次采用预设多种唤起模式对该主进程进行唤起。

其中,唤起模式、唤起次数、以及这多种唤起模式的执行顺序可以根据实际应用的需求进行设置。

需说明的是,各类唤起方式需要预先做了初始化,生成必要的对象资源,以确保发现进程终止后能够快速响应,在此不再赘述。

还需说明的是,步骤105和106的执行可以不分先后。

可选的,为了确保唤起的有效性,在对该主进程进行唤起之后,还可以在等待一段时间后,对被唤起的主进程的存活情况进行检测,以确保其可以成功唤起,即在步骤“对该主进程进行唤起”之后,该应用进程的监控方法还可以包括:

定时对被唤起的主进程的存活情况进行检测,若检测结果指示该被唤起的主进程未存活,则返回执行对该主进程进行唤起的步骤,比如返回执行依次采用预设多种唤起模式对该主进程进行唤起的步骤。

反之,若检测结果指示该被唤起的主进程已经存活,则流程可以结束。

需说明的是,为了避免无节制地唤起进程,导致资源消耗过多,可以对该唤起操作设置一定的时间范围,即步骤“定时对被唤起的主进程的存活情况进行检测”具体可以为:

在设定时间范围内,定时对被唤起的主进程的存活情况进行检测。

其中,该设定的时间范围可以根据实际应用的需求进行设置,在此不再赘述。

由上可知,本实施例可以调用待监控应用的主进程和守护进程,通过该主进程创建第一系统文件和第二系统文件,并分别对所述第一系统文件和第二系统文件的读取权限进行设置,使得第一系统文件在主进程中止之后,才可被守护进程读取,以及使得第二系统文件在守护进程中止之后,才可被主进程读取,然后,采用主进程读取第二系统文件,以及采用守护进程读取第一系统文件,当主进程读取到第二系统文件时,唤起所述守护进程,当守护进程读取到第一系统文件时,唤起所述主进程;可见,该方案可以通过文件这一媒介,使得两个进程彼此进行死锁请求,从而实现进程终止的实时监测和唤起,由于这种进程之间的死锁请求相对于高频率地发送意图请求而言,不需要消耗额外的流程,而且,反应速度更快,且对系统没有特别的要求,因此,该方案相对于现有技术而言,可以大大节省耗电量,以及改善其适用性。

实施例二、

根据实施例一所描述的方法,以下将以linux系统,且该应用进程的监控装置具体集成在终端中为例作进一步进行说明。

此外,为了描述方便,在本发明实施例中,将以第一系统文件具体为linux文件a1,第二系统文件具体为linux文件b1,第三系统文件具体为linux文件a2,将第四系统文件具体为linux文件b2为例进行说明。

如图2a所示,一种应用进程的监控方法,具体流程可以如下:

201、终端调用待监控应用的主进程和守护进程。

202、终端分别对主进程和守护进程进行初始化,比如,可以通过该主进程创建linux文件a1和linux文件b1,等等,然后执行步骤203。

其中,linux文件a1和linux文件b1的内容和格式可以根据实际应用的需求而定。

可选的,为了避免主进程和守护进程处于不同的阶段,无法完成两进程间的状态同步,在创建第一系统文件和第二系统文件之前,可以先清理上一次唤起进程时残留的守护进程,具体可以终止该调用的守护进程,并由主进程重新唤起守护进程,等等。

此外,在主进程创建linux文件a1和linux文件b1之前,主进程还可以执行native(一种本地应用)代码。

203、终端通过创建文件锁方式,对初始化后的主进程和守护进程进行同步,以对该主进程和守护进程进行死锁监控。

以下将分别从主进程和守护进程的角度,分别对其同步流程进行说明,例如,具体可以如下:

(一)主进程。

参见图2b,主进程的同步流程可以如下:

a2031、主进程对该linux文件a1建立排他锁。

这样,当守护进程尝试获取linux文件a1的读权限的时候,会因为linux文件a1已被锁定而无法获取,只能等待主进程放弃对linux文件a1的排他锁,即等待主进程终止(即死亡)时,才可以获取到。

a2032、主进程创建linux文件a2。

创建linux文件a2,主要是为了避免守护进程在和该主进程同步的过程中,误判主进程的状态的情况的发生,比如,在主进程未建立完毕时,误判主进程终止,并提前进入唤起(即拉活)阶段,等等。通过对该linux文件a2执行删除操作,守护进程可以明确地获知该主进程当前的状态,详见步骤b2033。

a2033、主进程对该linux文件b2进行删除,若删除成功,则执行步骤a2035,若删除失败,则执行步骤a2034。

a2034、在预设时间后,返回执行步骤a2033,即等待预设时间后,返回执行步骤a2033。

其中,该预设时间可以根据实际应用的需求而定。

a2035、主进程读取linux文件b1,即主进程尝试获取linux文件b1的读权限。

a2036、当主进程读取到linux文件b1时,确定守护进程已经终止。

这是因为,当主进程读取到linux文件b1时,则表明主进程已经获取到linux文件b1的读权限,而由步骤b2031可知,守护进程已经对linux文件b1加了排他锁,所以,在守护进程的存活期间,其他进程是无法取得linux文件b1的读权限的,只有当守护进程终止(即死亡)时,才可能获取到linux文件b1的读权限,所以,如果此时,主进程可以读取到linux文件b1,则可以确定守护进程已经终止了。

否则,当主进程读取不到linux文件b1时,则可以继续执行步骤a2035。

(二)守护进程。

参见图2c,守护进程的同步流程可以如下:

b2031、守护进程对该linux文件b1建立排他锁。

这样,当主进程尝试获取linux文件b1的读权限的时候,会因为linux文件b1已被锁定而无法获取,只能等待守护进程放弃对linux文件b1的排他锁,即等待守护进程终止(即死亡)时,才可以获取到。

b2032、守护进程创建linux文件b2。

创建linux文件b2,主要是为了避免主进程在和该守护进程同步的过程中,误判守护进程的状态的情况的发生,比如,在守护进程未建立完毕时,误判守护进程终止,并提前进入唤起(即拉活)阶段,等等。通过对该linux文件b2执行删除操作,守护进程可以明确地获知该守护进程当前的状态,详见步骤a2033。

b2033、守护进程对该linux文件a2进行删除,若删除成功,则执行步骤b2035,若删除失败,则执行步骤b2034。

b2034、在预设时间后,返回执行步骤b2033,即等待预设时间后,返回执行步骤b2033。

其中,该预设时间可以根据实际应用的需求而定。

b2035、守护进程读取linux文件a1,即守护进程尝试获取linux文件a1的读权限。

b2036、当守护进程读取到linux文件a1时,确定主进程已经终止了。

这是因为,当守护进程读取到linux文件a1时,则表明守护进程已经获取到linux文件a1的读权限,而由步骤a2031可知,主进程已经对linux文件a1加了排他锁,所以,在主进程的存活期间,其他进程是无法取得linux文件a1的读权限的,只有当主进程终止(即死亡)时,才可能获取到linux文件a1的读权限,所以,如果此时,守护进程可以读取到linux文件a1,则可以确定主进程已经终止了。

否则,当守护进程读取不到linux文件a1时,则可以继续执行步骤b2035。

204、当终端监控到主进程或守护进程终止时,依次采用预设多种唤起模式对该终止的进程进行唤起。例如,具体可以如下:

当确定守护进程终止时,终端可以依次采用预设多种唤起模式对该守护进程进行唤起。

当确定主进程终止时时,终端可以依次采用预设多种唤起模式对该主进程进行唤起。

其中,唤起模式可以包括alarmanager、service、broadcast、以及activity等方式的任意组合。唤起模式、唤起次数、以及这多种唤起模式的执行顺序可以根据实际应用的需求进行设置,比如,以依次采用alarmanager、service、broadcast、以及activity为例,则具体可以如下:

终端采用alarmanager对终止的进程,比如主进程或守护进程进行唤起,若唤起成功,则执行步骤205,若唤起失败,则采用service对终止的进程进行唤起,若唤起成功,则执行步骤205,若唤起失败,则采用broadcast对终止的进程进行唤起,若唤起成功,则执行步骤205,若唤起失败,则采用activity对终止的进程进行唤起,若唤起成功,则执行步骤205,若唤起失败,则返回执行采用alarmanager对终止的进程进行唤起的步骤。

需说明的是,各类唤起方式需要预先做了初始化,生成必要的对象资源,以确保发现进程终止后能够快速响应,在此不再赘述。

可选的,为了确保唤起的有效性,在对该主进程进行唤起之后,还可以在等待一段时间后,对被唤起的主进程的存活情况进行检测,以确保其可以成功唤起,即该应用进程的监控方法还可以包括步骤205,如下:

205、在设定时间范围内,终端定时对被唤起的进程的存活情况进行检测,若检测结果指示该被唤起的进程未存活,则返回执行步骤204,否则,若检测结果指示该被唤起的进程已经存活,则流程可以结束。

例如,可以设置在一定的时间范围内,每y毫秒对被唤起的进程的存活情况进行检测一次,等等,其中,y为正数,时间范围、以及y的具体取值可以根据实际应用的需求而定。

由上可知,本实施例可以调用待监控应用的主进程和守护进程,通过该主进程创建linux文件a1和linux文件b1,并分别对所述linux文件a1和linux文件b1的读取权限进行设置,使得linux文件a1在主进程中止之后,才可被守护进程读取,以及使得linux文件b1在守护进程中止之后,才可被主进程读取,然后,采用主进程读取linux文件b1,以及采用守护进程读取linux文件a1,当主进程读取到linux文件b1时,唤起所述守护进程,当守护进程读取到linux文件a1时,唤起所述主进程;可见,该方案可以通过文件这一媒介,使得两个进程彼此进行死锁请求,从而实现进程终止的实时监测和唤起,由于这种进程之间的死锁请求相对于高频率地发送意图请求而言,不需要消耗额外的流程,而且,反应速度更快,且对系统没有特别的要求,因此,该方案相对于现有技术而言,可以大大节省耗电量,以及改善其适用性。

此外,由于该方案在唤起终止进程时,采用了混合唤起的方式,因此,还可以大大提高唤起效率、以及提高唤起的成效。

实施例三、

为了更好地实施以上方法,本发明实施例还提供一种应用进程的监控装置,如图3a所示,该应用进程的监控装置可以包括调用单元301、创建单元302、设置单元303、读取单元304和唤起单元305,如下:

(1)调用单元301;

调用单元301,用于调用待监控应用的主进程和守护进程。

(2)创建单元302;

创建单元302,用于通过该主进程创建第一系统文件和第二系统文件。

其中,第一系统文件和第二系统文件的内容和格式可以根据实际应用的需求而定。

此外,为了避免主进程和守护进程处于不同的阶段,无法完成两进程间的状态同步,可以先清理上一次唤起进程时残留的守护进程,即:

创建单元302,还可以用于清理守护进程,比如,具体可以终止该调用的守护进程,并由主进程重新唤起守护进程,等等。

(3)设置单元303;

设置单元303,用于分别对该第一系统文件和第二系统文件的读取权限进行设置,使得该第一系统文件在主进程中止之后,才可被守护进程读取,以及使得该第二系统文件在守护进程中止之后,才可被主进程读取。

例如,设置单元303,具体可以用于由主进程对第一系统文件的读取权限进行设置,使得第一系统文件在主进程中止之后,才可被守护进程读取,以及由守护进程对第二系统文件的读取权限进行设置,使得第二系统文件在守护进程中止之后,才可被主进程读取,比如,具体可以如下:

通过主进程对该第一系统文件建立排他锁,以及通过守护进程对该第二系统文件建立排他锁。

(4)读取单元304;

读取单元304,用于通过该主进程读取第二系统文件,以及通过该守护进程读取第一系统文件。

其中,读取的方式可以根据实际应用的需求进行设置。比如,可以采用“阻塞读取”的方式来进行读取,即:

读取单元304,具体可以用于通过该主进程阻塞读取第二系统文件,以及通过该守护进程阻塞读取第一系统文件。

(5)唤起单元305;

唤起单元305,用于当主进程读取到第二系统文件时,唤起该守护进程;当守护进程读取到第一系统文件时,唤起该主进程。

其中,唤起方式可以有多种,比如,可以采用alarmanager、service、broadcast、或activity等方式。

可选的,为了提高唤起效率,除了可以采用上述任意一种唤起方式之外,还可以采用混合唤起的方式,即对上述多种唤起方式进行任意组合,具体可以如下:

该唤起单元305,具体可以用于依次采用预设多种唤起模式对该守护进程进行唤起。

以及,该唤起单元305,具体可以用于依次采用预设多种唤起模式对该主进程进行唤起。

其中,唤起模式、唤起次数、以及这多种唤起模式的执行顺序可以根据实际应用的需求进行设置。

需说明的是,各类唤起方式需要预先做了初始化,生成必要的对象资源,以确保发现进程终止后能够快速响应,在此不再赘述。

可选的,为了确保唤起的有效性,在对该守护进程进行唤起之后,还可以在等待一段时间后,对被唤起的守护进程的存活情况进行检测,以确保其可以成功唤起,即如图3b所示,该应用进程的监控装置还可以包括第一检测单元306和第二检测单元307,如下:

该第一检测单元306,可以用于在设定时间范围内,定时对被唤起的守护进程的存活情况进行检测;若检测结果指示该被唤起的守护进程未存活,则触发唤起单元执行依次采用预设多种唤起模式对该守护进程进行唤起的操作。

该第二检测单元307,可以用于在设定时间范围内,定时对被唤起的主进程的存活情况进行检测;若检测结果指示该被唤起的主进程未存活,则触发唤起单元执行依次采用预设多种唤起模式对该主进程进行唤起的操作。

可选的,为了避免两进程在同步的过程中,误判对方进程的状态,在对方未建立完毕时误判对方进程终止,并提前进入唤起(即拉活)阶段,可以在同步的过程中,通过主进程创建第三系统文件,以及通过守护进程创建第四系统文件,并在读取对方进程的第一系统文件或第二系统文件之前,尝试对对方进程的第三系统文件或第四系统文件进行删除(排除误判对方进程状态的可能性),在删除成功时,才进行读取。即如图3b所示,该应用进程的监控装置还可以包括删除单元,如下:

该创建单元302,还可以用于通过主进程创建第三系统文件,以及通过守护进程创建第四系统文件。

该删除单元308,可以用于通过该主进程对该第四系统文件进行删除,若删除成功,则触发读取单元304执行通过该主进程读取第二系统文件的操作;若删除失败,则在预设时间后,返回执行通过该主进程对该第四系统文件进行删除的操作;以及,通过该守护进程对该第三系统文件进行删除,若删除成功,则触发读取单元304执行通过该守护进程读取第一系统文件的操作;若删除失败,则在预设时间后,返回执行通过该守护进程对该第三系统文件进行删除的操作。

其中,该预设时间可以根据实际应用的需求而定,在此不再赘述。

具体实施时,以上各个单元可以分别作为独立的实体来实现,也可以进行任意组合,作为同一或若干个实体来实现,以上各个单元的具体实施可参见前面的方法实施例,在此不再赘述。

该应用进程的监控装置具体可以集成在终端中,该终端可以包括手机、平板电脑、笔记本电脑或pc等设备。

由上可知,本实施例的应用进程的监控装置可以通过调用单元301调用待监控应用的主进程和守护进程,以及由创建单元302通过该主进程创建第一系统文件和第二系统文件,并由读取单元303分别对所述第一系统文件和第二系统文件的读取权限进行设置,使得第一系统文件在主进程中止之后,才可被守护进程读取,以及使得第二系统文件在守护进程中止之后,才可被主进程读取,然后,由读取单元304采用主进程读取第二系统文件,以及采用守护进程读取第一系统文件,当主进程读取到第二系统文件时,由唤起单元305唤起所述守护进程,当守护进程读取到第一系统文件时,由唤起单元305唤起所述主进程;可见,该方案可以通过文件这一媒介,使得两个进程彼此进行死锁请求,从而实现进程终止的实时监测和唤起,由于这种进程之间的死锁请求相对于高频率地发送意图请求而言,不需要消耗额外的流程,而且,反应速度更快,且对系统没有特别的要求,因此,该方案相对于现有技术而言,可以大大节省耗电量,以及改善其适用性。

实施例四、

相应的,本发明实施例还提供一种终端,如图4所示,该终端可以包括射频(rf,radiofrequency)电路401、包括有一个或一个以上计算机可读存储介质的存储器402、输入单元403、显示单元404、传感器405、音频电路406、无线保真(wifi,wirelessfidelity)模块407、包括有一个或者一个以上处理核心的处理器408、以及电源409等部件。本领域技术人员可以理解,图4中示出的终端结构并不构成对终端的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。其中:

rf电路401可用于收发信息或通话过程中,信号的接收和发送,特别地,将基站的下行信息接收后,交由一个或者一个以上处理器408处理;另外,将涉及上行的数据发送给基站。通常,rf电路401包括但不限于天线、至少一个放大器、调谐器、一个或多个振荡器、用户身份模块(sim,subscriberidentitymodule)卡、收发信机、耦合器、低噪声放大器(lna,lownoiseamplifier)、双工器等。此外,rf电路401还可以通过无线通信与网络和其他设备通信。所述无线通信可以使用任一通信标准或协议,包括但不限于全球移动通讯系统(gsm,globalsystemofmobilecommunication)、通用分组无线服务(gprs,generalpacketradioservice)、码分多址(cdma,codedivisionmultipleaccess)、宽带码分多址(wcdma,widebandcodedivisionmultipleaccess)、长期演进(lte,longtermevolution)、电子邮件、短消息服务(sms,shortmessagingservice)等。

存储器402可用于存储软件程序以及模块,处理器408通过运行存储在存储器402的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器402可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据终端的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器402可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器402还可以包括存储器控制器,以提供处理器408和输入单元403对存储器402的访问。

输入单元403可用于接收输入的数字或字符信息,以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。具体地,在一个具体的实施例中,输入单元403可包括触敏表面以及其他输入设备。触敏表面,也称为触摸显示屏或者触控板,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触敏表面上或在触敏表面附近的操作),并根据预先设定的程式驱动相应的连接装置。可选的,触敏表面可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器408,并能接收处理器408发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触敏表面。除了触敏表面,输入单元403还可以包括其他输入设备。具体地,其他输入设备可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。

显示单元404可用于显示由用户输入的信息或提供给用户的信息以及终端的各种图形用户接口,这些图形用户接口可以由图形、文本、图标、视频和其任意组合来构成。显示单元404可包括显示面板,可选的,可以采用液晶显示器(lcd,liquidcrystaldisplay)、有机发光二极管(oled,organiclight-emittingdiode)等形式来配置显示面板。进一步的,触敏表面可覆盖显示面板,当触敏表面检测到在其上或附近的触摸操作后,传送给处理器408以确定触摸事件的类型,随后处理器408根据触摸事件的类型在显示面板上提供相应的视觉输出。虽然在图4中,触敏表面与显示面板是作为两个独立的部件来实现输入和输入功能,但是在某些实施例中,可以将触敏表面与显示面板集成而实现输入和输出功能。

终端还可包括至少一种传感器405,比如光传感器、运动传感器以及其他传感器。具体地,光传感器可包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示面板的亮度,接近传感器可在终端移动到耳边时,关闭显示面板和/或背光。作为运动传感器的一种,重力加速度传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别手机姿态的应用(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;至于终端还可配置的陀螺仪、气压计、湿度计、温度计、红外线传感器等其他传感器,在此不再赘述。

音频电路406、扬声器,传声器可提供用户与终端之间的音频接口。音频电路406可将接收到的音频数据转换后的电信号,传输到扬声器,由扬声器转换为声音信号输出;另一方面,传声器将收集的声音信号转换为电信号,由音频电路406接收后转换为音频数据,再将音频数据输出处理器408处理后,经rf电路401以发送给比如另一终端,或者将音频数据输出至存储器402以便进一步处理。音频电路406还可能包括耳塞插孔,以提供外设耳机与终端的通信。

wifi属于短距离无线传输技术,终端通过wifi模块407可以帮助用户收发电子邮件、浏览网页和访问流式媒体等,它为用户提供了无线的宽带互联网访问。虽然图4示出了wifi模块407,但是可以理解的是,其并不属于终端的必须构成,完全可以根据需要在不改变发明的本质的范围内而省略。

处理器408是终端的控制中心,利用各种接口和线路连接整个手机的各个部分,通过运行或执行存储在存储器402内的软件程序和/或模块,以及调用存储在存储器402内的数据,执行终端的各种功能和处理数据,从而对手机进行整体监控。可选的,处理器408可包括一个或多个处理核心;优选的,处理器408可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器408中。

终端还包括给各个部件供电的电源409(比如电池),优选的,电源可以通过电源管理系统与处理器408逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。电源409还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。

尽管未示出,终端还可以包括摄像头、蓝牙模块等,在此不再赘述。具体在本实施例中,终端中的处理器408会按照如下的指令,将一个或一个以上的应用程序的进程对应的可执行文件加载到存储器402中,并由处理器408来运行存储在存储器402中的应用程序,从而实现各种功能:

调用待监控应用的主进程和守护进程;通过该主进程创建第一系统文件和第二系统文件;由主进程对第一系统文件的读取权限进行设置,使得第一系统文件在主进程中止之后,才可被守护进程读取,以及由守护进程对第二系统文件的读取权限进行设置,使得该第二系统文件在守护进程中止之后,才可被主进程读取;通过该主进程读取第二系统文件,以及通过该守护进程读取第一系统文件;当主进程读取到第二系统文件时,唤起该守护进程;当守护进程读取到第一系统文件时,唤起该主进程。

例如,具体可以通过主进程对该第一系统文件建立排他锁;以及,通过守护进程对该第二系统文件建立排他锁,来对该第一系统文件和第二系统文件的读取权限进行设置,使得该第一系统文件在主进程中止之后,才可被守护进程读取,以及使得该第二系统文件在守护进程中止之后,才可被主进程读取。

可选的,为了避免两进程在同步的过程中,误判对方进程的状态,还可以在同步的过程中,通过主进程创建第三系统文件,以及通过守护进程创建第四系统文件,并在读取对方进程的第一系统文件或第二系统文件之前,尝试对对方进程的第三系统文件或第四系统文件进行删除(排除误判对方进程状态的可能性),在删除成功时,才进行读取。即该存储在存储器402中的应用程序,还可以实现以下功能:

通过主进程创建第三系统文件,以及通过守护进程创建第四系统文件,通过该主进程对该第四系统文件进行删除,若删除成功,则执行通过该主进程读取第二系统文件的操作;若删除失败,则在预设时间后,返回执行通过该主进程对该第四系统文件进行删除的操作;通过该守护进程对该第三系统文件进行删除,若删除成功,则执行通过该守护进程读取第一系统文件的操作;若删除失败,则在预设时间后,返回执行通过该守护进程对该第三系统文件进行删除的操作。

可选的,为了提高唤起效率,除了可以采用单一的唤起方式对终止的进程进行唤起之外,还可以采用混合的方式,对终止的进程进行唤起,即该存储在存储器402中的应用程序,还可以实现以下功能:

依次采用预设多种唤起模式对该守护进程进行唤起,以及,依次采用预设多种唤起模式对该主进程进行唤起。

其中,唤起模式可以包括alarmanager、service、broadcast、以及activity等方式的任意组合。唤起模式、唤起次数、以及这多种唤起模式的执行顺序可以根据实际应用的需求进行设置,在此不再赘述。

需说明的是,各类唤起方式需要预先做了初始化,生成必要的对象资源,以确保发现进程终止后能够快速响应,在此不再赘述。

可选的,为了确保唤起的有效性,在对该主进程进行唤起之后,还可以在等待一段时间后,对被唤起的主进程的存活情况进行检测,以确保其可以成功唤起,即该存储在存储器402中的应用程序,还可以实现以下功能:

定时对被唤起进程(比如主进程或守护进程)的存活情况进行检测,若检测结果指示该被唤起的进程未存活,则返回执行对该进程进行唤起的操作,比如返回执行依次采用预设多种唤起模式对该进程进行唤起的操作。

以上各个操作的具体实施可参见前面的实施例,在此不再赘述。

由上可知,本实施例的终端可以调用待监控应用的主进程和守护进程,通过该主进程创建第一系统文件和第二系统文件,并由主进程对第一系统文件的读取权限进行设置,使得第一系统文件在主进程中止之后,才可被守护进程读取,以及由守护进程对第二系统文件的读取权限进行设置,使得第二系统文件在守护进程中止之后,才可被主进程读取,然后,采用主进程读取第二系统文件,以及采用守护进程读取第一系统文件,当主进程读取到第二系统文件时,唤起所述守护进程,当守护进程读取到第一系统文件时,唤起所述主进程;可见,该方案可以通过文件这一媒介,使得两个进程彼此进行死锁请求,从而实现进程终止的实时监测和唤起,由于这种进程之间的死锁请求相对于高频率地发送意图请求而言,不需要消耗额外的流程,而且,反应速度更快,且对系统没有特别的要求,因此,该方案相对于现有技术而言,可以大大节省耗电量,以及改善其适用性。

本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:只读存储器(rom,readonlymemory)、随机存取记忆体(ram,randomaccessmemory)、磁盘或光盘等。

以上对本发明实施例所提供的一种应用进程的监控方法和装置,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1