CN106874077B - 进程运行方法及装置 - Google Patents
进程运行方法及装置 Download PDFInfo
- Publication number
- CN106874077B CN106874077B CN201510919972.5A CN201510919972A CN106874077B CN 106874077 B CN106874077 B CN 106874077B CN 201510919972 A CN201510919972 A CN 201510919972A CN 106874077 B CN106874077 B CN 106874077B
- Authority
- CN
- China
- Prior art keywords
- monitoring
- running
- application program
- main process
- monitoring process
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/485—Task life-cycle, e.g. stopping, restarting, resuming execution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/542—Event management; Broadcasting; Multicasting; Notifications
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Debugging And Monitoring (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
本发明公开了一种进程运行方法及装置,属于终端技术领域。该方法包括:在应用程序的主进程运行期间,通过主进程判断应用程序的监控进程是否正在运行,该监控进程为本地进程,且不受终端的操作系统所控制;如果应用程序的监控进程正在运行,则通过监控进程监控应用程序的主进程;当监控到主进程结束运行时,通过监控进程拉起主进程,以重新运行主进程。本发明通过主进程和监控进程两者之间的相互监控,从而相互保证对方的正常运行,并且由于监控进程是本地进程,不受终端的操作系统所控制,因此,该终端的内存管理策略或者内存管理应用程序不会结束监控进程的运行,更进一步地保证该应用程序的主进程能够在终端后台长时间运行。
Description
技术领域
本发明涉及终端技术领域,特别涉及一种进程运行方法及装置。
背景技术
随着终端技术的快速发展,在终端上能够安装的应用程序越来越多。并且当某些应用程序实现一些特定功能时,需要保证该应用程序的进程能够长时间在终端后台运行。比如,对于杀毒应用程序,为了实时对该终端进行安全保护,需要保证杀毒应用程序的进程能够长时间在终端后台运行。因此,应用程序的进程能够在终端后台长时间的运行对很多应用程序来说至关重要。
而当终端后台运行的进程较多时,这些进程会占用该终端较多的内存资源,从而影响该终端的运行速度。因此,在终端后台运行的进程很容易被终端操作系统的内存管理策略或者内存管理应用程序杀死,以结束进程的运行,从而无法自启动。目前,为了解决这个问题,应用程序都会注册广播接收器,从而在该终端进行系统广播时,不管该应用程序是否在终端后台运行,该终端都会拉起该应用程序,保证该应用程序的进程在终端中运行。然而,当该应用程序的广播接收器被内存管理策略或者内存管理应用程序所禁用时,该应用程序的广播接收器就无法接收到系统广播,可能就无法保证该应用程序的进程在终端后台运行。
发明内容
为了解决现有技术的问题,本发明实施例提供了一种进程运行方法及装置。所述技术方案如下:
一方面,提供了一种进程运行方法,所述方法包括:
在应用程序的主进程运行期间,通过所述主进程判断所述应用程序的监控进程是否正在运行,所述监控进程为本地进程,且不受终端的操作系统所控制;
如果所述应用程序的监控进程正在运行,则通过所述监控进程监控所述应用程序的主进程;
当监控到所述主进程结束运行时,通过所述监控进程拉起所述主进程,以重新运行所述主进程。
另一方面,提供了一种进程运行装置,所述装置包括:
判断模块,用于在应用程序的主进程运行期间,通过所述主进程判断所述应用程序的监控进程是否正在运行,所述监控进程为本地进程,且不受终端的操作系统所控制;
监控模块,用于如果所述应用程序的监控进程正在运行,则通过所述监控进程监控所述应用程序的主进程;
运行模块,用于当监控到所述主进程结束运行时,通过所述监控进程拉起所述主进程,以重新运行所述主进程。
本发明实施例提供的技术方案带来的有益效果是:在本发明实施例中,在应用程序的主进程运行期间,不仅可以通过主进程判断该应用程序的监控进程是否正在运行,还可以在监控进程正在运行时,通过监控进程监控主进程,以判断主进程是否正在运行,从而保证了主进程和监控进程两者之间的相互监控,以及相互保证对方的正常运行。另外,由于监控进程是本地进程,不受终端的操作系统所控制,因此,终端的内存管理策略或者内存管理应用程序不会对监控进程进行控制,从而不会结束监控进程的运行,更进一步地保证该应用程序的主进程能够在终端后台长时间运行。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种进程运行方法流程图;
图2是本发明实施例提供的另一种进程运行方法流程图;
图3是本发明实施例提供的一种进程运行装置结构示意图;
图4是本发明实施例提供的另一种进程运行装置结构示意图;
图5是本发明实施例提供的又一种进程运行装置结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
图1是本发明实施例提供的一种进程运行方法流程图。参见图1,该方法包括:
步骤101:在应用程序的主进程运行期间,通过主进程判断该应用程序的监控进程是否正在运行,该监控进程为本地进程,且不受终端的操作系统所控制。
步骤102:如果该应用程序的监控进程正在运行,则通过该监控进程监控该应用程序的主进程。
步骤103:当监控到该主进程结束运行时,通过该监控进程拉起该主进程,以重新运行该主进程。
在本发明实施例中,在应用程序的主进程运行期间,不仅可以通过主进程判断该应用程序的监控进程是否正在运行,还可以在监控进程正在运行时,通过监控进程监控主进程,以判断主进程是否正在运行,从而保证了主进程和监控进程两者之间的相互监控,以及相互保证对方的正常运行。另外,由于监控进程是本地进程,不受终端的操作系统所控制,因此,终端的内存管理策略或者内存管理应用程序不会对监控进程进行控制,从而不会结束监控进程的运行,更进一步地保证该应用程序的主进程能够在终端后台长时间运行。
可选地,通过该主进程判断该应用程序的监控进程是否正在运行之后,还包括:
如果该应用程序的监控进程结束运行,则通过该主进程调用存储的服务调用库;
基于该服务调用库,通过指定函数创建该监控进程。
可选地,通过该监控进程监控该应用程序的主进程之前,还包括:
创建一个文件;
当检测到该主进程请求文件锁时,将该文件锁分配给该主进程;
相应地,通过该监控进程监控该应用程序的主进程,包括:
控制该监控进程请求该文件锁;
当检测到该文件锁被分配给该监控进程时,确定该应用程序的主进程结束运行。
可选地,通过该监控进程拉起该主进程,包括:
通过该监控进程,向该主进程发送指定启用命令,以启动该主进程的广播接收器;
启动该主进程的广播接收器之后,通过该监控进程,向该主进程发送探测广播,该探测广播用于拉起处于强制停止状态的进程。
可选地,通过该监控进程,向该主进程发送探测广播之后,还包括:
如果该主进程未被拉起,则确定该主进程未处于强制停止状态而处于手动停止状态;
通过该监控进程,向该主进程发送唤醒广播,该唤醒广播用于拉起处于手动停止状态的进程。
可选地,通过该监控进程拉起该主进程之后,还包括:
通过该主进程调用指定系统接口;
通过该指定系统接口,将该主进程中处于禁用状态的组件设置为可用状态。
上述所有可选技术方案,均可按照任意结合形成本发明的可选实施例,本发明实施例对此不再一一赘述。
图2是本发明实施例提供的一种进程运行方法流程图。参见图2,该方法包括:
步骤201:当检测到应用程序启动时,运行该应用程序的主进程。
由于进程是一个应用程序运行的实例,也即是,进程是一个应用程序的基本执行实体,因此,当该终端检测到该应用程序启动时,该终端可以运行该应用程序的主进程。
需要说明的是,通常情况下,一个应用程序包括一个进程,而在本发明实施例中,为了保证该应用程序能够在终端后台长时间运行,该终端需要在启动该应用程序之后,为该应用程序创建一个监控进程,因此,在本发明实施例中,为了便于描述,将该应用程序的基本执行实体称为主进程。
进一步地,由于本发明实施例是通过监控进程来保证主进程在终端后台的长时间运行,且该监控进程不是该应用程序的运行实例,因此,在该终端运行该应用程序的主进程之后,该终端可以为该应用程序创建一个监控进程。而在本发明实施例中,该终端为该应用程序创建监控进程的操作可以为:该终端可以通过该主进程调用存储的服务调用库;基于该服务调用库,通过指定函数创建该监控进程。
需要说明的是,由于该终端的操作系统是在本地进程的基础上来运行,因此,为了使监控进程不受该终端操作系统的控制,该终端创建的监控进程可以为本地进程。而在本发明实施例中,通过指定函数创建的监控进程就是一个本地进程。其中,该指定函数可以为fork函数、exec函数等等,本发明实施例对此不做具体限定。
另外,该服务调用库用于存储监控进程的代码,且该服务调用库可以so库,当然,实际应用中,该服务调用库还可以是其他形式,本发明实施例对此不做具体限定。而对于该终端的操作系统为安卓系统的情况,由于安卓系统的编码语言为java,so库的编码语言为c语言,因此,该终端不能直接基于该服务调用库来创建监控进程,而需要调用该服务调用库来创建该监控进程。
需要强调的是,主进程和监控进程都属于该应用程序,且主进程为该应用程序的基本执行实体,而监控进程为用于拉起该主进程,并保证该主进程在终端后台能够长时间运行的实体,且监控进程为该终端启动该应用程序之后,为该应用程序创建的本地进程。
还需要说明的是,该终端基于该服务调用库,通过指定函数创建该监控进程的操作可以参考相关技术,本发明实施例对此不再进行详细阐述。
其中,当该终端运行该应用程序的主进程,并创建该应用程序的监控进程之后,该终端可以通过如下步骤202-204的操作来使该主进程和监控进程相互监控,从而保证该主进程和监控进程都在终端后台正常运行。
步骤202:在该应用程序的主进程运行期间,通过该主进程判断该应用程序的监控进程是否正在运行,该监控进程为本地进程,且不受终端的操作系统所控制。
为了保证主进程能够长时间在终端后台运行,在该应用程序的主进程运行期间,该终端可以通过该主进程判断该监控进程是否正在运行。而该终端通过该主进程判断该应用程序的监控进程是否正在运行的方式可以包括两种:
第一种方式:该终端可以通过该主进程,获取该监控进程的名称,并在指定时间基于该监控进程的名称,从存储的进程名称与进程标识符(process identifier;PID)之间的对应关系中,查找对应的PID,如果查找到,则确定该监控进程正在运行,否则,确定该监控进程没有正在运行,即该监控进程结束运行。
由于该终端每创建一个进程,会为该进程分配一个PID,且该终端创建该进程时,会为该进程设置一个进程名称,之后,将正在运行进程的进程名称和PID存储在进程名称与PID之间的对应关系中,但是当该进程结束运行时,该终端也会从该进程名称与PID之间的对应关系中,删除该进程所在的记录,因此,该终端可以基于存储的进程名称与PID之间的对应关系,确定该监控进程是否正在运行。
需要说明的是,PID用于唯一标识该进程,且PID可以是该终端随机为该进程分配的,当然,该终端也可以按照一定的策略进行分配,本发明实施例对此不做具体限定。
另外,在本发明实施例中,该指定时间为该终端在主进程运行期间,判断该监控进程是否正在运行的时机,且该指定时间可以是主进程启动时的时间、该主进程接收到该终端的系统广播的时间、或者事先设置的定时时间,本发明实施例对此不做具体限定。
需要说明的是,该终端发送的系统广播用于向运行在该终端上的其他应用通知该终端当前所处的状态,比如,该系统广播可以为该终端的网络切换广播、锁屏广播、位置变更广播、开关机广播等等。
第二种方式:该终端控制该主进程和监控进程均请求文件锁,当该终端检测到文件锁被分配给该主进程时,确定该监控进程结束运行。
其中,在该终端启动主进程之后,该终端可以创建一个文件,当检测到该主进程请求文件锁时,该终端可以将该文件锁分配给该主进程;而当该终端创建该监控进程之后,该终端还可以控制该监控进程请求该文件锁。由于文件锁在同一时间只能分配给一个进程,因此,在主进程拥有该文件锁的过程中,该监控进程只能进行等待,而当该主进程结束运行时,该终端才能将该文件锁分配给该监控进程。同理,在监控进程拥有该文件锁的过程中,如果该主进程重新运行,则该主进程继续请求该文件锁时,该主进程也只能进行等待,当该监控进程结束运行时,该终端可以将该文件锁分配给该主进程。因此,在该终端检测到文件锁被分配给主进程时,确定该监控进程结束运行。
需要说明的是,在本发明实施例中,该终端不仅可以通过上述方式在启动主进程之后创建文件,并将文件锁首先分配给主进程,当然,该终端还可以在创建监控进程之后创建该文件,并将该文件锁首先分配给监控进程,本发明实施例对文件锁是先分配给主进程还是监控进程的顺序不做具体限定。
另外,该文件锁是一种在任何时间只允许一个进程访问该文件的机制。
在本发明实施例中,当该终端通过第一种方式来判断监控进程是否正在运行时,该终端需要在指定时间来检测,也即是,该终端需要在指定时间通过定时器进行轮询,而第二种方式无需通过定时器进行轮询,节省了终端资源。
步骤203:如果该应用程序的监控进程正在运行,则通过该监控进程监控该应用程序的主进程。
由于上述步骤202中该终端可以通过两种方式来判断该应用程序的监控进程是否正在运行,因此,该终端通过监控进程监控该应用程序的主进程也可以包括两种方式:
第一种方式:该终端可以通过该监控进程,获取该主进程的名称,并在指定时间基于该主进程的名称,从存储的进程名称与PID之间的对应关系中,查找对应的PID,如果查找到,则确定该主进程正在运行,否则,确定该主进程没有正在运行,即该主进程结束运行。
第二种方式:该终端控制主进程和该监控进程均请求该文件锁,当检测到文件锁被分配给该监控进程时,确定该应用程序的主进程结束运行。
需要说明的是,通过该监控进程监控该主进程的两种方式与上述步骤202中的两种方式相同或者相似,本发明实施例对此不再进行详细阐述。
进一步地,如果该应用程序的监控进程结束运行,则该终端可以通过该主进程调用存储的服务调用库;基于该服务调用库,通过指定函数重新创建该监控进程。
步骤204:当监控到该主进程结束运行时,通过该监控进程拉起该主进程,以重新运行该主进程。
为了保证该应用程序接收到该终端发送的系统广播,该应用程序的主进程事先已注册广播接收器,并且在该终端发送系统广播时,不管该应用程序是否正在运行,为了保证该应用程序能够及时接收到该系统广播,该终端可以拉起该应用程序。而由于该终端的内存管理策略或者内存管理应用可能会将该应用程序的广播接收器禁用,因此,当该终端确定该主进程结束运行时,该终端可以通过该监控进程,向该主进程发送指定启用命令,以启动该主进程的广播接收器;在启动该主进程的广播接收器之后,通过该监控进程,向该主进程发送探测广播,该探测广播用于拉起处于强制停止状态的进程。
需要说明的是,由于监控进程和主进程属于同一应用程序,也即是,监控进程和主进程属于同一用户账号,因此,监控进程可以拥有启动该主进程广播接收器的权限,从而使该主进程的广播接收器处于可用状态。
另外,该指定启用命令为用于启动主进程的广播接收器的命令,且该指定启用命令可以预先设置,比如,该指定启用命令可以为pm enablecom.xxx.xxx/com.xxx.xxx.WakeUpReceiver,本发明实施例对此不做具体限定。
再者,探测广播用于拉起处于强制停止状态的进程,比如,该探测广播可以为ambroadcast--user xxx-n com.xxx.xxx/com.xx.xxx.WakeUpReceiver--exclude-stopped-packages--es stopped\"true\"\",本发明实施例同样对此不做具体限定。
进一步地,由于该终端启动该主进程的广播接收器之后,通过该监控进程,向主进程发送探测广播,且该探测广播只用于拉起处于强制停止状态的进程,假如该主进程未处于强制停止状态而处于手动停止状态,则该终端通过探测广播无法拉起主进程,因此,该终端通过监控进程向该主进程发送探测广播之后,该终端还可以通过监控进程判断该主进程是否正在运行,如果该主进程未被拉起,则确定该主进程未处于强制停止状态而处于手动停止状态;通过该监控进程,向主进程发送唤醒广播,该唤醒广播用于拉起处于手动停止状态的进程。
需要说明的是,在本发明实施例中,该终端通过监控进程向主进程发送探测广播,当该主进程处于强制停止状态时,可以将该主进程拉起,从而重新运行该主进程,而当该主进程未处于强制停止状态时,可以确定该主进程结束运行的原因,从而通过唤醒广播再拉起该主进程,避免不知道该主进程结束运行的原因而盲目地对该主进程进行拉起,提高了进程拉起效率。
还需要说明的是,应用程序中存在一个停止标志位,当该停止标志位被设置为true时,该应用程序的主进程就会处于强制停止状态,则该应用程序的主进程不能再接收系统广播,从而无法靠接收系统广播来拉起该主进程。比如,对于安卓4.0及以上版本,应用程序中都会存在一个stopped标志位。
另外,应用程序中的每个组件还存在一个功能属性,当该功能属性设置为false时,该组件就会处于禁用状态,而当该功能属性设置为true时,该组件就会处于可用状态,比如,当广播接收器的功能属性设置为false时,该广播接收器处于禁用状态,将无法接收系统广播,从而无法通过该系统广播拉起主进程。
再者,在终端中还可以包括应用管理功能,当用户通过该应用管理功能将该应用程序停止时,该应用程序就会处于手动停止状态。
更进一步地,当该终端通过该监控进程拉起该主进程,以重新运行该主进程时,该终端还可以根据指定策略来拉起该主进程。该指定策略可以包括:指定拉起时间段、指定拉起次数和指定拉起时间间隔中的至少一个。
具体地,当该指定策略为指定拉起时间段时,该终端根据指定策略拉起该主进程时,该终端可以获取当前时间,判断当前时间是否位于指定拉起时间段内,如果当前时间位于指定拉起时间段内,则拉起该主进程,否则,不拉起该主进程。比如,指定拉起时间段为8:00-23:00,该终端获取的当前时间为10:00,该当前时间为该指定拉起时间段内,则拉起该主进程。
当该指定策略为指定拉起次数时,该终端根据该指定策略拉起该主进程时,该终端可以统计指定时长内拉起该主进程的拉起次数,如果该拉起次数小于该指定拉起次数,则拉起该主进程,否则,不拉起该主进程。
其中,该指定时长可以事先设置,且该指定时长可以与指定时间段相同或者不同,本发明实施例对此不做具体限定。
而当该指定策略为指定拉起时间间隔时,该终端根据该指定策略拉起该主进程时,该终端可以获取当前时间,以及获取当前时间之前且离当前时间最近一次拉起该主进程的拉起时间,确定当前时间与获取的拉起时间之间的时间间隔,判断确定的时间间隔是否位于指定时间间隔之内,如果确定的时间间隔位于指定时间间隔之内,则拉起该主进程,否则,不拉起该主进程。
步骤205:通过该主进程调用指定系统接口,并通过该指定系统接口,将该主进程中处于禁用状态的组件设置为可用状态。
其中,当该应用程序的监控进程拉起该主进程之后,该主进程就可以重新运行,而为了保证该主进程中的其他组件也能够运行,该终端还可以通过主进程调用指定系统接口,并通过指定系统接口,将该主进程中所有处于禁用状态的进程设置为可用状态,从而彻底拉活该主进程。
需要说明的是,该指定系统接口可以事先设置,且该指定系统接口可以为setComponentEnabledSetting接口,本发明实施例对此不做具体限定。
在本发明实施例中,在应用程序的主进程运行期间,不仅可以通过主进程判断该应用程序的监控进程是否正在运行,还可以在监控进程正在运行时,通过监控进程监控主进程,以判断主进程是否正在运行,从而保证了主进程和监控进程两者之间的相互监控,以及相互保证对方的正常运行。另外,由于监控进程是本地进程,不受终端的操作系统所控制,因此,终端的内存管理策略或者内存管理应用程序不会对监控进程进行控制,从而不会结束监控进程的运行,更进一步地保证该应用程序的主进程能够在终端后台长时间运行。再者,由于主进程和监控进程都属于该应用程序,也即是,本发明实施例是通过该应用程序自身拉起该应用程序的主进程,无需借助其他应用程序,不受其他应用程序的限制,应用方便、灵活。
图3是本发明实施例提供的一种进程运行装置示意图,参见图3,该装置包括:
判断模块301,用于在应用程序的主进程运行期间,通过该主进程判断该应用程序的监控进程是否正在运行,该监控进程为本地进程,且不受终端的操作系统所控制;
监控模块302,用于如果该应用程序的监控进程正在运行,则通过该监控进程监控该应用程序的主进程;
运行模块303,用于当监控到该主进程结束运行时,通过该监控进程拉起该主进程,以重新运行该主进程。
可选地,参见图4,该装置还包括:
第一调用模块304,用于如果该应用程序的监控进程结束运行,则通过该主进程调用存储的服务调用库;
第一创建模块305,用于基于该服务调用库,通过指定函数创建该监控进程。
可选地,该装置还包括:
第二创建模块,用于如果该应用程序的监控进程正在运行,则创建一个文件;
分配模块,用于当检测到该主进程请求文件锁时,将该文件锁分配给该主进程;
相应地,该监控模块包括:
控制单元,用于控制该监控进程请求该文件锁;
第一确定单元,用于当检测到该文件锁被分配给该监控进程时,确定该应用程序的主进程结束运行。
可选地,该运行模块包括:
第一发送单元,用于当监控到该主进程结束运行时,通过该监控进程,向该主进程发送指定启用命令,以启动该主进程的广播接收器;
第二发送单元,用于启动该主进程的广播接收器之后,通过该监控进程,向该主进程发送探测广播,该探测广播用于拉起处于强制停止状态的进程。
可选地,该运行模块还包括:
第二确定单元,用于如果该主进程未被拉起,则确定该主进程未处于强制停止状态而处于手动停止状态;
第三发送单元,用于通过该监控进程,向该主进程发送唤醒广播,该唤醒广播用于拉起处于手动停止状态的进程。
可选地,该装置还包括:
第二调用模块,用于通过该主进程调用指定系统接口;
设置模块,用于通过该指定系统接口,将该主进程中处于禁用状态的组件设置为可用状态。
在本发明实施例中,在应用程序的主进程运行期间,不仅可以通过主进程判断该应用程序的监控进程是否正在运行,还可以在监控进程正在运行时,通过监控进程监控主进程,以判断主进程是否正在运行,从而保证了主进程和监控进程两者之间的相互监控,以及相互保证对方的正常运行。另外,由于监控进程是本地进程,不受终端的操作系统所控制,因此,终端的内存管理策略或者内存管理应用程序不会对监控进程进行控制,从而不会结束监控进程的运行,更进一步地保证该应用程序的主进程能够在终端后台长时间运行。
需要说明的是:上述实施例提供的进程运行装置在进程运行时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的进程运行装置与进程运行方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
图5是本发明实施例提供的一种用户身份确定装置终端结构示意图。上述实施例中的第一用户客户端可以安装在该终端中。参见图5,终端500可以包括通信单元510、包括有一个或一个以上计算机可读存储介质的存储器520、输入单元530、显示单元540、传感器550、音频电路560、WIFI(Wireless Fidelity,无线保真)模块570、包括有一个或者一个以上处理核心的处理器580、以及电源590等部件。本领域技术人员可以理解,图5中示出的终端结构并不构成对终端的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。其中:
通信单元510可用于收发信息或通话过程中,信号的接收和发送,该通信单元510可以为RF(Radio Frequency,射频)电路、路由器、调制解调器、等网络通信设备。特别地,当通信单元510为RF电路时,将基站的下行信息接收后,交由一个或者一个以上处理器580处理;另外,将涉及上行的数据发送给基站。通常,作为通信单元的RF电路包括但不限于天线、至少一个放大器、调谐器、一个或多个振荡器、用户身份模块(SIM)卡、收发信机、耦合器、LNA(Low Noise Amplifier,低噪声放大器)、双工器等。此外,通信单元510还可以通过无线通信与网络和其他设备通信。所述无线通信可以使用任一通信标准或协议,包括但不限于GSM(Global System of Mobile communication,全球移动通讯系统)、GPRS(GeneralPacket Radio Service,通用分组无线服务)、CDMA(Code Division Multiple Access,码分多址)、WCDMA(Wideband Code Division Multiple Access,宽带码分多址)、LTE(LongTerm Evolution,长期演进)、电子邮件、SMS(Short Messaging Service,短消息服务)等。存储器520可用于存储软件程序以及模块,处理器580通过运行存储在存储器520的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器520可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据终端500的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器520可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器520还可以包括存储器控制器,以提供处理器580和输入单元530对存储器520的访问。
输入单元530可用于接收输入的数字或字符信息,以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。优选地,输入单元530可包括触敏表面531以及其他输入设备532。触敏表面531,也称为触摸显示屏或者触控板,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触敏表面531上或在触敏表面531附近的操作),并根据预先设定的程式驱动相应的连接装置。可选地,触敏表面531可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器580,并能接收处理器580发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触敏表面531。除了触敏表面531,输入单元530还可以包括其他输入设备532。优选地,其他输入设备532可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。
显示单元540可用于显示由用户输入的信息或提供给用户的信息以及终端500的各种图形用户接口,这些图形用户接口可以由图形、文本、图标、视频和其任意组合来构成。显示单元540可包括显示面板541,可选地,可以采用LCD(Liquid Crystal Display,液晶显示器)、OLED(Organic Light-Emitting Diode,有机发光二极管)等形式来配置显示面板541。进一步的,触敏表面531可覆盖显示面板541,当触敏表面531检测到在其上或附近的触摸操作后,传送给处理器580以确定触摸事件的类型,随后处理器580根据触摸事件的类型在显示面板541上提供相应的视觉输出。虽然在图5中,触敏表面531与显示面板541是作为两个独立的部件来实现输入和输入功能,但是在某些实施例中,可以将触敏表面531与显示面板541集成而实现输入和输出功能。
终端500还可包括至少一种传感器550,比如光传感器、运动传感器以及其他传感器。光传感器可包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示面板541的亮度,接近传感器可在终端500移动到耳边时,关闭显示面板541和/或背光。作为运动传感器的一种,重力加速度传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别手机姿态的应用(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;至于终端500还可配置的陀螺仪、气压计、湿度计、温度计、红外线传感器等其他传感器,在此不再赘述。
音频电路560、扬声器561,传声器562可提供用户与终端500之间的音频接口。音频电路560可将接收到的音频数据转换后的电信号,传输到扬声器561,由扬声器561转换为声音信号输出;另一方面,传声器562将收集的声音信号转换为电信号,由音频电路560接收后转换为音频数据,再将音频数据输出处理器580处理后,经通信单元510以发送给比如另一终端,或者将音频数据输出至存储器520以便进一步处理。音频电路560还可能包括耳塞插孔,以提供外设耳机与终端500的通信。
为了实现无线通信,该终端上可以配置有无线通信单元570,该无线通信单元570可以为WIFI模块。WIFI属于短距离无线传输技术,终端500通过无线通信单元570可以帮助用户收发电子邮件、浏览网页和访问流式媒体等,它为用户提供了无线的宽带互联网访问。虽然图5中示出了无线通信单元570,但是可以理解的是,其并不属于终端500的必须构成,完全可以根据需要在不改变发明的本质的范围内而省略。
处理器580是终端500的控制中心,利用各种接口和线路连接整个手机的各个部分,通过运行或执行存储在存储器520内的软件程序和/或模块,以及调用存储在存储器520内的数据,执行终端500的各种功能和处理数据,从而对手机进行整体监控。可选地,处理器580可包括一个或多个处理核心;优选的,处理器580可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器580中。
终端500还包括给各个部件供电的电源590(比如电池),优选的,电源可以通过电源管理系统与处理器580逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。电源560还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。
尽管未示出,终端500还可以包括摄像头、蓝牙模块等,在此不再赘述。
在本实施例中,终端还包括有一个或者一个以上的程序,这一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器执行,所述一个或者一个以上程序包含用于进行本发明实施例提供的如下所述的进程运行方法的指令,包括:
在应用程序的主进程运行期间,通过主进程判断该应用程序的监控进程是否正在运行,该监控进程为本地进程,且不受终端的操作系统所控制;
如果该应用程序的监控进程正在运行,则通过该监控进程监控该应用程序的主进程;
当监控到该主进程结束运行时,通过该监控进程拉起该主进程,以重新运行该主进程。
可选地,通过该主进程判断该应用程序的监控进程是否正在运行之后,还包括:
如果该应用程序的监控进程结束运行,则通过该主进程调用存储的服务调用库;
基于该服务调用库,通过指定函数创建该监控进程。
可选地,通过该监控进程监控该应用程序的主进程之前,还包括:
创建一个文件;
当检测到该主进程请求文件锁时,将该文件锁分配给该主进程;
相应地,通过该监控进程监控该应用程序的主进程,包括:
控制该监控进程请求该文件锁;
当检测到该文件锁被分配给该监控进程时,确定该应用程序的主进程结束运行。
可选地,通过该监控进程拉起该主进程,包括:
通过该监控进程,向该主进程发送指定启用命令,以启动该主进程的广播接收器;
启动该主进程的广播接收器之后,通过该监控进程,向该主进程发送探测广播,该探测广播用于拉起处于强制停止状态的进程。
可选地,通过该监控进程,向该主进程发送探测广播之后,还包括:
如果该主进程未被拉起,则确定该主进程未处于强制停止状态而处于手动停止状态;
通过该监控进程,向该主进程发送唤醒广播,该唤醒广播用于拉起处于手动停止状态的进程。
可选地,通过该监控进程拉起该主进程之后,还包括:
通过该主进程调用指定系统接口;
通过该指定系统接口,将该主进程中处于禁用状态的组件设置为可用状态。
在本发明实施例中,在应用程序的主进程运行期间,不仅可以通过主进程判断该应用程序的监控进程是否正在运行,还可以在监控进程正在运行时,通过监控进程监控主进程,以判断主进程是否正在运行,从而保证了主进程和监控进程两者之间的相互监控,以及相互保证对方的正常运行。另外,由于监控进程是本地进程,不受终端的操作系统所控制,因此,终端的内存管理策略或者内存管理应用程序不会对监控进程进行控制,从而不会结束监控进程的运行,更进一步地保证该应用程序的主进程能够在终端后台长时间运行。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (8)
1.一种进程运行方法,其特征在于,所述方法包括:
在应用程序的主进程运行期间,通过所述主进程判断所述应用程序的监控进程是否正在运行,所述监控进程为本地进程,且不受终端的操作系统所控制;
如果所述应用程序的监控进程正在运行,则通过所述监控进程监控所述应用程序的主进程;
当监控到所述主进程结束运行时,通过所述监控进程,向所述主进程发送指定启用命令,以启动所述主进程的广播接收器;
启动所述主进程的广播接收器之后,通过所述监控进程,根据指定策略向所述主进程发送探测广播,所述探测广播用于拉起处于强制停止状态的进程,以重新运行所述主进程,所述指定策略可以包括:指定拉起时间段、指定拉起次数和指定拉起时间间隔中的至少一个;
如果所述主进程未被拉起,则确定所述主进程未处于强制停止状态而处于手动停止状态;
通过所述监控进程,向所述主进程发送唤醒广播,所述唤醒广播用于拉起处于手动停止状态的进程,以重新运行所述主进程。
2.如权利要求1所述的方法,其特征在于,所述通过所述主进程判断所述应用程序的监控进程是否正在运行之后,还包括:
如果所述应用程序的监控进程结束运行,则通过所述主进程调用存储的服务调用库;
基于所述服务调用库,通过指定函数创建所述监控进程。
3.如权利要求1或2所述的方法,其特征在于,所述通过所述监控进程监控所述应用程序的主进程之前,还包括:
创建一个文件;
当检测到所述主进程请求文件锁时,将所述文件锁分配给所述主进程;
相应地,所述通过所述监控进程监控所述应用程序的主进程,包括:
控制所述监控进程请求所述文件锁;
当检测到所述文件锁被分配给所述监控进程时,确定所述应用程序的主进程结束运行。
4.如权利要求1所述的方法,其特征在于,所述方法还包括:
在所述主进程被拉起之后,通过所述主进程调用指定系统接口;
通过所述指定系统接口,将所述主进程中处于禁用状态的组件设置为可用状态。
5.一种进程运行装置,其特征在于,所述装置包括:
判断模块,用于在应用程序的主进程运行期间,通过所述主进程判断所述应用程序的监控进程是否正在运行,所述监控进程为本地进程,且不受终端的操作系统所控制;
监控模块,用于如果所述应用程序的监控进程正在运行,则通过所述监控进程监控所述应用程序的主进程;
运行模块,用于当监控到所述主进程结束运行时,所述监控进程根据指定策略拉起所述主进程,以重新运行所述主进程,所述指定策略可以包括:指定拉起时间段、指定拉起次数和指定拉起时间间隔中的至少一个;
其中,所述运行模块,包括:
第一发送单元,用于通过所述监控进程,向所述主进程发送指定启用命令,以启动所述主进程的广播接收器;
第二发送单元,用于启动所述主进程的广播接收器之后,通过所述监控进程,根据指定策略向所述主进程发送探测广播,所述探测广播用于拉起处于强制停止状态的进程;
第二确定单元,用于如果所述主进程未被拉起,则确定所述主进程未处于强制停止状态而处于手动停止状态;
第三发送单元,用于通过所述监控进程,向所述主进程发送唤醒广播,所述唤醒广播用于拉起处于手动停止状态的进程。
6.如权利要求5所述的装置,其特征在于,所述装置还包括:
第一调用模块,用于如果所述应用程序的监控进程结束运行,则通过所述主进程调用存储的服务调用库;
第一创建模块,用于基于所述服务调用库,通过指定函数创建所述监控进程。
7.如权利要求5或6所述的装置,其特征在于,所述装置还包括:
第二创建模块,用于如果所述应用程序的监控进程正在运行,则创建一个文件;
分配模块,用于当检测到所述主进程请求文件锁时,将所述文件锁分配给所述主进程;
相应地,所述监控模块包括:
控制单元,用于控制所述监控进程请求所述文件锁;
第一确定单元,用于当检测到所述文件锁被分配给所述监控进程时,确定所述应用程序的主进程结束运行。
8.如权利要求5所述的装置,其特征在于,所述装置还包括:
第二调用模块,用于通过所述主进程调用指定系统接口;
设置模块,用于通过所述指定系统接口,将所述主进程中处于禁用状态的组件设置为可用状态。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510919972.5A CN106874077B (zh) | 2015-12-11 | 2015-12-11 | 进程运行方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510919972.5A CN106874077B (zh) | 2015-12-11 | 2015-12-11 | 进程运行方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106874077A CN106874077A (zh) | 2017-06-20 |
CN106874077B true CN106874077B (zh) | 2020-04-21 |
Family
ID=59178710
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510919972.5A Active CN106874077B (zh) | 2015-12-11 | 2015-12-11 | 进程运行方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106874077B (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107391267B (zh) * | 2017-06-26 | 2020-03-27 | 北京金山安全软件有限公司 | 一种进程检测方法、装置和电子设备、可读存储介质 |
CN108196960B (zh) * | 2017-08-31 | 2023-08-04 | 中兴通讯股份有限公司 | 一种应用的管控方法、终端及存储介质 |
CN109508239A (zh) * | 2017-09-15 | 2019-03-22 | 北京国双科技有限公司 | 进程的控制方法及装置 |
CN108153620A (zh) * | 2017-12-27 | 2018-06-12 | 深圳豪客互联网有限公司 | 一种进程控制方法及装置 |
CN108845875B (zh) * | 2018-07-09 | 2021-02-02 | 北京顺丰同城科技有限公司 | 一种常驻进程保活系统以及方法 |
CN110928703B (zh) * | 2018-09-20 | 2023-02-21 | 北京君正集成电路股份有限公司 | 多进程通讯注册方法和装置 |
CN109491720A (zh) * | 2018-10-09 | 2019-03-19 | 深圳市网心科技有限公司 | 进程启动方法、电子设备、系统及存储介质 |
CN110135150A (zh) * | 2019-05-10 | 2019-08-16 | 上海红神信息技术有限公司 | 一种程序运行控制方法及系统 |
CN114050924A (zh) * | 2021-11-08 | 2022-02-15 | 北京天融信网络安全技术有限公司 | 基于时间自动控制访问控制策略使能属性的方法及装置 |
CN114385329B (zh) * | 2021-12-06 | 2023-03-28 | 深圳市亚略特科技股份有限公司 | 进程管理方法、装置、电子装置及可读存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102103676A (zh) * | 2011-02-28 | 2011-06-22 | 南京邮电大学 | 一种基于进程间继承关系的爪哇程序进程守护方法 |
CN104809400A (zh) * | 2015-04-28 | 2015-07-29 | 联动优势科技有限公司 | 一种进程保护的方法及装置 |
CN104951346A (zh) * | 2015-07-07 | 2015-09-30 | 上海斐讯数据通信技术有限公司 | 一种用于嵌入式系统的进程管理方法及系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5511506B2 (ja) * | 2010-05-25 | 2014-06-04 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 所定のリソースを監視する監視プログラムの強制終了攻撃に対する耐性を有する装置、所定のリソースを監視する監視プログラムの強制終了攻撃に対する耐性を付与する方法及び該方法を装置で実行することが可能なコンピュータプログラム |
-
2015
- 2015-12-11 CN CN201510919972.5A patent/CN106874077B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102103676A (zh) * | 2011-02-28 | 2011-06-22 | 南京邮电大学 | 一种基于进程间继承关系的爪哇程序进程守护方法 |
CN104809400A (zh) * | 2015-04-28 | 2015-07-29 | 联动优势科技有限公司 | 一种进程保护的方法及装置 |
CN104951346A (zh) * | 2015-07-07 | 2015-09-30 | 上海斐讯数据通信技术有限公司 | 一种用于嵌入式系统的进程管理方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN106874077A (zh) | 2017-06-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106874077B (zh) | 进程运行方法及装置 | |
US10635449B2 (en) | Method and apparatus for running game client | |
EP3525417A1 (en) | Data processing method, device, storage medium, electronic device and server | |
CN106775833B (zh) | 设备驱动程序加载方法、终端及系统 | |
CN105471931B (zh) | 一种查询业务数据的方法、装置和系统 | |
CN106293308B (zh) | 一种屏幕解锁方法及装置 | |
CN106293901B (zh) | 一种终端应用的进程管理方法及装置 | |
CN107786424B (zh) | 音视频通信方法、终端及服务器 | |
WO2014206138A1 (zh) | 一种更新网页数据的方法、装置和终端设备 | |
WO2017096909A1 (zh) | 建立数据连接的方法及装置 | |
CN108874554B (zh) | 信息通信方法及装置 | |
CN107015866B (zh) | 一种数据处理方法及装置 | |
WO2015062234A1 (zh) | 移动终端资源处理方法、装置和设备 | |
CN106682189B (zh) | 文件名显示方法及装置 | |
CN106919458B (zh) | Hook目标内核函数的方法及装置 | |
CN109495769A (zh) | 视频通信方法、终端、智能电视、服务器及存储介质 | |
CN105278942B (zh) | 组件管理方法及装置 | |
CN110312995B (zh) | 应用程序加速启动方法、装置及终端 | |
CN107463395B (zh) | 组件调用方法及装置 | |
WO2015062241A1 (zh) | 应用程序保护方法、装置和终端 | |
CN107122204B (zh) | 应用的卸载状态检测方法及装置 | |
CN108234275B (zh) | 一种发布通讯信息的方法和装置 | |
CN106878294B (zh) | 一种对讲机录制语音信息的方法和装置 | |
CN115065609A (zh) | B端SaaS系统混合部署方法及系统 | |
CN106406921B (zh) | 一种安装补丁的方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |