应用运行控制方法及装置与流程

文档序号:11949775阅读:300来源:国知局
应用运行控制方法及装置与流程

本发明涉及应用管理技术领域,尤其涉及一种应用运行控制方法及装置。



背景技术:

随着软硬件的发展,诸如智能手机、平板电脑、智能手表或电子阅读器等移动智能终端也得到了相当广泛的普及和发展。因此,围绕移动智能终端的各种应用也层出不穷。

而应用的运行离不开对应的进程,在移动智能终端使用过程中,处于前台的进程始终只有一个,而处于后台的活跃进程及非活跃进程则会随着移动终端的使用而不断增多,这些不断增多的进程会将系统资源占据消耗殆尽,最终影响系统运行的流畅性。

因此,在传统的应用管理模式中,当一个应用被切换到后台运行时,很有可能会由于系统回收空闲进程等原因而被系统停止,从而导致用户再次启动该应用时将耗费较长的时间、无法及时收到应用推送消息或者无法执行需要应用在后台长时间运行的功能等等问题。

为此,一些应用提供商采用一些措施来进行弥补,主要的解决方案有两大类:其一,由两个或更多个应用之间进行互相重启(唤醒),这种方式需要用户在移动智能终端上安装两个或两个以上的、且包含相互重启(唤醒)逻辑的应用,容易导致移动智能终端上安装和运行过多对于用户来说没有太多实际使用价值的应用,占用更多的系统资源而影响移动智能终端的正常运行速度;其二,申请将应用加入不会被停止的应用白名单,白名单的方式可以很好地避免应用被系统停止的问题,但是,由于应用白名单大多数是由移动智能终端厂商在产品出厂前就已经预先设置好,虽然用户在使用过程中也可以补充添加白名单中的应用,但是用户补充添加的方式并不能保证应用会被及时添加至白名单中,而应用提供商与移动智能终端厂商进行沟通和维护应用白名单带来的商务合作和商业运营成本都相对较高。



技术实现要素:

本发明实施例所要解决的技术问题在于,提供一种应用运行控制方法及装置,能保证应用连续正常运行。

为解决上述技术问题,本发明实施例首先提供如下技术方案:一种应用运行控制方法,包括:

响应于应用的启动创建第一进程,根据所述第一进程创建第二进程,所述第二进程与所述第一进程同步运行所述应用;

在所述第二进程中建立监测机制,使所述第二进程对所述第一进程进行监测;

若监测到所述第一进程被停止,重启所述第一进程,并恢复所述第一进程和所述第二进程同步运行所述应用且所述第二进程对所述第一进程进行监测的运行状态。

进一步地,根据所述第一进程创建第二进程具体包括:

以所述第一进程作为父进程,通过调用方式创建作为子进程的第二进程。

进一步地,所述方法还包括:

在所述第一进程中建立监测机制,使所述第一进程对所述第二进程进行监测;

若监测到所述第二进程被停止,重启所述第二进程,并恢复所述第一进程和所述第二进程同步运行所述应用且所述第一进程对所述第二进程进行监测的运行状态。

进一步地,所述第二进程对所述第一进程进行监测或所述第一进程对所述第二进程进行监测包括:

监测被监测进程是否存在被停止的信号;

在监测到所述被监测进程存在被停止的信号时,生成所述被监测进程的进程停止状态标识。

进一步地,所述被监测进程被停止的信号包括所述被监测进程的注册文件在系统的进程文件中被移除,或在系统中所述被监测进程的进程标识符不存在。

进一步地,所述重启所述第一进程或所述重启所述第二进程的具体操作包括:

根据所述被监测进程的进程停止状态标识发送重启所述被监测进程服务的指令;

以实施监测的进程作为父进程,通过调用方式创建作为子进程的所述被监测进程。

另一方面,本发明实施例还提供一种应用运行控制装置,包括:

进程创建模块,用于响应于应用的启动创建第一进程,根据所述第一进程创建第二进程,所述第二进程与所述第一进程同步运行所述应用;

第一监测模块,用于在所述第二进程中建立监测机制,使所述第二进程对所述第一进程进行监测;

第一重启模块,用于在监测到所述第一进程被停止时,重启所述第一进程,并恢复所述第一进程和所述第二进程同步运行所述应用且所述第二进程对所述第一进程进行监测的运行状态。

