CN113448695A - 一种实现进程持续存在的方法、装置、电子设备和介质 - Google Patents

一种实现进程持续存在的方法、装置、电子设备和介质 Download PDF

Info

Publication number
CN113448695A
CN113448695A CN202010213718.4A CN202010213718A CN113448695A CN 113448695 A CN113448695 A CN 113448695A CN 202010213718 A CN202010213718 A CN 202010213718A CN 113448695 A CN113448695 A CN 113448695A
Authority
CN
China
Prior art keywords
killed
group
application
service
processes
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.)
Pending
Application number
CN202010213718.4A
Other languages
English (en)
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.)
Baidu Online Network Technology Beijing Co Ltd
Original Assignee
Baidu Online Network Technology Beijing 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 Baidu Online Network Technology Beijing Co Ltd filed Critical Baidu Online Network Technology Beijing Co Ltd
Priority to CN202010213718.4A priority Critical patent/CN113448695A/zh
Publication of CN113448695A publication Critical patent/CN113448695A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/485Task life-cycle, e.g. stopping, restarting, resuming execution

Abstract

本申请实施例公开了一种实现进程持续存在的方法、装置、电子设备和介质,涉及基于操作系统的计算机进程处理技术领域。具体实现方案为:通过应用程序的两个父进程,分别创建两个子进程,以形成两个进程组;建立进程组间进程的交叉监听关系,所述交叉监听关系为一个进程组内的一个进程监听另一个进程组中的一个进程;当一个进程组的进程监听到另一进程组的进程被查杀时,重启被查杀的进程。能够实现提高进程保活的通用性和可靠性。

Description

