CN106708641A - 进程守护方法及装置 - Google Patents

进程守护方法及装置 Download PDF

Info

Publication number
CN106708641A
CN106708641A CN201610442585.1A CN201610442585A CN106708641A CN 106708641 A CN106708641 A CN 106708641A CN 201610442585 A CN201610442585 A CN 201610442585A CN 106708641 A CN106708641 A CN 106708641A
Authority
CN
China
Prior art keywords
program
binder
agent
designated program
designated
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.)
Granted
Application number
CN201610442585.1A
Other languages
English (en)
Other versions
CN106708641B (zh
Inventor
谢文军
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN201610442585.1A priority Critical patent/CN106708641B/zh
Publication of CN106708641A publication Critical patent/CN106708641A/zh
Application granted granted Critical
Publication of CN106708641B publication Critical patent/CN106708641B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3065Monitoring arrangements determined by the means or processing involved in reporting the monitored data

Abstract

本发明公开了一种进程守护方法及装置,属于计算机技术领域。该方法包括:应用程序进程向系统进程注入指定程序;该指定程序向Binder驱动程序注册对该应用程序进程的死亡消息通知,使得当该Binder驱动程序确定该应用程序进程死亡时,向该指定程序发送死亡消息通知;该指定程序接收到该死亡消息通知时,启动该应用程序进程,实现对该应用程序进程的守护。本发明通过注入该指定程序并采用Binder机制,保证了指定程序能够及时准确地感知应用程序进程的死亡,实现了指定程序对该应用程序进程的守护。无需创建一个专门的守护进程,能够避免守护进程被回收的问题,而且守护过程中无需循环地监听应用程序进程的进程状态,减少了占用的系统资源,提升了系统性能。

Description

进程守护方法及装置
技术领域
本发明涉及计算机技术领域,特别涉及一种进程守护方法及装置。
背景技术
终端的系统中通常会运行多个应用程序进程,不同的应用程序进程可以实现不同的功能,当某个应用程序进程死亡时,可能会对系统的正常运行造成影响,此时就需要重新启动该应用程序进程。而为了准确感知到该应用程序进程的死亡,并及时地启动该应用程序进程,可以采用进程守护技术对该应用程序进程进行监听。
以第一进程和第二进程为例,第一进程创建第二进程,此时第一进程成为父进程,第二进程成为子进程,第一进程和第二进程之间建立继承关系,第二进程可以作为第一进程的守护进程。在系统运行过程中,第二进程循环监听第一进程的进程状态,根据监听的进程状态来判断第一进程是否死亡,一旦第一进程死亡,第二进程会监控到第一进程的死亡,并重新启动第一进程。
在实现本发明的过程中,发明人发现现有技术至少存在以下缺陷:
第二进程需要循环地监听第一进程的进程状态,占用了过多的系统资源,耗费系统性能。而且,当第一进程死亡时,系统可能会将第二进程回收,导致第二进程无法重新启动第一进程。
发明内容
为了解决现有技术的问题,本发明实施例提供了一种进程守护方法及装置。所述技术方案如下:
第一方面,提供了一种进程守护方法,所述方法包括:
应用程序进程向系统进程注入指定程序;
所述指定程序在运行过程中,向Binder驱动程序注册对所述应用程序进程的死亡消息通知,使得当所述Binder驱动程序确定所述应用程序进程死亡时,向所述指定程序发送死亡消息通知;
所述指定程序接收到所述死亡消息通知时,启动所述应用程序进程,实现对所述应用程序进程的守护。
第二方面,提供了一种进程守护装置,所述装置包括:应用程序进程、Binder驱动程序、系统进程和指定程序;
所述应用程序进程用于向所述系统进程注入所述指定程序;
所述指定程序用于在运行过程中,向所述Binder驱动程序注册对所述应用程序进程的死亡消息通知;
所述Binder驱动程序用于确定所述应用程序进程死亡时,向所述指定程序发送死亡消息通知;
所述指定程序用于接收到所述死亡消息通知时,启动所述应用程序进程,实现对所述应用程序进程的守护。
本发明实施例提供的技术方案带来的有益效果是:
本发明实施例提供的方法及装置,通过应用程序进程向已有的系统进程注入指定程序,由指定程序在Binder驱动程序中注册对应用程序进程的死亡消息通知,当应用程序进程死亡时,Binder驱动程序向指定程序发送死亡消息通知,指定程序即可接收该死亡消息通知时,重新启动该应用程序进程。本发明在已有的系统进程中注入指定程序,通过该指定程序并采用Binder机制,实现了应用程序进程与指定程序之间的通信,保证了指定程序能够及时准确地感知应用程序进程的死亡,从而及时地启动该应用程序进程,实现了指定程序对该应用程序进程的守护。无需创建一个专门的守护进程,既能够节省系统资源,也能够避免守护进程被回收的问题,而且守护过程中无需循环地监听应用程序进程的进程状态,减少了占用的系统资源,提升了系统性能。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种系统架构示意图;
图2是本发明实施例提供的一种进程守护方法的流程图;
图3是本发明实施例提供的一种进程守护方法的流程图;
图4是本发明实施例提供的示例性操作流程图;
图5是本发明实施例提供的一种进程守护装置结构示意图;
图6是本发明实施例提供的一种终端的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1是本发明实施例提供的一种系统架构示意图,参见图1,该系统提供了Binder机制,通过Binder机制可以实现进程之间的通信。该系统包括:应用程序进程、指定程序、Binder驱动程序、Service Manager。
Binder机制采用Client-Server(客户端-服务器)通信模式,应用程序进程作为Client端,指定程序作为Server端,两者之间通过Binder驱动程序进行通信。其中,应用程序进程、指定程序、Binder驱动程序位于用户空间,Service Manager位于内核空间。
相关技术中,Client端要将一块内存数据传递给Server端,一般的方法是,Client端将这块数据从Client端的进程空间拷贝到内核空间中,然后内核再将这块数据从内核空间拷贝到Server端的进程空间,如此,Server端就可以访问这块数据了,但是该方法执行了两次内存拷贝操作。而Binder机制只需要把Client端进程空间的数据拷贝一次到内核空间,然后Server端与内核共享这块数据即可,整个过程只需要执行一次内存拷贝操作,提高了操作效率。
Service Manager是整个Binder机制的守护进程,用于管理开发者创建的各种Binder服务,并向Client端提供查询Server远程接口的功能,应用程序进程可以在ServiceManager查询到Binder服务的代理对象。
指定程序向系统进程注册Binder服务,应用程序进程从Service Manager获取到该Binder服务的代理对象后,即可通过调用该代理对象向指定程序发起请求,则代理对象向Binder驱动程序发送该请求,Binder驱动程序会将该请求转发给指定程序,指定程序处理该请求后,会将处理结果通过Binder驱动程序返回给应用程序进程的代理对象,从而实现应用程序进程与指定程序之间的进程间通信。
本发明实施例中不仅能够实现应用程序进程与指定程序之间的通信,而且,指定程序在获取到应用程序进程的Binder服务的代理对象之后,在Binder驱动程序注册对该代理对象的死亡消息通知,从而能够及时感知到应用程序进程的死亡,实现了对应用程序进程的守护。具体的操作过程详见下述方法实施例。
图2是本发明实施例提供的一种进程守护方法的流程图,参见图2,该方法包括:
201、应用程序进程向系统进程注入指定程序。
202、该指定程序在运行过程中,向Binder驱动程序注册对该应用程序进程的死亡消息通知,使得当该Binder驱动程序确定该应用程序进程死亡时,向该指定程序发送死亡消息通知。
203、该指定程序接收到该死亡消息通知时,启动该应用程序进程,实现对该应用程序进程的守护。
本发明实施例提供的方法,通过应用程序进程向已有的系统进程注入指定程序,由指定程序在Binder驱动程序中注册对应用程序进程的死亡消息通知,当应用程序进程死亡时,Binder驱动程序向指定程序发送死亡消息通知,指定程序即可接收该死亡消息通知时,重新启动该应用程序进程。本发明在已有的系统进程中注入指定程序,通过该指定程序并采用Binder机制,实现了应用程序进程与指定程序之间的通信,保证了指定程序能够及时准确地感知应用程序进程的死亡,从而及时地启动该应用程序进程,实现了指定程序对该应用程序进程的守护。无需创建一个专门的守护进程,既能够节省系统资源,也能够避免守护进程被回收的问题,而且守护过程中无需循环地监听应用程序进程的进程状态,减少了占用的系统资源,提升了系统性能。
可选地,该应用程序进程向系统进程注入指定程序,包括:
该应用程序进程将该指定程序拷贝到该系统进程的内存空间中,并运行该指定程序。
可选地,该指定程序在运行过程中,向Binder驱动程序注册对该应用程序进程的死亡消息通知,包括:
该指定程序向该系统进程注册第一Binder服务;
该应用程序进程获取该第一Binder服务的第一代理对象;
该应用程序进程通过调用该第一代理对象,向该指定程序发送该应用程序进程所创建的第二Binder服务的第二代理对象;
该指定程序获取到该第二代理对象后,向该Binder驱动程序注册对该第二代理对象的死亡消息通知。
可选地,该应用程序进程获取该第一Binder服务的第一代理对象,包括:
该应用程序进程向Service Manager(服务管家)查询该第一Binder服务,由该Service Manager根据预设映射表,返回该第一Binder服务的第一代理对象,该预设映射表中包括已注册的Binder服务以及对应的代理对象。
可选地,该指定程序获取到该第二代理对象后,向该Binder驱动程序注册对该第二代理对象的死亡消息通知,包括:
该指定程序实现死亡消息通知接口;
当该指定程序获取到该第二代理对象后,调用关联函数,将该第二代理对象与该死亡消息通知接口关联,使得当该Binder驱动程序确定该第二代理对象死亡时,调用该死亡消息通知接口发送死亡消息通知,该指定程序通过该第二代理对象接收到该死亡消息通知。
上述所有可选技术方案,可以采用任意结合形成本发明的可选实施例,在此不再一一赘述。
在图1所示的系统架构的基础上,图3是本发明实施例提供的一种进程守护方法的流程图,图4是本发明实施例提供的示例性操作流程图,参见图3和图4,该方法包括:
301、应用程序进程向系统进程注入指定程序。
本发明实施例应用于终端,该终端可以为手机、平板电脑等,该终端配置的操作系统为安卓操作系统,或者也可以为其他提供Binder机制的操作系统,本发明实施例对此不做限定。
其中,该系统进程可以为终端上运行的任一系统进程,该应用程序进程可以为系统中运行的任一应用程序的进程。该指定程序可以为代码段,或者可以代码文件,如dex文件等,本发明实施例对此不做限定。
具体地,该应用程序进程查找该系统进程的进程标识,根据该进程标识,在该系统进程中开辟内存空间,将该指定程序拷贝到该内存空间中,并运行该指定程序。其中,该进程标识用于唯一确定该系统进程,可以为该系统进程的进程号等,本发明实施例对此不做限定。
另外,为了保证指定程序能够在系统进程中运行,该指定程序需要先获取root权限,并成功地将指定程序注入到系统进程中。
302、指定程序向系统进程注册第一Binder服务。
该指定程序可以通过调用注册系统接口注册一个Binder服务,作为第一Binder服务。其中,该注册系统接口可以为Service Manager的addService接口,当然也可以为其他接口,本发明实施例对此不做限定。
实际应用中,该指定程序先调用查询系统接口,向系统进程检查Binder服务是否存在,如果Binder服务不存在,再调用注册系统接口进行注册。其中,该查询系统接口可以为android.os.ServiceManager类的checkService接口或者也可以为其他接口,本发明实施例对此不做限定。
303、应用程序进程获取第一Binder服务的代理对象,作为第一代理对象。
具体地,该应用程序进程向Service Manager查询该第一Binder服务,由该Service Manager根据预设映射表,返回该第一Binder服务的第一代理对象,该预设映射表中包括已注册的Binder服务以及对应的代理对象,该应用程序进程即可获取到该第一代理对象。
进一步地,该应用程序进程可以通过调用代理获取系统接口,获取已注册的Binder服务的代理对象。其中,该代理获取系统接口可以为getService接口,或者也可以为其他接口,本发明实施例对此不做限定。
该应用程序进程调用代理获取系统接口时,Service Manager会查询预设映射表,从预设映射表中获取第一Binder服务的第一代理对象,返回给该应用程序进程。
其中,Service Manager负责管理所有的Binder服务的映射关系,每当注册一个新的Binder服务时,Service Manager会将该Binder服务的代理对象添加到预设映射表中。
具体地,当指定程序向Binder驱动程序申请创建一个Binder服务A时,Binder驱动程序为这个Binder服务A创建位于内核中的Binder实体节点以及Binder的代理对象,并将新创建的Binder服务的名字A和代理对象BpBinder打包传递给Service Manager,通知Service Manager注册了一个Binder服务A,Service Manager接收到数据包时,将Binder服务的名字A和代理对象BpBinder添加到该预设映射表中。
304、应用程序进程通过调用第一代理对象,向指定程序发送该应用程序进程所创建的第二Binder服务的第二代理对象。
应用程序进程获取到第一代理对象后,即可通过调用该第一代理对象,利用Binder所提供的服务。如应用程序进程调用第一代理对象,向指定程序传递消息,则第一代理对象会向Binder驱动程序发送该消息,由Binder驱动程序向该指定程序发送该消息,实现消息的传递。
而在本发明实施例中,为了便于注册对应用程序进程的死亡消息通知,应用程序进程需要向指定程序发送其所创建的第二Binder服务的第二代理对象,针对该第二代理对象进行注册。
具体地,应用程序进程获取到第一代理对象后,可以创建第二Binder服务,通过调用该第一代理对象,向指定程序传递第二Binder服务的第二代理对象,则第一代理对象会向Binder驱动程序发送该第二代理对象,由Binder驱动程序向该指定程序发送该第二代理对象,该指定程序即可获取到该第二代理对象。此时,应用程序进程和指定程序均已获取到对方的Binder服务的代理对象。
305、指定程序获取到第二代理对象后,向Binder驱动程序注册对第二代理对象的死亡消息通知。
306、当应用程序进程死亡时,Binder驱动程序监控到第二代理对象死亡,则向指定程序发送死亡消息通知。
具体地,死亡消息通知接口用于Binder驱动程序发送死亡消息通知,则为了注册死亡消息通知,该指定程序实现死亡消息通知接口,从而创建一个接受对象,当该指定程序获取到该第二代理对象后,调用关联函数,将该第二代理对象与该死亡消息通知接口关联,以便指示该指定程序关注第二代理对象的死亡消息通知,关注者即为该指定程序所创建的接受对象。
其中,该死亡消息通知接口可以为android.os.IBinder.DeathRecipient接口的binderDied方法,或者可以为其他接口,该关联函数可以为binderProxy.linkToDeath(recipientImpl,0),或者也可以为其他函数,本发明实施例对此不做限定。
当该应用程序进程死亡时,该应用程序进程的第二代理对象也会切换为无效状态,也即是该第二代理对象死亡,此时,该Binder驱动程序检测到该第二代理对象死亡。此时,Binder驱动程序会将该第二代理对象剔除掉,而由于指定程序已经向Binder驱动程序注册对第二代理对象的死亡消息通知,因此,Binder驱动程序还会通过死亡消息通知接口发送死亡消息通知。
具体地,当该Binder驱动程序确定该第二代理对象死亡时,调用该死亡消息通知接口向该接受对象发送死亡消息通知,该指定程序即可通过该第二代理对象接收到该死亡消息通知。
307、指定程序接收到该死亡消息通知时,重新启动该应用程序进程。
本发明实施例中,指定程序可以作为应用程序进程的守护进程,当指定程序接收到该死亡消息通知时,确定该应用程序进程已经死亡,则重新启动该应用程序进程。
需要说明的是,相关技术中,在被守护的进程死亡时,守护进程可能会被回收,而本发明实施例中的指定程序作为应用程序进程的守护进程,在系统进程中运行,系统进程只有在终端关闭时才会死亡,因此,在正常情况下,指定程序不会死亡,也不会被回收掉,避免了守护进程被回收的情况。
本发明实施例提供的方法,通过应用程序进程向已有的系统进程注入指定程序,由指定程序在Binder驱动程序中注册对应用程序进程的死亡消息通知,当应用程序进程死亡时,Binder驱动程序向指定程序发送死亡消息通知,指定程序即可接收该死亡消息通知时,重新启动该应用程序进程。本发明在已有的系统进程中注入指定程序,通过该指定程序并采用Binder机制,充分地利用了系统的Binder通信的优势,能够安全、方便地实现应用程序进程与指定程序之间的跨进程通信,保证了指定程序能够及时准确地感知应用程序进程的死亡,从而及时地启动该应用程序进程,实现了指定程序对该应用程序进程的守护,准确快捷。无需创建一个专门的守护进程,既能够节省系统资源,也能够避免守护进程被回收的问题,最大化地达到守护进程的效果。而且守护过程中无需循环地监听应用程序进程的进程状态,减少了占用的系统资源,提升了系统性能。
图5是本发明实施例提供的一种进程守护装置结构示意图,参见图5,该装置包括:应用程序进程501、Binder驱动程序502、系统进程503和指定程序504;
该应用程序进程501用于向该系统进程503注入该指定程序504;
该指定程序504用于在运行过程中,向该Binder驱动程序502注册对该应用程序进程501的死亡消息通知;
该Binder驱动程序502用于确定该应用程序进程501死亡时,向该指定程序504发送死亡消息通知;
该指定程序504用于接收到该死亡消息通知时,启动该应用程序进程501,实现对该应用程序进程501的守护。
本发明实施例提供的装置,通过应用程序进程向已有的系统进程注入指定程序,由指定程序在Binder驱动程序中注册对应用程序进程的死亡消息通知,当应用程序进程死亡时,Binder驱动程序向指定程序发送死亡消息通知,指定程序即可接收该死亡消息通知时,重新启动该应用程序进程。本发明在已有的系统进程中注入指定程序,通过该指定程序并采用Binder机制,实现了应用程序进程与指定程序之间的通信,保证了指定程序能够及时准确地感知应用程序进程的死亡,从而及时地启动该应用程序进程,实现了指定程序对该应用程序进程的守护。无需创建一个专门的守护进程,既能够节省系统资源,也能够避免守护进程被回收的问题,而且守护过程中无需循环地监听应用程序进程的进程状态,减少了占用的系统资源,提升了系统性能。
可选地,该应用程序进程501还用于将该指定程序504拷贝到该系统进程503的内存空间中,并运行该指定程序504。
可选地,该指定程序504用于向该系统进程503注册第一Binder服务;
该应用程序进程501用于获取该第一Binder服务的第一代理对象;通过调用该第一代理对象,向该指定程序504发送该应用程序进程501所创建的第二Binder服务的第二代理对象;
该指定程序504用于获取到该第二代理对象后,向该Binder驱动程序502注册对该第二代理对象的死亡消息通知。
可选地,该装置还包括:服务管家Service Manager;
该应用程序进程501用于向该Service Manager查询该第一Binder服务,由该Service Manager根据预设映射表,返回该第一Binder服务的第一代理对象,该预设映射表中包括已注册的Binder服务以及对应的代理对象。
可选地,该指定程序504用于实现死亡消息通知接口;当获取到该第二代理对象后,调用关联函数,将该第二代理对象与该死亡消息通知接口关联;
该Binder驱动程序502用于当确定该第二代理对象死亡时,调用该死亡消息通知接口发送死亡消息通知;
该指定程序504用于通过该第二代理对象接收到该死亡消息通知。
上述所有可选技术方案,可以采用任意结合形成本发明的可选实施例,在此不再一一赘述。
需要说明的是:上述实施例提供的进程守护装置在守护进程时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将各个进程和程序的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的触发智能网业务的装置与触发智能网业务的方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
图6是本发明实施例提供的一种终端的结构示意图。具体来讲:
终端600可以包括RF(Radio Frequency,射频)电路110、包括有一个或一个以上计算机可读存储介质的存储器120、输入单元130、显示单元140、传感器150、音频电路160、传输模块170、包括有一个或者一个以上处理核心的处理器180、以及电源190等部件。本领域技术人员可以理解,图6中示出的终端结构并不构成对终端的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。其中:
RF电路110可用于收发信息或通话过程中,信号的接收和发送,特别地,将基站的下行信息接收后,交由一个或者一个以上处理器180处理;另外,将涉及上行的数据发送给基站。通常,RF电路110包括但不限于天线、至少一个放大器、调谐器、一个或多个振荡器、用户身份模块(SIM)卡、收发信机、耦合器、LNA(Low Noise Amplifier,低噪声放大器)、双工器等。此外,RF电路110还可以通过无线通信与网络和其他终端通信。所述无线通信可以使用任一通信标准或协议,包括但不限于GSM(Global System of Mobile communication,全球移动通讯系统)、GPRS(General Packet Radio Service,通用分组无线服务)、CDMA(CodeDivision Multiple Access,码分多址)、WCDMA(Wideband Code Division MultipleAccess,宽带码分多址)、LTE(Long Term Evolution,长期演进)、电子邮件、SMS(ShortMessaging Service,短消息服务)等。
存储器120可用于存储软件程序以及模块,如上述示例性实施例所示出的终端所对应的软件程序以及模块,处理器180通过运行存储在存储器120的软件程序以及模块,从而执行各种功能应用以及数据处理,如实现基于视频的交互等。存储器120可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据终端600的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器120可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器120还可以包括存储器控制器,以提供处理器180和输入单元130对存储器120的访问。
输入单元130可用于接收输入的数字或字符信息,以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。具体地,输入单元130可包括触敏表面131以及其他输入终端132。触敏表面131,也称为触摸显示屏或者触控板,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触敏表面131上或在触敏表面131附近的操作),并根据预先设定的程式驱动相应的链接装置。可选的,触敏表面131可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器180,并能接收处理器180发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触敏表面131。除了触敏表面131,输入单元130还可以包括其他输入终端132。具体地,其他输入终端132可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。
显示单元140可用于显示由用户输入的信息或提供给用户的信息以及终端600的各种图形用户接口,这些图形用户接口可以由图形、文本、图标、视频和其任意组合来构成。显示单元140可包括显示面板141,可选的,可以采用LCD(Liquid Crystal Display,液晶显示器)、OLED(Organic Light-Emitting Diode,有机发光二极管)等形式来配置显示面板141。进一步的,触敏表面131可覆盖显示面板141,当触敏表面131检测到在其上或附近的触摸操作后,传送给处理器180以确定触摸事件的类型,随后处理器180根据触摸事件的类型在显示面板141上提供相应的视觉输出。虽然在图6中,触敏表面131与显示面板141是作为两个独立的部件来实现输入和输入功能,但是在某些实施例中,可以将触敏表面131与显示面板141集成而实现输入和输出功能。
终端600还可包括至少一种传感器150,比如光传感器、运动传感器以及其他传感器。具体地,光传感器可包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示面板141的亮度,接近传感器可在终端600移动到耳边时,关闭显示面板141和/或背光。作为运动传感器的一种,重力加速度传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别手机姿态的应用(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;至于终端600还可配置的陀螺仪、气压计、湿度计、温度计、红外线传感器等其他传感器,在此不再赘述。
音频电路160、扬声器161,传声器162可提供用户与终端600之间的音频接口。音频电路160可将接收到的音频数据转换后的电信号,传输到扬声器161,由扬声器161转换为声音信号输出;另一方面,传声器162将收集的声音信号转换为电信号,由音频电路160接收后转换为音频数据,再将音频数据输出处理器180处理后,经RF电路110以发送给比如另一终端,或者将音频数据输出至存储器120以便进一步处理。音频电路160还可能包括耳塞插孔,以提供外设耳机与终端600的通信。
终端600通过传输模块170可以帮助用户收发电子邮件、浏览网页和访问流式媒体等,它为用户提供了无线或有线的宽带互联网访问。虽然图6示出了传输模块170,但是可以理解的是,其并不属于终端600的必须构成,完全可以根据需要在不改变发明的本质的范围内而省略。
处理器180是终端600的控制中心,利用各种接口和线路链接整个手机的各个部分,通过运行或执行存储在存储器120内的软件程序和/或模块,以及调用存储在存储器120内的数据,执行终端600的各种功能和处理数据,从而对手机进行整体监控。可选的,处理器180可包括一个或多个处理核心;优选的,处理器180可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器180中。
终端600还包括给各个部件供电的电源190(比如电池),优选的,电源可以通过电源管理系统与处理器180逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。电源190还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。
尽管未示出,终端600还可以包括摄像头、蓝牙模块等,在此不再赘述。具体在本发明实施例中,终端的显示单元是触摸屏显示器,终端还包括有存储器,以及一个或者一个以上的程序,其中一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器执行上述一个或者一个以上程序。
本发明实施例中,该终端600用于运行上述实施例提供的系统进程、应用程序进程、Binder驱动程序和指定程序。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (10)

1.一种进程守护方法,其特征在于,所述方法包括:
应用程序进程向系统进程注入指定程序;
所述指定程序在运行过程中,向Binder驱动程序注册对所述应用程序进程的死亡消息通知,使得当所述Binder驱动程序确定所述应用程序进程死亡时,向所述指定程序发送死亡消息通知;
所述指定程序接收到所述死亡消息通知时,启动所述应用程序进程,实现对所述应用程序进程的守护。
2.根据权利要求1所述的方法,其特征在于,所述应用程序进程向系统进程注入指定程序,包括:
所述应用程序进程将所述指定程序拷贝到所述系统进程的内存空间中,并运行所述指定程序。
3.根据权利要求1所述的方法,其特征在于,所述指定程序在运行过程中,向Binder驱动程序注册对所述应用程序进程的死亡消息通知,包括:
所述指定程序向所述系统进程注册第一Binder服务;
所述应用程序进程获取所述第一Binder服务的第一代理对象;
所述应用程序进程通过调用所述第一代理对象,向所述指定程序发送所述应用程序进程所创建的第二Binder服务的第二代理对象;
所述指定程序获取到所述第二代理对象后,向所述Binder驱动程序注册对所述第二代理对象的死亡消息通知。
4.根据权利要求3所述的方法,其特征在于,所述应用程序进程获取所述第一Binder服务的第一代理对象,包括:
所述应用程序进程向服务管家Service Manager查询所述第一Binder服务,由所述Service Manager根据预设映射表,返回所述第一Binder服务的第一代理对象,所述预设映射表中包括已注册的Binder服务以及对应的代理对象。
5.根据权利要求3所述的方法,其特征在于,所述指定程序获取到所述第二代理对象后,向所述Binder驱动程序注册对所述第二代理对象的死亡消息通知,包括:
所述指定程序实现死亡消息通知接口;
当所述指定程序获取到所述第二代理对象后,调用关联函数,将所述第二代理对象与所述死亡消息通知接口关联,使得当所述Binder驱动程序确定所述第二代理对象死亡时,调用所述死亡消息通知接口发送死亡消息通知,所述指定程序通过所述第二代理对象接收到所述死亡消息通知。
6.一种进程守护装置,其特征在于,所述装置包括:应用程序进程、Binder驱动程序、系统进程和指定程序;
所述应用程序进程用于向所述系统进程注入所述指定程序;
所述指定程序用于在运行过程中,向所述Binder驱动程序注册对所述应用程序进程的死亡消息通知;
所述Binder驱动程序用于确定所述应用程序进程死亡时,向所述指定程序发送死亡消息通知;
所述指定程序用于接收到所述死亡消息通知时,启动所述应用程序进程,实现对所述应用程序进程的守护。
7.根据权利要求6所述的装置,其特征在于,所述应用程序进程还用于将所述指定程序拷贝到所述系统进程的内存空间中,并运行所述指定程序。
8.根据权利要求6所述的装置,其特征在于,
所述指定程序用于向所述系统进程注册第一Binder服务;
所述应用程序进程用于获取所述第一Binder服务的第一代理对象;通过调用所述第一代理对象,向所述指定程序发送所述应用程序进程所创建的第二Binder服务的第二代理对象;
所述指定程序用于获取到所述第二代理对象后,向所述Binder驱动程序注册对所述第二代理对象的死亡消息通知。
9.根据权利要求8所述的装置,其特征在于,所述装置还包括:服务管家ServiceManager;
所述应用程序进程用于向所述Service Manager查询所述第一Binder服务,由所述Service Manager根据预设映射表,返回所述第一Binder服务的第一代理对象,所述预设映射表中包括已注册的Binder服务以及对应的代理对象。
10.根据权利要求8所述的装置,其特征在于,所述指定程序用于实现死亡消息通知接口;当获取到所述第二代理对象后,调用关联函数,将所述第二代理对象与所述死亡消息通知接口关联;
所述Binder驱动程序用于当确定所述第二代理对象死亡时,调用所述死亡消息通知接口发送死亡消息通知;
所述指定程序用于通过所述第二代理对象接收到所述死亡消息通知。
CN201610442585.1A 2016-06-20 2016-06-20 进程守护方法及装置 Active CN106708641B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610442585.1A CN106708641B (zh) 2016-06-20 2016-06-20 进程守护方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610442585.1A CN106708641B (zh) 2016-06-20 2016-06-20 进程守护方法及装置

Publications (2)

Publication Number Publication Date
CN106708641A true CN106708641A (zh) 2017-05-24
CN106708641B CN106708641B (zh) 2018-09-04

Family

ID=58939628

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610442585.1A Active CN106708641B (zh) 2016-06-20 2016-06-20 进程守护方法及装置

Country Status (1)

Country Link
CN (1) CN106708641B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108038006A (zh) * 2017-11-14 2018-05-15 北京小鸟看看科技有限公司 头戴显示设备的控制方法、设备及系统
CN111290949A (zh) * 2020-01-21 2020-06-16 上海悦易网络信息技术有限公司 一种进程守护方法及设备
CN114077519A (zh) * 2020-08-21 2022-02-22 荣耀终端有限公司 一种系统服务恢复方法、装置和电子设备

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103678084A (zh) * 2012-09-21 2014-03-26 成都勤智数码科技股份有限公司 一种灵活的应用进程守护方法
CN103927485A (zh) * 2014-04-24 2014-07-16 东南大学 基于动态监控的Android应用程序风险评估方法
CN104281808A (zh) * 2014-09-25 2015-01-14 中国科学院信息工程研究所 一种通用的Android恶意行为检测方法
CN104598313A (zh) * 2015-02-04 2015-05-06 广州市久邦数码科技有限公司 一种应用进程被停止后自动重启的实现方法及其系统

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103678084A (zh) * 2012-09-21 2014-03-26 成都勤智数码科技股份有限公司 一种灵活的应用进程守护方法
CN103927485A (zh) * 2014-04-24 2014-07-16 东南大学 基于动态监控的Android应用程序风险评估方法
CN104281808A (zh) * 2014-09-25 2015-01-14 中国科学院信息工程研究所 一种通用的Android恶意行为检测方法
CN104598313A (zh) * 2015-02-04 2015-05-06 广州市久邦数码科技有限公司 一种应用进程被停止后自动重启的实现方法及其系统

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108038006A (zh) * 2017-11-14 2018-05-15 北京小鸟看看科技有限公司 头戴显示设备的控制方法、设备及系统
CN111290949A (zh) * 2020-01-21 2020-06-16 上海悦易网络信息技术有限公司 一种进程守护方法及设备
CN114077519A (zh) * 2020-08-21 2022-02-22 荣耀终端有限公司 一种系统服务恢复方法、装置和电子设备

Also Published As

Publication number Publication date
CN106708641B (zh) 2018-09-04

Similar Documents

Publication Publication Date Title
CN103942113B (zh) 系统重启原因的检测方法、装置及终端设备
CN104519485B (zh) 一种终端之间的通信方法、装置和系统
CN103389863B (zh) 一种显示控制方法和装置
CN104618217B (zh) 分享资源的方法、终端、服务器及系统
CN104427074B (zh) 一种显示来电信息的方法、装置和系统
CN103365419B (zh) 一种触发闹钟控制指令的方法和装置
CN108701043A (zh) 一种显示的处理方法及装置
CN105871694B (zh) 即时通信业务处理方法及装置
CN103310009B (zh) 一种更新网页数据的方法、装置和终端设备
CN106527949B (zh) 一种指纹解锁方法、装置和终端
CN104915091B (zh) 一种显示状态栏提示信息的方法和装置
CN105912919B (zh) 一种指纹解锁方法及终端
CN103455603A (zh) 网页内容缓存、网页加载方法、装置及终端设备
CN103631625B (zh) 一种数据获取的方法、用户端、服务器及系统
CN106874077A (zh) 进程运行方法及装置
CN106775833A (zh) 设备驱动程序加载方法、终端及系统
CN106131930A (zh) 一种WiFi网络接入控制方法、装置和终端
CN104424431A (zh) 一种重置虚拟机用户登陆密码的方法及装置
CN104104656B (zh) 找回帐号的方法及装置
CN107786424A (zh) 音视频通信方法、终端及服务器
CN106708641A (zh) 进程守护方法及装置
CN106789307B (zh) 配置数据处理方法、装置及系统
CN103533139B (zh) 多卡用户的数据管理方法、装置及移动终端
CN105553718B (zh) 引导信息显示方法及装置
CN105721282B (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