进一步地,所述进程创建模块还包括:第一调用单元,用于以所述第一进程作为父进程,通过调用方式创建作为子进程的第二进程。

进一步地,所述装置还包括:

第二监测模块,用于在所述第一进程中建立监测机制,使所述第一进程对所述第二进程进行监测;

第二重启模块,用于在监测到所述第二进程被停止时,重启所述第二进程,并恢复所述第一进程和所述第二进程同步运行所述应用且所述第一进程对所述第二进程进行监测的运行状态。

进一步地,所述第一监测模块或第二监测模块包括:

监测单元,用于监测被监测进程是否存在被停止的信号;

标识单元,用于在监测到被监测进程存在被停止的信号时,生成所述被监测进程的进程停止状态标识。

进一步地,所述监测单元中的被监测进程被停止的信号包括所述被监测进程的注册文件在系统的进程文件中被移除,或在系统中所述被监测进程的进程标识符不存在。

进一步地,所述第一重启模块或第二重启模块包括:

指令单元,用于根据所述被监测进程的进程停止状态标识发送重启所述被监测进程服务的指令;

第二调用单元,用于以实施监测的进程作为父进程,通过调用方式创建作为子进程的所述被监测进程。

采用上述技术方案后,本发明至少具有如下有益效果:本发明实施例的方法及装置在响应于应用的启动创建第一进程时,还及时地根据所述第一进程创建一个第二进程,两个进程同步运行所述应用并且由所述第二进程对所述第一进程进行监测,而可及时发现所述第一进程是否被停止,并能在所述第一进程被停止时立即重启所述第一进程,保证了应用在后台运行时不会发生中断情况,有利于用户快捷地再次启动进入该应用,还可维持该应用在后台进行消息推送或耗时长的数据处理等运行操作。本发明实施例仅需在应用中采用相关处理措施,即可实现应用不被系统停止,开发成本和实现成本都较低,而且用户无需在移动智能终端上安装多个应用,避免了安装和运行多个应用带来的占用大量系统资源的问题。

附图说明

图1是本发明实施例应用运行控制方法的原理示意图。

图2是本发明实施例应用运行控制方法的流程示意图。

图3是本发明另一个实施例应用运行控制方法的流程示意图。

图4是本发明实施例应用运行控制方法的第二进程对第一进程进行监测或第一进程对第二进程进行监测的流程步骤示意图。

图5是本发明实施例应用运行控制方法的重启所述第一进程或重启所述第二进程的操作步骤示意图。

图6是本发明实施例应用运行控制装置的构成原理框图。

图7是本发明实施例应用运行控制装置的进程创建模块的构成原理框图。

图8是本发明另一实施例应用运行控制装置的构成原理框图。

图9是本发明实施例应用运行控制装置的监测模块的构成原理框图。

图10是本发明实施例应用运行控制装置的第一重启模块或第二重启模块的构成原理框图。

具体实施方式

下面结合附图和具体实施例对本申请作进一步详细说明。需要说明的是,以下的示意性实施及说明仅用来解释本发明,并不作为对本发明的限定,而且,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互结合。

本发明实施例涉及一种应用运行控制方法及装置,可以应用于各种智能终端,在本发明实施例中,该智能终端可以是智能手机、平板电脑、智能电视、智能手表或电子阅读器等,所述智能终端运行的操作系统可以是安卓(Android)系统,也还可以是诸如Windows操作系统、塞班操作系统、IOS操作系统等操作系统。

结合图1及图2所示,在本发明的一个实施例中,提供了一种应用运行控制方法,包括:

S11,响应于应用的启动创建第一进程,根据所述第一进程创建第二进程,所述第二进程与所述第一进程同步运行所述应用;

S12,在所述第二进程中建立监测机制,使所述第二进程对所述第一进程进行监测;

S13,若监测到所述第一进程被停止时,重启所述第一进程,并恢复第一进程和第二进程同步运行所述应用且所述第二进程对所述第一进程进行监测的运行状态。