一种实现进程持续存在的方法、装置、电子设备和介质
技术领域
本申请实施例涉及计算机技术,尤其涉及基于操作系统的计算机进程处理技术。
背景技术
Android操作系统为了保证操作系统运行的流畅性,在应用程序退出到后台运行时,会在某一个时机把后台应用的进程都杀死,这样就有可能会影响到一些应用程序的功能。例如,需要持续保活的安全应用程序、管理应用程序等,就无法持续为用户提供服务了。
现有技术提供了一些使得进程保活的方法,但是往往都是针对特定版本操作系统环境来实现的,通用性差,保活的可靠性差。
发明内容
本申请实施例提供一种实现进程持续存在的方法、装置、电子设备和介质,以提高进程保活的通用性和可靠性。
第一方面,本申请实施例公开了一种实现进程持续存在的方法,包括:
通过应用程序的两个父进程,分别创建两个子进程,以形成两个进程组;
建立进程组间进程的交叉监听关系,所述交叉监听关系为一个进程组内的一个进程监听另一个进程组中的一个进程;
当一个进程组的进程监听到另一进程组的进程被查杀时,重启被查杀的进程。
上述申请中的一个实施例具有如下优点或有益效果:通过为应用程序的父进程分别创建子进程,并且建立进程组间的交叉监听关系,以实现当任一进程组中的进程被查杀后,会被另一进程组的进程监听,从而实现重启被查杀的进程。通过两个进程组的四个进程之间交叉监听,保证进程不会被同时查杀,从而实现对查杀进程进行重启,提高进程保活的通用性和可靠性。
可选的,所述交叉监听关系具体为,一个进程组的父进程与另一个进程组的子进程相互进行交叉状态监听。
上述申请中的一个实施例具有如下优点或有益效果:建立一个进程组中的父进程与另一个进程组的子进程之间的相互交叉监听,避免同一进程组被同时查杀或同属于一个应用程序的两个父进程被同时查杀造成进程来不及恢复的问题,实现及时发现两组进程组中任一进程被查杀,提高对进程监听的效率。
可选的,所述父进程为应用进程,所述子进程为操作系统底层进程。
上述申请中的一个实施例具有如下优点或有益效果:通过将父进程和子进程设置为不同类型的进程,保证了同一进程组不会被同时查杀,起到了进程组间相互监听的效果,从而提高进程保活的通用性和可靠性。
可选的,所述操作系统底层进程为原生程序进程。
上述申请中的一个实施例具有如下优点或有益效果:由于原生程序进程被查杀的顺序在应用进程之后,因此将操作系统底层进程设置为原生程序进程时可以实现延缓进程组中子进程被查杀的时间,提高通过进程间监听发现进程被查杀的概率和准确率。
可选的,建立进程组间进程的交叉监听关系包括:
为设定文件建立单进程读权限,设置交叉监听关系的被监听进程处于针对所述设定文件的读状态,设置交叉监听关系的监听进程处于针对所述设定文件的等待读状态。
上述申请中的一个实施例具有如下优点或有益效果:通过文件锁的方式实现进程间的监听,实现当设定文件被监听进程读取,则表明被监听进程被查杀,提高了对被监听进程查杀发现的及时性,以便在短时间内重启该进程。
可选的,当一个进程组的进程监听到另一进程组的进程被查杀时,重启被查杀的进程包括:
当一个进程组的进程监听到另一进程组的进程被查杀时,通过访问被查杀进程中的服务来重启进程。
上述申请中的一个实施例具有如下优点或有益效果:由于进程组间的进程不被同时查杀的时间很短,因此若直接重启进程会影响重启效率,因此通过访问被查杀进程中的服务来实现重启进程的效果,可以实现在短时间内重启进程,提高对进程重启的效率。
可选的,当一个进程组的进程监听到另一进程组的进程被查杀时,重启被查杀的进程包括:
当一个进程组中的操作系统底层进程监听到另一进程组的应用进程被查杀时,则通过共享内存方式传输重启服务所需的服务数据,以启动被查杀的应用进程。
上述申请中的一个实施例具有如下优点或有益效果:通过共享内存方式传输重启服务所需的服务数据,减少了重启应用进程过程中服务数据传输的时间,提高重启被查杀的应用进程的效率。
可选的,通过共享内存方式传输重启服务所需的服务数据,以启动被查杀的应用进程包括:
所述操作系统底层进程将所述服务数据存储于内存;
所述操作系统底层进程,通过系统服务的本地代理将所述服务数据发送给待重启的服务,以进行服务启动;
如果所述服务所在进程被查杀,则在重启所述进程后启动所述服务。
上述申请中的一个实施例具有如下优点或有益效果:在进程被查杀前,将重启进程所需的服务数据存储在内存中,并且可以直接通过操作系统底层进程实现对服务的重启,进而实现进程重启,提高了进程重启的速度,避免因服务数据传输耗时长造成进程重启失败。
可选的,通过共享内存方式传输重启服务所需的服务数据之前,还包括:
所述操作系统底层进程,根据创建时获得的服务数据文件路径,读取服务数据文件;
所述操作系统底层进程从所述服务数据文件中读取所述服务数据。
上述申请中的一个实施例具有如下优点或有益效果:操作系统底层进程可以根据预先确定的服务数据文件路径读取服务数据文件,进而从中读取重启服务所需的服务数据,为操作系统底层进程可以直接重启应用进程提供基础。
可选的,所述方法还包括:
通过所述应用程序调用操作系统的intent函数,以获取启动服务所需的服务数据,并存储于所述服务数据文件。
上述申请中的一个实施例具有如下优点或有益效果:应用程序预先准备启动服务所需的服务数据,并将其存储在服务数据文件中,以提供给操作系统底层进程,实现操作系统底层进程对应用进程服务的重启,进而实现对应用进程的重启,避免了操作系统底层进程临时获取服务数据造成的耗时,影响服务启动。
可选的,当一个进程组的进程监听到另一进程组的进程被查杀时,重启被查杀的进程包括:
当一个进程组中的应用进程监听到另一进程组的操作系统底层进程被查杀时,则通知另一进程组的应用进程,重新创建另一进程组中的操作系统底层进程。
上述申请中的一个实施例具有如下优点或有益效果:通过一个进程组的应用进程对另一进程组的操作系统底层进程的监听,实现对操作系统底层进程被查杀时发现的及时性,当应用进程监听到操作系统底层进程被查杀时,通过其对应的应用进程重新创建操作系统底层进程,以便实现进程组间的交叉监听,提高监听效率和准确性。
可选的,所述应用程序为安全防护类应用程序、资源管理类应用程序或消息通信类应用程序。
上述申请中的一个实施例具有如下优点或有益效果:通过对安全防护类应用程序、资源管理类应用程序或消息通信类应用程序中的进程实现持续存在,则实现该应用程序所具备功能的持续存在,进而可以实现对用户设备安全性的保证以及消息通信的实时性,提高用户的使用体验感。
第二方面,本申请实施例公开了一种实现进程持续存在的装置,包括:
进程组形成模块,用于通过应用程序的两个父进程,分别创建两个子进程,以形成两个进程组;
交叉监听关系建立模块,用于建立进程组间进程的交叉监听关系,所述交叉监听关系为一个进程组内的一个进程监听另一个进程组中的一个进程;
查杀进程重启模块,用于当一个进程组的进程监听到另一进程组的进程被查杀时,重启被查杀的进程。
第三方面,本申请实施例公开了一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如本申请任一实施例所述的方法。
第四方面,本申请实施例公开了一种存储有计算机指令的非瞬时计算机可读存储介质,所述计算机指令用于使所述计算机执行如本申请任一实施例所述的方法。
上述可选方式所具有的其他效果将在下文中结合具体实施例加以说明。
附图说明
附图用于更好地理解本方案,不构成对本申请的限定。其中:
图1是根据本申请第一实施例提供的一种实现进程持续存在的方法的流程示意图;
图2A是根据本申请第二实施例提供的一种实现进程持续存在的方法的流程示意图;
图2B是本申请实施例中进程组间进程的交叉监听关系示意图;
图3是根据本申请第三实施例提供的一种实现进程持续存在的方法的流程示意图;
图4是根据本申请第四实施例提供的一种实现进程持续存在的方法的流程示意图;
图5是根据本申请第五实施例提供的一种实现进程持续存在的装置的结构示意图;
图6是用来实现本申请第六实施例的实现进程持续存在的方法的电子设备的框图。
具体实施方式
以下结合附图对本申请的示范性实施例做出说明,其中包括本申请实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本申请的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
第一实施例
图1是根据本申请第一实施例提供的一种实现进程持续存在的方法的流程示意图,本实施例适用于保证应用程序持续存在的情况,也称为进程保活。该方法可以由实现进程持续存在的装置来执行,该装置可以采用软件和/或硬件的方式实现,并可集成于服务端中。如图1所示,本实施例提供的实现进程持续存在的方法可以包括:
S110、通过应用程序的两个父进程,分别创建两个子进程,以形成两个进程组。
其中,应用程序是指需要持续存在的应用程序,该类应用程序若被查杀后会影响用户的正常使用。尤其是有些应用程序需要转入后台运行时,可能由于操作系统的内存管理机制而将后台运行的进程进行查杀。可选的,应用程序为安全防护类应用程序、资源管理类应用程序或消息通信类应用程序。安全防护类应用程序如百度电视助手或者腾讯管家等,一旦这些应用程序被查杀,会失去保护系统的能力,此时一些风险行为比如说恶意应用程序的安装会危害到系统安全。再例如消息通信类应用程序如微信等,一旦被查杀,则用户将无法及时收到信息,影响用户的体验感。资源管理类应用程序是指对终端运行中的存储资源、软件资源进行管理和监控的程序。
进程是指应用程序在运行过程中进行业务处理所创建的运行活动,进程是应用程序运行的基本单位。一个应用程序可以同时启动多个进程。例如对于浏览器程序,每打开一个浏览器窗口,就启动了一个新的进程。对于一个应用程序可以将其创建的多个进程作为父进程。子进程是指由另一个进程所创建的进程,创建新进程的进程即为父进程,子进程继承了对应的父进程的大部分属性。父进程和子进程具备监听并能够启动其他应用功能的能力。示例性的,对于子进程通常为系统调用fork()函数进行创建的产物,子进程是执行父进程的fork函数后的程序代码。进程组是指由父进程和其创建的子进程构成的集合。
示例性的,将应用程序正在运行的两个进程P1和P2作为父进程,采用fork函数的方式分别创建对应的两个子进程NP1和NP2,并形成两个进程组,分别是P1和NP1形成的第一进程组,以及P2和NP2形成的第二进程组。
S120、建立进程组间进程的交叉监听关系,交叉监听关系为一个进程组内的一个进程监听另一个进程组中的一个进程。
其中,交叉监听关系可以是单向监听或者双向监听,或者为在父进程之间建立监听关系和在子进程间建立监听关系。以实现通过一个进程组的进程可以监听另一个进程组的进程的目的。
示例性的,在上述示例的基础上,建立第一进程组和第二进程组之间的交叉监听关系,例如交叉监听关系可以是P1和P2之间的单向监听,NP1和NP2之间的单向监听;或者P1和NP2之间的单向监听,P2和NP1之间的单向监听;或者P1和P2之间的双向监听,NP1和NP2之间的双向向监听;或者P1和NP2之间的双向监听,P2和NP1之间的双向监听。在此基础上,通过两个进程组之间的交叉监听实现监听效果均在本申请的保护范围内,在此不做赘述。
在安卓5.0版本的系统中,系统在对一个进程进行查杀时,还会对同一进程组的进程进行查杀,即查杀进程组是同步进行的,例如,在对进程P1进行查杀时,先杀死P1,接着再去找P1所属的进程组,将进程组里面的其他进程逐一杀死,这个过程是同步进行的,杀死完后才会去杀死P2进程。而在安卓7.0版本后的系统中,杀死P1进程和P1进程组变成了异步,也就是说,杀死了P1进程,接着杀死P1进程组的时候变成了异步,这个时候不必等P1进程组杀死完,直接就开始杀死P2进程,这个过程是非常短暂的。采用四个进程交叉监听可以实现给重启进程预留更多的时间,提高进程重启的成功率。通过进程组间进程的交叉监听避免同一进程组被同时查杀或同属于一个应用程序的两个父进程被同时查杀造成进程来不及恢复的问题,实现及时发现两组进程组中任一进程被查杀,提高对进程监听的效率。
S130、当一个进程组的进程监听到另一进程组的进程被查杀时,重启被查杀的进程。
进程组间的监听可以采用循环执行定时任务的方式,当监听任务执行失败后,表示监听的进程监听到被监听的进程被查杀了,此时对被查杀的进程进行恢复,恢复后继续保持监听状态或者被监听状态。
根据本申请实施例的技术方案,通过为应用程序的父进程分别创建子进程,并且建立进程组间的交叉监听关系,以实现当任一进程组中的进程被查杀后,会被另一进程组的进程监听,从而实现重启被查杀的进程。通过两个进程组的四个进程之间交叉监听,保证进程不会被同时查杀,从而实现对查杀进程进行重启,提高进程保活的通用性和可靠性。
第二实施例
图2A是本申请实施例二中的一种实现进程持续存在的方法的流程图,本申请实施例在上述各实施例的技术方案的基础上进行优化。
可选的,将操作“交叉监听关系为一个进程组内的一个进程监听另一个进程组中的一个进程”细化为“交叉监听关系具体为,一个进程组的父进程与另一个进程组的子进程相互进行交叉状态监听”,避免出现进程组被同时查杀重启不及时的现象。
可选的,将操作“当一个进程组的进程监听到另一进程组的进程被查杀时,重启被查杀的进程”细化为“当一个进程组的进程监听到另一进程组的进程被查杀时,通过访问被查杀进程中的服务来重启进程”,实现在短时间内重启进程,提高对进程重启的效率。
如图2A所示的一种实现进程持续存在的方法,包括:
S210、通过应用程序的两个父进程,分别创建两个子进程,以形成两个进程组。
应用程序下的进程包括多种存在形态,例如存在与安卓系统下的应用进程,或者存在与Linux系统下的操作系统底层进程,对于应用进程采用混合代码进行表示,运行于虚拟机上,包括向用户展示的界面,不完全是C语言代码,非语言编写的代码部分具备访问API的功能;而操作系统底层进程是采用单一代码进行运行,不用产生用户界面,执行速度比应用进程更快。
可选的,父进程为应用进程,子进程为操作系统底层进程。将应用程序下的两个应用进程作为父进程,采用fork函数的方式分别创建对应的子进程,创建的子进程为操作系统底层进程。创建的子进程为操作系统底层进程有利于减少监听响应时间,提高对进程的重启效率。示例性的,在上述示例的基础上,即P1和P2进程为应用进程,NP1和NP2为操作系统底层进程。
更进一步的,可选的,操作系统底层进程为原生程序(Native)进程。Native进程为在Linux系统下创建的纯Linux进程,其与应用进程的区别为纯C语言代码,运行与设备的用户空间,不产生用户界面。且Native进程被操作系统查杀的顺序在应用进程之后,因此Native进程通过同属于进程组的情况而被安卓系统查杀的过程时间比应用进程要长,给进程间监听和恢复重启预留了时间,更好地实现监听的效果。示例性的,在上述示例的基础上,P1和P2进程为应用进程,NP1和NP2为Native进程。
S220、建立进程组间进程的交叉监听关系,交叉监听关系具体为,一个进程组的父进程与另一个进程组的子进程相互进行交叉状态监听。
进一步,将进程组间进程的交叉监听关系设置为一个进程组的父进程与另一个进程组的子进程之间的双向监听,示例性的,如图2B所示为进程组间进程的交叉监听关系示意图,P1进程和P2进程为应用程序在安卓系统下的两个进程,NP1和NP2分别为P1进程和P2进程通过fork函数在Linux系统下创建的子进程,且在P1和NP2之间建立双向监听关系,以及在P2和NP1之间建立双向监听关系。
在安卓7.0版本以上的系统中,NP1和NP2被查杀的速度会小于P1和P2,这就给NP1和NP2重新启动其父进程预留了更多的时间,一旦P1被杀死,由于杀死进程组是异步的,NP2还不会马上被杀死,NP2监听到P1被查杀后,直接去重启P1进程,P2同理。避免了只使用两个进程相互监听的情况下,如进程组间相互监听或者父进程之间相互监听,出现P1被杀死后,P2即便监听到也来不及重新启动P1也在短时间内被查杀。基于此,四个进程不会在短时间内被同时查杀,因此采用进程组间的相互监听提高了进程被查杀后可以被重启的成功率。
可选的,建立进程组间进程的交叉监听关系包括:为设定文件建立单进程读权限,设置交叉监听关系的被监听进程处于针对设定文件的读状态,设置交叉监听关系的监听进程处于针对设定文件的等待读状态。
单进程读权限是指为设定文件设置只允许一个进程对其进行读取的状态,可以通过修改文件属性进行设置。
具体的,新建一个文件或者选取一个可以修改权限属性而不影响其功能正常使用的文件作为设定文件,为该设定文件设置单进程读权限,并且保持被监听的进程处于对该设定文件的读状态,即实现被监听进程占用此文件的读权限,在此时,处于对该设定文件的等待读状态的监听进程若读取该文件,会处于堵塞状态。在任一时刻,若监听进程读取该设定文件成功,则表示被监听进程不再读取该文件,被监听进程已经被查杀,不再占用该文件的读取权限。通过这种文件锁的方式可以实现监听进程对被监听进程的实时监听。
示例性的,当P1和NP2处于相互监听状态,则设置设定文件1的单进程读权限为:P1处于对设定文件1的读状态,NP2处于对设定文件1的等待读状态;同时设置设定文件2的单进程读权限:NP2处于对设定文件1的读状态,P1处于对设定文件1的等待读状态。同理对于处于相互监听状态的P2和NP1也可以通过设置设定文件3和设定文件4的单进程读权限实现相互监听。
S230、当一个进程组的进程监听到另一进程组的进程被查杀时,通过访问被查杀进程中的服务来重启进程。
进程中的服务是指为进程正常运行提供特定功能需求的命令。当某服务启动时,其所属的进程也会随之启动。对于应用程序下的进程可以配置有一个或多个服务,当有外部请求启动该服务时就需要首先启动该进程。并且对于父进程和子进程其同属于一个应用程序,因此具备相同的使用标识。并且父进程和子进程均至少具备监听并能够启动其他进程的能力。
示例性的,在上述示例的基础上,当处于相互监听状态的NP2读取到设定文件1,则表示P1进程已经被查杀,则NP2进程直接访问P1进程的任一服务,进而实现了对P1进程的重启。更进一步的当NP进程为Native进程时,NP进程直接在Native层中传输服务数据并访问服务,重启速度更快。
根据本申请实施例的技术方案,通过一个进程组中的父进程与另一个进程组的子进程之间的相互交叉监听,避免同一进程组被同时查杀或同属于一个应用程序的两个父进程被同时查杀造成进程来不及恢复的问题,实现及时发现两组进程组中任一进程被查杀,提高对进程监听的效率;并且通过文件锁的方式实现进程间的监听,实现当设定文件被监听进程读取,则表明被监听进程被查杀,提高了对被监听进程查杀发现的及时性,以便在短时间内重启该进程,进而提高进程保活的概率。
第三实施例
图3是本申请实施例三中的一种实现进程持续存在的方法的流程图,本申请实施例在上述各实施例的技术方案的基础上进行优化。
可选的,将操作“通过应用程序的两个父进程,分别创建两个子进程,以形成两个进程组”细化为“通过应用程序的两个父进程,分别创建两个子进程,以形成两个进程组;其中,父进程为应用进程,子进程为操作系统底层进程”,保证同一进程组不会被同时查杀,起到了进程组间相互监听的效果。
可选的,将操作“当一个进程组的进程监听到另一进程组的进程被查杀时,重启被查杀的进程”细化为“当一个进程组中的操作系统底层进程监听到另一进程组的应用进程被查杀时,则通过共享内存方式传输重启服务所需的服务数据,以启动被查杀的应用进程”,减少了重启应用进程过程中服务数据传输的时间,提高重启被查杀的应用进程的效率。
如图3所示的一种实现进程持续存在的方法,包括:
S310、通过应用程序的两个父进程,分别创建两个子进程,以形成两个进程组;其中,父进程为应用进程,子进程为操作系统底层进程。
S320、建立进程组间进程的交叉监听关系,交叉监听关系具体为,一个进程组的父进程与另一个进程组的子进程相互进行交叉状态监听。
S330、当一个进程组中的操作系统底层进程监听到另一进程组的应用进程被查杀时,则通过共享内存方式传输重启服务所需的服务数据,以启动被查杀的应用进程。
共享内存方式是指操作系统底层进程可以直接访问应用进程所提供的内存,该内存用于存储重启应用进程中的服务所需的服务数据。
对于进程的重新启动通过是调用安卓系统提供的接口进行启动,而启动的原理是通过接口的Binder机制实现类将要启动的服务信息发送给远程的系统服务接口定义方法的真正实现类来完成,即调用系统接口后需要完成装载和发送数据的过程。如果从操作系统底层进程回调到应用进程所在的安卓层去启动相应的服务,耗时很大,影响对应用进程的重启。
因此采用共享内存方式传输重启服务所需的服务数据,即操作系统底层进程可以通过共享内存方式直接获取到应用进程中服务的服务数据,实现从操作系统底层实现启动应用进程。示例性的,应用进程预先将重启服务相关的服务数据准备好,通过共享内存方式进行传输,一旦一个进程组中的操作系统底层进程监听到另一进程组的应用进程被查杀时,即NP2进程监听到P1进程被查杀时,直接将服务数据传输给操作系统底层进程,操作系统底层进程将数据发送至系统服务实现对该服务的访问,进而实现应用进程的重启,减少了重启过程中调用系统接口对进程重启需要对服务数据进行装载的时间,提高重启效率。
可选的,通过共享内存方式传输重启服务所需的服务数据,以启动被查杀的应用进程包括:
操作系统底层进程将服务数据存储于内存;操作系统底层进程,通过系统服务的本地代理将服务数据发送给待重启的服务,以进行服务启动;如果服务所在进程被查杀,则在重启进程后启动服务。
服务数据是指操作系统底层进程所监听的应用进程中的服务启动所需的数据,如服务名称等。系统服务的本地代理是指操作系统底层进程可以跨越内核空间与实现在用户空间的系统服务进行数据交互。
示例性的,NP2进程直接将P1进程的服务数据存储在内存中,并且NP2进程通过进程管理守护(ServiceManager)拿到系统服务(ActivityManagerService)的本地代理,通过这个代理把数据发送给系统服务ActivityManagerService,让ActivityManagerService去启动服务数据对应的服务,若该服务所在的进程被查杀,则会首先启动服务所属的进程P1,由此达到了重启进程P1的效果。
可选的,通过共享内存方式传输重启服务所需的服务数据之前,还包括:
操作系统底层进程,根据创建时获得的服务数据文件路径,读取服务数据文件;操作系统底层进程从服务数据文件中读取服务数据。
服务数据文件路径是指存放了应用进程中服务的数据的路径,从该路径中可以获取该服务数据文件,服务数据文件中记录了访问服务所需的数据以及其数据对应的顺序。
服务数据文件路径为应用系统在创建其子进程操作系统底层进程时提供的,操作系统底层进程可以访问该路径获取其监听进程服务对应的服务数据。示例性的,P1进程在创建NP1进程时,将P1进程的服务数据文件路径通过共享内存方式传输,则NP2进程可以通过该共享内存获取P1进程的服务数据文件路径,实现对P1进程中服务的访问,进而实现对P1进程的重启。P2进程同理。
可选的,还包括:通过应用程序调用操作系统的intent函数,以获取启动服务所需的服务数据,并存储于服务数据文件。
intent函数包括了intent模板,intent模板用于在启动某服务时传入所需数据,即启动P进程中至少一个服务的所需数据,通过调用intent函数来确定该服务的启动所需数据,保存在服务数据文件中。文件可以保存形成的txt文件以供读取。
示例性的,P进程创建NP进程时,即通过fork函数,传入intent函数所在文件的路径,通过查询文件中的intent数据可获得创建进程所需数据(如服务名称等参数)。由于NP进程重启P进程所需的服务数据是在fork时通过intent函数预先准备好的,因此被查杀的P进程被重启的速度更快。
由于安卓原生开发工具包依赖库不包含相关的Binder库,所以相关的程序需要放在系统源码下编译,编译成一个ETF可执行文件,交给fork出来的操作系统底层进程执行。除此之外,应用进程的服务数据装载过程的数据及写入顺序都是固定的,但对于不同系统、不同设备厂商,这个数据及顺序都是有可能被更改的,一旦服务数据或者顺序不对,那么系统服务侧接收到的信息不符,在读取和校验过程中会失败,导致访问服务失败。如果要对服务数据顺序进行逐一适配,会带来很大的工作量,而且在一些手机厂商源码非公开的情况下,要去猜测服务系统写了哪些数据又是以怎样的顺序写入这几乎不可能。
因此,为了减小服务数据适配的工作量,采用操作系统的intent函数预先将应用进程的服务数据填充好,接着把intent函数获取到的数据存储在服务数据文件中。并且将该服务数据文件保存在服务数据文件路径里,以提供给操作系统底层进程,操作系统底层进程通过该服务数据文件路径获取到服务数据文件,并将文件中的服务数据读取出来,即完成了服务数据的装载过程。由于intent函数获取服务数据的方法取决于系统进行实现,无视于设备的差异;因此通过intent函数获取服务数据的方法,可以适配不同设备以及各种安卓操作系统的版本变化,提高了进程保活的通用性。
根据本申请实施例的技术方案,在重启应用进程时,通过共享内存方式传输重启服务所需的服务数据,减少了重启应用进程过程中服务数据传输的时间,提高重启被查杀的应用进程的效率;并且在进程被查杀前,将重启进程所需的服务数据存储在内存中,并且可以直接通过操作系统底层进程实现对服务的重启,进而实现进程重启,提高了进程重启的速度,避免因服务数据传输耗时长造成进程重启失败。
第四实施例
图4是本申请实施例四中的一种实现进程持续存在的方法的流程图,本申请实施例在上述各实施例的技术方案的基础上进行优化。
可选的,将操作“当一个进程组的进程监听到另一进程组的进程被查杀时,重启被查杀的进程”细化为“当一个进程组中的应用进程监听到另一进程组的操作系统底层进程被查杀时,则通知另一进程组的应用进程,重新创建另一进程组中的操作系统底层进程”,实现对操作系统底层进程被查杀时可以再次被创建,进而实现进程组间的交叉监听,提高监听效率和准确性。
如图4所示的一种实现进程持续存在的方法,包括:
S410、通过应用程序的两个父进程,分别创建两个子进程,以形成两个进程组;其中,父进程为应用进程,子进程为操作系统底层进程。
S420、建立进程组间进程的交叉监听关系,交叉监听关系具体为,一个进程组的父进程与另一个进程组的子进程相互进行交叉状态监听。
S430、当一个进程组中的应用进程监听到另一进程组的操作系统底层进程被查杀时,则通知另一进程组的应用进程,重新创建另一进程组中的操作系统底层进程。
由于操作系统底层进程是被应用进程所创建的,所以当操作系统底层进程被查杀时,仍然需要通过其父进程进行创建,例如采用fork方式进行创建。当处于相互监听状态中的一个进程组中的应用进程监听到另一进程组中的操作系统底层进程被查杀时,则采用进程间通信的方式通知该操作系统底层进程所在进程组的应用进程,重新创建一个子进程,继续保持原来交叉监听的状态。
示例性的,在上述示例的基础上,当NP2进程被查杀后,监听的P1进程采用进程间通信的方式通知P2进程,由P2进程重新fork一个新的NP2进程,创建出的NP2进程继续保存原来NP2进程的功能。
根据本申请实施例的技术方案和上述申请实施例的技术方案,通过两个进程组之间的双向监听,实现了当进程组中的任一进程被查杀,监听进程发现后,被查杀进程都可以被及时重启或者创建;当父进程被查杀后,可以被子进程通过访问服务的方式实现重启操作,当子进程被查杀后,可以被子进程对应的父进程重新创建,进而实现应用程序的进程守护
根据本申请实施例的技术方案,通过一个进程组的应用进程对另一进程组的操作系统底层进程的监听,实现对操作系统底层进程被查杀时发现的及时性,当应用进程监听到操作系统底层进程被查杀时,通过其对应的应用进程重新创建操作系统底层进程,以便实现进程组间的交叉监听,提高监听效率和准确性。
第五实施例
图5是本申请实施例五中的一种实现进程持续存在的装置的结构图,本实施例适用于保证应用程序持续存在的情况,该装置采用软件和/或硬件实现,并具体配置于具备一定数据运算能力的服务端中。
如图5所示的一种实现进程持续存在的装置500,包括:进程组形成模块51、交叉监听关系建立模块52和查杀进程重启模块53。
进程组形成模块51,用于通过应用程序的两个父进程,分别创建两个子进程,以形成两个进程组;
交叉监听关系建立模块52,用于建立进程组间进程的交叉监听关系,所述交叉监听关系为一个进程组内的一个进程监听另一个进程组中的一个进程;
查杀进程重启模块53,用于当一个进程组的进程监听到另一进程组的进程被查杀时,重启被查杀的进程。
根据本申请实施例的技术方案,通过为应用程序的父进程分别创建子进程,并且建立进程组间的交叉监听关系,以实现当任一进程组中的进程被查杀后,会被另一进程组的进程监听,从而实现重启被查杀的进程。通过两个进程组的四个进程之间交叉监听,保证进程不会被同时查杀,从而实现对查杀进程进行重启,提高进程保活的通用性和可靠性。
可选的,所述交叉监听关系具体为,一个进程组的父进程与另一个进程组的子进程相互进行交叉状态监听。
可选的,所述父进程为应用进程,所述子进程为操作系统底层进程。
可选的,所述操作系统底层进程为Native进程。
可选的,交叉监听关系建立模块52,具体用于:为设定文件建立单进程读权限,设置交叉监听关系的被监听进程处于针对所述设定文件的读状态,设置交叉监听关系的监听进程处于针对所述设定文件的等待读状态。
可选的,查杀进程重启模块53,具体用于:当一个进程组的进程监听到另一进程组的进程被查杀时,通过访问被查杀进程中的服务来重启进程。
可选的,查杀进程重启模块53,具体用于:当一个进程组中的操作系统底层进程监听到另一进程组的应用进程被查杀时,则通过共享内存方式传输重启服务所需的服务数据,以启动被查杀的应用进程。
可选的,查杀进程重启模块53中的通过共享内存方式传输重启服务所需的服务数据,以启动被查杀的应用进程部分,具体用于:所述操作系统底层进程将所述服务数据存储于内存;所述操作系统底层进程,通过系统服务的本地代理将所述服务数据发送给待重启的服务,以进行服务启动;如果所述服务所在进程被查杀,则在重启所述进程后启动所述服务。
可选的,所述装置还包括服务数据文件读取模块,具体用于:所述操作系统底层进程,根据创建时获得的服务数据文件路径,读取服务数据文件;所述操作系统底层进程从所述服务数据文件中读取所述服务数据。
可选的,所述装置还包括函数调用模块,具体用于:通过所述应用程序调用操作系统的intent函数,以获取启动服务所需的服务数据,并存储于所述服务数据文件。
可选的,查杀进程重启模块53,具体用于:当一个进程组中的应用进程监听到另一进程组的操作系统底层进程被查杀时,则通知另一进程组的应用进程,重新创建另一进程组中的操作系统底层进程。
可选的,所述应用程序为安全防护类应用程序、资源管理类应用程序或消息通信类应用程序。
上述实现进程持续存在的装置可执行本申请任意实施例所提供的实现进程持续存在的方法,具备执行实现进程持续存在的方法相应的功能模块和有益效果。
第六实施例
根据本申请的实施例,本申请还提供了一种电子设备和一种可读存储介质。
如图6所示,是根据本申请实施例的实现进程持续存在的方法的电子设备的框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴电子设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本申请的实现。
如图6所示,该电子设备包括:一个或多个处理器601、存储器602,以及用于连接各部件的接口,包括高速接口和低速接口。各个部件利用不同的总线互相连接,并且可以被安装在公共主板上或者根据需要以其它方式安装。处理器可以对在电子设备内执行的指令进行处理,包括存储在存储器中或者存储器上以在外部输入/输出装置(诸如,耦合至接口的显示电子设备)上显示GUI的图形信息的指令。在其它实施方式中,若需要,可以将多个处理器和/或多条总线与多个存储器和多个存储器一起使用。同样,可以连接多个电子设备,各个电子设备提供部分必要的操作(例如,作为服务器阵列、一组刀片式服务器、或者多处理器系统)。图6中以一个处理器601为例。
存储器602即为本申请所提供的非瞬时计算机可读存储介质。其中,所述存储器存储有可由至少一个处理器执行的指令,以使所述至少一个处理器执行本申请所提供的实现进程持续存在的方法。本申请的非瞬时计算机可读存储介质存储计算机指令,该计算机指令用于使计算机执行本申请所提供的实现进程持续存在的方法。
存储器602作为一种非瞬时计算机可读存储介质,可用于存储非瞬时软件程序、非瞬时计算机可执行程序以及模块,如本申请实施例中的实现进程持续存在的方法对应的程序指令/模块(例如,附图5所示的进程组形成模块51、交叉监听关系建立模块52和查杀进程重启模块53)。处理器601通过运行存储在存储器602中的非瞬时软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例中的实现进程持续存在的方法。
存储器602可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据实现进程持续存在的的电子设备的使用所创建的数据等。此外,存储器602可以包括高速随机存取存储器,还可以包括非瞬时存储器,例如至少一个磁盘存储器件、闪存器件、或其他非瞬时固态存储器件。在一些实施例中,存储器602可选包括相对于处理器601远程设置的存储器,这些远程存储器可以通过网络连接至实现进程持续存在的的电子设备。上述网络的实例包括但不限于互联网、企业内部网、区块链网络、局域网、移动通信网及其组合。
实现进程持续存在的方法的电子设备还可以包括:输入装置603和输出装置604。处理器601、存储器602、输入装置603和输出装置604可以通过总线或者其他方式连接,图6中以通过总线连接为例。
输入装置603可接收输入的数字或字符信息,以及产生与实现进程持续存在的电子设备的用户设置以及功能控制有关的键信号输入,例如触摸屏、小键盘、鼠标、轨迹板、触摸板、指示杆、一个或者多个鼠标按钮、轨迹球、操纵杆等输入装置。输出装置604可以包括显示电子设备、辅助照明装置(例如,LED)和触觉反馈装置(例如,振动电机)等。该显示电子设备可以包括但不限于,液晶显示器(LCD)、发光二极管(LED)显示器和等离子体显示器。在一些实施方式中,显示电子设备可以是触摸屏。
此处描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、专用ASIC(专用集成电路)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
这些计算程序(也称作程序、软件、软件应用、或者代码)包括可编程处理器的机器指令,并且可以利用高级过程和/或面向对象的编程语言、和/或汇编/机器语言来实施这些计算程序。如本文使用的,术语“机器可读介质”和“计算机可读介质”指的是用于将机器指令和/或数据提供给可编程处理器的任何计算机程序产品、电子设备、和/或装置(例如,磁盘、光盘、存储器、可编程逻辑装置(PLD)),包括,接收作为机器可读信号的机器指令的机器可读介质。术语“机器可读信号”指的是用于将机器指令和/或数据提供给可编程处理器的任何信号。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)、区块链网络和互联网。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。
根据本申请实施例的技术方案,通过为应用程序的父进程分别创建子进程,并且建立进程组间的交叉监听关系,以实现当任一进程组中的进程被查杀后,会被另一进程组的进程监听,从而实现重启被查杀的进程。通过两个进程组的四个进程之间交叉监听,保证进程不会被同时查杀,从而实现对查杀进程进行重启,提高进程保活的通用性和可靠性。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本申请中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本申请公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本申请保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本申请的精神和原则之内所作的修改、等同替换和改进等,均应包含在本申请保护范围之内。