在智能终端的使用过程中,在启动一个应用时,例如:用户根据使用需求而自主启动应用,或者系统根据预设指令自启动应用(开机自启动或者在预定时间点自启动),系统均会创建一个对应的进程来执行所述应用的运行操作。而本发明实施例通过在响应于应用的启动创建第一进程时,还及时地根据所述第一进程创建一个第二进程,两个进程同步运行所述应用并且由所述第二进程对所述第一进程进行监测,从而可以及时发现第一进程是否被停止,并且能在第一进程被停止时立即重启第一进程,保证了应用在后台运行时不会发生中断情况,有利于用户快捷地再次启动进入该应用,还可维持该应用在后台进行消息推送或耗时长的数据处理等运行操作。本发明实施例仅需在应用中采用相关处理方法,即可实现应用不被系统停止,开发成本和实现成本都较低,而且用户无需在移动智能终端上安装多个应用,避免了安装和运行多个应用带来的占用大量系统资源的问题。

在本发明另一个实施例中,根据所述第一进程创建第二进程具体包括:

以所述第一进程作为父进程,通过调用方式创建作为子进程的第二进程。

由于采用fork函数方式可以很方便地实现建立一个进程(父进程)的克隆进程(子进程),因此,本发明通过以第一进程为父进程以fork函数方式通过系统调用创建所述第二进程,由于fork函数的特性,所创建的第二进程与第一进程基本相同,均用于执行相同的事件,即同步地运行同一应用,从而为应用的运行提供了一个实时的备份,在后续的运行过程中,即使第一进程被系统停止了,所述第二进程仍能维持应用的持续运行,可以很好地保证用户再次启动该应用时可以很快地进入,还能在后台实现所述应用的消息推送,以及在后台进行耗时长的数据处理等运行操作。

可选的,通常以所述第一进程在前台运行,并能根据实际情况转入后台运行,而所述第二进程则通常仅是在后台运行,而且,当一个应用需要从后台运行转入前台运行时,也通常以所述第一进程来实现。

而在本发明一个可选实施例中,如图3所示,所述方法还进一步包括:

S14,在所述第一进程中建立监测机制,使所述第一进程对所述第二进程进行监测;

S15,若监测到所述第二进程被停止,重启所述第二进程,并恢复所述第一进程和所述第二进程同步运行所述应用且所述第一进程对所述第二进程进行监测的运行状态。

由于所述第一进程或所述第二进程都在后台运行时都存在被系统停止的可能性,本实施例通过进一步在所述第一进程中也建立监测机制,使所述第一进程也对所述第二进程进行监测,从而可以在所述第一进程监测到所述第二进程被停止时,也能及时地重启所述第二进程。由于在第一进程和第二进程中均建立起对应的监测机制实现了相互的监测,每一个进程在一个关系场景中是作为实施监测的进程,而在另一个关系场景中又成为了被监测进程,当一个进程作为实施监测的进程时,在监测到被监测进程被停止时,即可通知系统立即重启被停止的被监测进程,从而更为有效地保证了所述第一进程和第二进程均能始终维持运行状态。

而在本发明的另一个实施例中,如图4所示,所述第二进程对所述第一进程进行监测和所述第一进程对第二进程进行监测的处理方式是相同的,均包括:

S121(S141),监测是否有被监测进程被停止的信号;

S122(S142),在监测到所述被监测进程存在被停止的信号时,生成所述被监测进程的进程停止状态标识。

在第一进程和第二进程进行相互监测时,可通过监测被监测进程是否存在被停止的信号来确定被监测进程的状态,例如:已经被停止或者仍然继续在运行中,若监测到被监测进程仍然继续在运行中,则循环进行监测,若监测到被监测进程已经被停止时,即会产生对应的被监测进程的进程停止状态标识,从而有利于快速采取后续的重启进程的操作,提升处理效率,有效保证了应用的运行不会中断。

在具体实施时,所述被监测进程被停止的信号包括被监测进程的注册文件在系统的进程文件中被移除,或在系统中所述被监测进程的进程标识符(process ID)不存在。通过针对这些易于识别和监测的信号进行监测,即可快速地判断确定为被监测进程是否被停止。

在本发明另一个实施例中,如图5所示,所述重启所述第一进程或所述重启所述第二进程的具体操作包括:

S131(S151),根据被监测进程的进程停止状态标识发送重启所述被监测进程服务的指令;