Claims (15)

1.一种实现进程持续存在的方法,其特征在于,包括:
通过应用程序的两个父进程,分别创建两个子进程,以形成两个进程组;
建立进程组间进程的交叉监听关系,所述交叉监听关系为一个进程组内的一个进程监听另一个进程组中的一个进程;
当一个进程组的进程监听到另一进程组的进程被查杀时,重启被查杀的进程。
2.根据权利要求1所述的方法,其特征在于,所述交叉监听关系具体为,一个进程组的父进程与另一个进程组的子进程相互进行交叉状态监听。
3.根据权利要求1所述的方法,其特征在于,所述父进程为应用进程,所述子进程为操作系统底层进程。
4.根据权利要求3所述的方法,其特征在于,所述操作系统底层进程为原生程序进程。
5.根据权利要求1所述的方法,其特征在于,建立进程组间进程的交叉监听关系包括:
为设定文件建立单进程读权限,设置交叉监听关系的被监听进程处于针对所述设定文件的读状态,设置交叉监听关系的监听进程处于针对所述设定文件的等待读状态。
6.根据权利要求3所述的方法,其特征在于,当一个进程组的进程监听到另一进程组的进程被查杀时,重启被查杀的进程包括:
当一个进程组的进程监听到另一进程组的进程被查杀时,通过访问被查杀进程中的服务来重启进程。
7.根据权利要求6所述的方法,其特征在于,当一个进程组的进程监听到另一进程组的进程被查杀时,重启被查杀的进程包括:
当一个进程组中的操作系统底层进程监听到另一进程组的应用进程被查杀时,则通过共享内存方式传输重启服务所需的服务数据,以启动被查杀的应用进程。
8.根据权利要求7所述的方法,其特征在于,通过共享内存方式传输重启服务所需的服务数据,以启动被查杀的应用进程包括:
所述操作系统底层进程将所述服务数据存储于内存;
所述操作系统底层进程,通过系统服务的本地代理将所述服务数据发送给待重启的服务,以进行服务启动;
如果所述服务所在进程被查杀,则在重启所述进程后启动所述服务。
9.根据权利要求7或8所述的方法,其特征在于,通过共享内存方式传输重启服务所需的服务数据之前,还包括:
所述操作系统底层进程,根据创建时获得的服务数据文件路径,读取服务数据文件;
所述操作系统底层进程从所述服务数据文件中读取所述服务数据。
10.根据权利要求9所述的方法,其特征在于,还包括:
通过所述应用程序调用操作系统的intent函数,以获取启动服务所需的服务数据,并存储于所述服务数据文件。
11.根据权利要求6所述的方法,其特征在于,当一个进程组的进程监听到另一进程组的进程被查杀时,重启被查杀的进程包括:
当一个进程组中的应用进程监听到另一进程组的操作系统底层进程被查杀时,则通知另一进程组的应用进程,重新创建另一进程组中的操作系统底层进程。
12.根据权利要求1所述的方法,其特征在于,所述应用程序为安全防护类应用程序、资源管理类应用程序或消息通信类应用程序。
13.一种实现进程持续存在的装置,其特征在于,包括:
进程组形成模块,用于通过应用程序的两个父进程,分别创建两个子进程,以形成两个进程组;
交叉监听关系建立模块,用于建立进程组间进程的交叉监听关系,所述交叉监听关系为一个进程组内的一个进程监听另一个进程组中的一个进程;
查杀进程重启模块,用于当一个进程组的进程监听到另一进程组的进程被查杀时,重启被查杀的进程。
14.一种电子设备,其特征在于,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-12中任一项所述的实现进程持续存在的方法。
15.一种存储有计算机指令的非瞬时计算机可读存储介质,其特征在于,所述计算机指令用于使所述计算机执行权利要求1-12中任一项所述的实现进程持续存在的方法。
CN202010213718.4A 2020-03-24 2020-03-24 一种实现进程持续存在的方法、装置、电子设备和介质 Pending CN113448695A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010213718.4A CN113448695A (zh) 2020-03-24 2020-03-24 一种实现进程持续存在的方法、装置、电子设备和介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010213718.4A CN113448695A (zh) 2020-03-24 2020-03-24 一种实现进程持续存在的方法、装置、电子设备和介质

Publications (1)

Publication Number Publication Date
CN113448695A true CN113448695A (zh) 2021-09-28

Family

ID=77806466

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010213718.4A Pending CN113448695A (zh) 2020-03-24 2020-03-24 一种实现进程持续存在的方法、装置、电子设备和介质

Country Status (1)

Country Link
CN (1) CN113448695A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115220993A (zh) * 2022-04-20 2022-10-21 广州汽车集团股份有限公司 进程监控方法、装置、车辆及存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106648863A (zh) * 2016-12-08 2017-05-10 武汉斗鱼网络科技有限公司 一种安卓应用安装包、应用目标进程保活方法及系统
CN109669838A (zh) * 2018-11-14 2019-04-23 百度在线网络技术(北京)有限公司 实现应用常驻的方法、装置、计算机设备及存储介质

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106648863A (zh) * 2016-12-08 2017-05-10 武汉斗鱼网络科技有限公司 一种安卓应用安装包、应用目标进程保活方法及系统
CN109669838A (zh) * 2018-11-14 2019-04-23 百度在线网络技术(北京)有限公司 实现应用常驻的方法、装置、计算机设备及存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
赵启朋: "《Android典型技术模块开发详解》", 31 August 2012, 中国铁道出版社, pages: 88 - 89 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115220993A (zh) * 2022-04-20 2022-10-21 广州汽车集团股份有限公司 进程监控方法、装置、车辆及存储介质
CN115220993B (zh) * 2022-04-20 2024-03-12 广州汽车集团股份有限公司 进程监控方法、装置、车辆及存储介质