S132(S152),以实施监测的进程作为父进程,通过调用方式创建作为子进程的所述被监测进程。

通过根据进程停止状态标识发送重启所述被停止的另一个进程服务的指令,准确性高,而且,重启进程的操作和创建第二进程的操作基本相同,均是以一个进程作为父进程,通过调用方式创建作为子进程的所述另一个进程,这种创建方式效率高,且能保证子进程和父进程运行相同的应用且所运行的应用的进度都能保持同步。在具体实施过程中,所述第一进程作为实施监测的进程监测到作为被监测进程的第二进程被停止时,则由所述第一进程向系统底层发送重启所述第二进程服务的指令,系统底层收到所述指令后,以所述第一进程为父进程,通过调用方式重启所述第二进程;反之,当第二进程作为实施监测的进程监测到作为被监测进程的第一进程被停止时,则由所述第二进程向系统底层发送重启所述第一进程服务的指令,系统底层收到指令后,则以所述第二进程为父进程,通过调用方式重启所述第一进程。

具体实施时,所述重启被监测进程,以实施监测的进程为父进程,也是以fork函数通过调用方式进行创建对应的作为子进程的被监测进程,在创建对应的子进程后,还在该新创建的子进程中再建立监测机制,一方面,可使得新创建的子进程和父进程同步运行同一应用且恢复监测,从而进入下一个相互监测及重启的处理循环周期,从而,在任何时候,当两个进程中的任意一个进程被停止时都能再次快速重启进程。

如上所述,根据所述第一进程创建第二进程以及重启所述被停止的被监测进程都可以以fork函数通过调用方式来创建对应的子进程。对此,为提升创建进程的效率,可以将由父进程以fork函数方式通过系统调用创建对应子进程的方法编译成so库,并存放到系统工程的libs目录中,在服务的oncreate创建方法中进行调用来执行创建新的子进程及监测机制的任务。对于本发明而言,所述编译成so库的步骤仅需在应用开发时实施一次,即可供后续实际使用的操作步骤来灵活地调用。

另一方面,为更好地实现以上方法,如图6所示,本发明实施例还提供了一种应用运行控制装置,包括:

进程创建模块10,用于响应于应用的启动创建第一进程,根据所述第一进程创建第二进程,所述第二进程与第一进程同步运行所述应用;

第一监测模块20,用于在所述第二进程中建立监测机制,使所述第二进程对第一进程进行监测;

第一重启模块30,用于在监测到第一进程被停止时,重启所述第一进程,并恢复所述第一进程和所述第二进程同步运行所述应用且所述第二进程对所述第一进程进行的监测的运行状态。

在智能终端的使用过程中,系统需要创建相应的进程来执行应用的运行操作。而本发明实施例进程创建模块10可以通过响应应用的启动创建第一进程来执行所述应用,而且还及时地根据所述第一进程创建一个第二进程来同步运行所述应用,并且还由第一监测模块实现第二进程对第一进程的监测,从而可以及时发现第一进程是否被停止,并且能在第一进程被停止时立即重启第一进程,保证了应用在后台运行时不会发生中断情况,有利于用户快捷地再次启动进入该应用,还可维持该应用在后台进行消息推送或耗时长的数据处理等运行操作。

本发明实施例仅需在应用中采用相关处理方法,即可实现应用不被系统停止,开发成本和实现成本都较低,而且用户无需在移动智能终端上安装多个应用,避免了安装和运行多个应用带来的占用大量系统资源的问题。

在本发明的另一个实施例中,如图7所示,所述进程创建模块10还包括:第一调用单元100,用于以所述第一进程作为父进程,通过调用方式创建作为子进程的第二进程。

由于采用fork函数方式可以很方便地实现建立一个进程(父进程)的克隆进程(子进程),因此,本发明具体实施时通过以所述第一进程为父进程以fork函数方式通过系统调用创建第二进程。由于fork函数的特性,所创建的所述第二进程与所述第一进程基本相同,均用于执行相同的事件,即同步地运行同一应用,从而为应用的运行提供了一个实时的备份,在后续的运行过程中,即使第一进程被系统停止了,还有第二进程能维持应用的持续运行,可以很好地保证用户再次启动该应用时可以很快地进入,还能在后台实现所述应用的消息推送,以及在后台进行耗时长的数据处理等运行操作。