Similar Documents

Publication Publication Date Title
CN109976667B (zh) 一种镜像管理方法、装置及系统
JP7167222B2 (ja) アプレットデータの取得方法、装置、機器及び記憶媒体
US11663037B2 (en) Service information processing method, apparatus, device and computer storage medium
CN111694857B (zh) 存储资源数据的方法、装置、电子设备及计算机可读介质
US20150281035A1 (en) Monitoring of Node.JS Applications
US20210191780A1 (en) Method and apparatus for processing development machine operation task, device and storage medium
US11615159B2 (en) Data processing method for mini app, apparatus, device and medium
US11831735B2 (en) Method and device for processing mini program data
US11775309B2 (en) Exception stack handling method, system, electronic device and storage medium
US20190034285A1 (en) Asynchronous session storing
CN112286656A (zh) 小程序模拟方法、装置、电子设备和计算机可读存储介质
CN114089974A (zh) 云端代码开发系统、方法、装置、设备及存储介质
US10025646B2 (en) Naming of nodes in NET framework
CN111966471B (zh) 访问方法、装置、电子设备及计算机存储介质
CN113448695A (zh) 一种实现进程持续存在的方法、装置、电子设备和介质
CN113158098B (zh) 页面生成方法、装置、设备和介质
CN113238815A (zh) 一种接口访问控制方法、装置、设备及存储介质
CN112965799A (zh) 任务状态的提示方法、装置、电子设备和介质
CN111966877A (zh) 前端服务方法、装置、设备及存储介质
CN111506499B (zh) 一种小程序中参数可用性检测方法、装置以及电子设备
CN111835857B (zh) 用于访问数据的方法和装置
CN117609194A (zh) 云数据库的处理方法、装置、电子设备及存储介质
CN111258665A (zh) 一种服务器启动方法、装置、服务器和介质
CN117971872A (zh) 一种数据库查询方法、装置、设备及存储介质
CN111708644A (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