而在本发明的另一个实施例中,如图8所示,所述装置还包括:

第二监测模块40,用于在所述第一进程中建立监测机制,使所述第一进程对所述第二进程进行监测;

第二重启模块50,用于在监测到所述第二进程被停止时,重启所述第二进程,并恢复所述第一进程和所述第二进程同步运行所述应用且所述第一进程对所述第二进程进行监测的运行状态。

由于所述第一进程和所述第二进程都在后台运行时都存在被系统停止的可能性,本实施例进一步通过第二监测模块40在所述第一进程中也建立监测机制,使所述第一进程也对所述第二进程进行监测,从而可以在所述第一进程监测到所述第二进程被停止时,也能及时地由第二重启模块50重启所述第二进程。由于在第一进程和第二进程中均建立起对应的监测机制实现了相互的监测,每一个进程在一个关系场景中是作为实施监测的进程,而在另一个关系场景中又成为了被监测进程,当一个进程作为实施监测的进程时,在监测到被监测进程被停止时,即可通知系统立即重启被停止的被监测进程,从而更为有效地保证了所述第一进程和第二进程均能始终维持运行状态。

在本发明的另一个实施例中,如图9所示,所述第一监测模块20和第二监测模块40的实现原理和结构也相同,均包括:

监测单元200(400),用于监测被监测进程是否存在被停止的信号;

标识单元202(402),用于在监测到所述被监测进程存在被停止的信号时,生成所述被监测的进程停止状态标识。

在第一进程和第二进程进行相互监测时,可通过监测被监测进程是否存在被停止的信号来确定被监测进程的状态,若监测到被监测进程仍然继续在运行中,则循环进行监测,若监测到被监测进程已经被停止时,即会产生对应的被监测进程的进程停止状态标识,从而有利于快速采取后续的重启进程的操作,提升处理效率,有效保证了应用的运行不会中断。

在具体实施时,所述被监测进程被停止的信号包括被监测进程的注册文件在系统的进程文件中被移除,或在系统中所述被监测进程的进程标识符(process ID)不存在。通过针对这些易于识别和监测的信号进行监测,即可快速地判断确定为被监测进程是否被停止。

在本发明的另一个实施例中,如图10所示,所述第一重启模块30和第二重启模块50的实现原理和结构也相同,均包括:

指令单元300(500),用于根据被监测进程的进程停止状态标识发送重启所述被监测进程服务的指令;

第二调用单元302(502),用于以实施监测的进程作为父进程,通过调用方式创建作为子进程的所述被监测进程。

通过根据进程停止状态标识发送重启所述被停止的被监测进程服务的指令,准确性高。而且,重启进程的操作和创建第二进程的操作基本相同,均是以一个进程作为父进程,通过调用方式创建作为子进程的所述被监测进程,这种创建方式效率高,且能保证子进程和父进程运行相同的应用且所运行的应用的进度都能保持同步。

在具体实施时,所述重启被监测进程,以实施监测的进程为父进程,也是以fork函数通过调用方式进行创建对应的作为子进程的被监测进程,在创建对应的子进程后,还在该新创建的子进程中再建立监测机制,一方面,可使得新创建的子进程和父进程同步运行同一应用且恢复监测,从而进入下一个相互监测及重启的处理循环周期,从而,在任何时候,当两个进程中的任意一个进程被停止时都能再次快速重启进程。

为提升创建进程的效率,可以将由父进程以fork函数方式通过系统调用创建对应子进程的方法编译成so库,并存放到系统工程的libs目录中,在服务的oncreate创建方法中进行调用来执行创建新的子进程及监测机制的任务。对于本发明而言,所述编译成so库的步骤仅需在应用开发时实施一次,即可供后续实际使用的操作步骤来灵活地调用,从而快速实现根据第一进程创建第二进程以及重启所述已被停止的被监测进程的操作。

本发明实施例所述的功能如果以软件功能模块或单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算设备可读取存储介质中。基于这样的理解,本发明实施例对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一台计算设备(可以是个人计算机,服务器,移动计算设备或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。

尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同范围限定。

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