CN108710534A - 多进程的调起方法、装置、终端设备及计算机存储介质 - Google Patents

多进程的调起方法、装置、终端设备及计算机存储介质 Download PDF

Info

Publication number
CN108710534A
CN108710534A CN201810494582.1A CN201810494582A CN108710534A CN 108710534 A CN108710534 A CN 108710534A CN 201810494582 A CN201810494582 A CN 201810494582A CN 108710534 A CN108710534 A CN 108710534A
Authority
CN
China
Prior art keywords
service
primary api
android system
api
disconnected event
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
CN201810494582.1A
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.)
Alibaba China Co Ltd
Original Assignee
Guangzhou Youshi Network Technology 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 Guangzhou Youshi Network Technology Co Ltd filed Critical Guangzhou Youshi Network Technology Co Ltd
Priority to CN201810494582.1A priority Critical patent/CN108710534A/zh
Publication of CN108710534A publication Critical patent/CN108710534A/zh
Pending legal-status Critical Current

Links

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
    • 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/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

本发明涉及互联网技术领域,具体涉及一种多进程的调起方法、装置、终端设备及计算机存储介质,安卓***设置的原生API包括第一原生API和第二原生API,该安卓***上安装有多个应用程序,每个应用程序对应多个进程,每个进程上运行多个服务。该方法包括:第一服务监听与第一服务建立绑定关系的第二服务的连接断开事件,第一服务和第二服务位于同一应用的不同进程,当第二服务的连接断开事件被触发时,第一服务调用第一原生API启动第二服务,且安卓***将根据预先声明的服务与进程的对应关系,调起第二服务所在的进程。本方案中,服务之间的相互绑定,一方服务所在的进程被强杀,另一方服务都能快速响应,以保证能快速调起被强杀的服务所在的进程。

Description

多进程的调起方法、装置、终端设备及计算机存储介质
技术领域
本发明涉及互联网技术领域,具体而言,涉及一种多进程的调起方法、装置、终端设备及计算机存储介质。
背景技术
当手机或其他电子设备内存非常紧缺的时候,***将强杀手机上安装的应用的进程,并限制该进程再次启动,从而导致进程上运行的服务失败。因此对进程进行保活十分必要,能极大地提高用户的体验感。目前对进程保活的方式主要有三类,分别为:提高进程优先级,让***尽可能杀死优先级低的进程,但是当***内存越来越紧缺时,始终会轮到优先级高的进程;或注册***定时器或***账号同步器,让***定时调起对应的进程,但这种做法需要一段时间才能调起一次,不具有实时性,且针对部分***适用;或让其他进程采用轮询的方式监听对应的进程,当发现存在进程死亡时调起,但这种做法需不停查看对应的进程是否死亡,浪费***资源。由此,提供一种能够高效地调起进程的方法是十分必要的。
发明内容
本发明的目的在于提供一种多进程的调起方法,以使得进程在被***强杀后能迅速被调起启动服务,进而提升用户体验感。
本发明的另一目的在于提供一种多进程的调起装置,以使得进程在被***强杀后能迅速被调起启动服务,进而提升用户体验感。
本发明的另一目的在于提供一种终端设备,以使得进程在被***强杀后能迅速地被调起启动服务,进而提升用户体验感。
本发明的另一目的在于提供一种计算机存储介质,以使得进程在被***强杀后能迅速地被调起启动服务,进而提升用户体验感。
为了实现上述目的,本发明实施例采用的技术方案如下:
第一方面,本发明实施例提供了一种多进程的调起方法,应用于安卓***,所述安卓***设置的原生API包括第一原生API和第二原生API,所述安卓***上安装有多个应用程序,每个应用程序对应多个进程,每个进程上运行多个服务,所述方法包括:第一服务监听与第一服务建立绑定关系的第二服务的连接断开事件,所述第一服务和第二服务位于同一应用程序的不同进程;当所述第二服务的连接断开事件被触发时,所述第一服务调用所述第一原生API启动所述第二服务,且所述安卓***将根据预先声明的服务与进程的对应关系,调起所述第二服务所在的进程。
第二方面,本发明实施例还提供了一种多进程的调起装置,应用于安卓***,所述安卓***设置的原生API包括第一原生API和第二原生API,所述安卓***上安装有多个应用程序,每个应用程序对应多个进程,每个进程上运行多个服务,所述装置包括:第一监听模块,用于第一服务监听与第一服务建立绑定关系的第二服务的连接断开事件,所述第一服务和第二服务位于同一应用程序的不同进程;第一调用模块,用于当所述第二服务的连接断开事件被触发时,所述第一服务调用所述第一原生API启动所述第二服务,且所述安卓***将根据预先声明的服务与进程的对应关系,调起所述第二服务所在的进程。
第三方面,本发明实施例还提供了一种终端设备,所述终端设备上安装有安卓***,所述终端设备包括存储器和处理器,所述存储器用于存储计算机程序代码,所述处理器用于执行存储于所述存储器中的计算机程序代码,以实现所述的多进程的调起方法。
第四方面,本发明实施例还提供了一种计算机存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现所述的多进程的调起方法。
本发明实施例提供的一种多进程的调起方法、装置、终端设备及计算机存储介质,该多进程的调起方法应用于安卓***,该安卓***设置的原生API包括第一原生API和第二原生API,该安卓***上安装有多个应用程序,每个应用程序对应多个进程,每个进程上运行多个服务。该方法包括:第一服务监听与第一服务建立绑定关系的第二服务的连接断开事件,第一服务和第二服务位于同一应用的不同进程,当第二服务的连接断开事件被触发时,第一服务调用第一原生API启动第二服务,且安卓***将根据预先声明的服务与进程的对应关系,调起第二服务所在的进程。
由此可见,本方案中,将不同进程中的第一服务和第二服务建立绑定关系,以实现第一服务和第二服务的相互监督,若其中一个服务的连接断开事件被触发,则另一个服务将重新启动该服务并调起其所在的进程,以实现进程的保活。由于是服务之间的相互绑定和监督,使得一旦一方服务所在的进程被强杀,另一方服务都能快速响应,以保证能快速调起被强杀的服务所在的进程,提高用户体验感。
为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1示出了本发明实施例提供的一种终端设备的结构示意图。
图2示出了本发明实施例提供的一种多进程的调起方法的流程示意图。
图3示出了本发明实施例提供的另一种多进程的调起方法的流程示意图。
图4示出了本发明实施例提供的一种多进程的调起装置的功能模块示意图。
图示:100-终端设备;110-多进程的调起装置;120-存储器;130-存储控制器;140-处理器;150-外设接口;160-输入输出单元;170-音频单元;180-显示单元;111-触发模块;112-第一启动模块;113-第二启动模块;114-第一监听模块;115-第一调用模块;116-第一绑定模块;117-第二监听模块;118-第二调用模块;119-第二绑定模块。
具体实施方式
下面将结合本发明实施例中附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本发明的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
本发明实施例提供的一种多进程的调起方法应用于安卓***中,该安卓***中通常安装有多个应用程序,每个应用程序运行提供服务时,均需要进程为应用程序提供***资源,以使得应用程序能够正常运行为用户提供相关服务。但是在实际使用时,若电子设备,如手机,同时段打开了很多应用将导致手机内存不足,进而手机***为了保证部分重要的进程能够顺利运行,将强杀相对不重要的进程,如后台的下载进程。由于后台的下载进程相较于用于界面显示的进程,其优先级和重要程度更低,故在***资源有限的情况下,将会被优先强杀。由于进程被强杀后,***将限制该进程再次被自启动,故给用户带来了不好的用户体验。由此,本发明实施例提供一种多进程的调起方法,通过将各个进程的服务相互绑定,以实现进程之间的相互监督,以及时调起被***强杀的进程,及时恢复服务,进而提高用户的体验感。
本发明实施例提供的一种多进程的调起方法应用于终端设备,该终端设备上安装有安卓***,则容易理解的,该终端设备可以是,但不限于,平板电脑、智能手机等智能电子设备。请参照图1,是本发明实施例提供的一种终端设备100的结构示意图,该终端设备100包括多进程的调起装置110、存储器120、存储控制器130、处理器140、外设接口150、输入输出单元160、音频单元170以及显示单元180。
所述存储器120、存储控制器130、处理器140、外设接口150、输入输出单元160、音频单元170、显示单元180各元件相互之间直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件相互之间可通过一条或多条通讯总线或信号线实现电性连接。该多进程的调起装置110包括至少一个可以软件或固件(firmware)的形式存储于所述存储器120中或固化在所述终端设备100的操作***(operating system,OS)中的软件功能模块。所述处理器140用于执行存储器120中存储的可执行模块,例如所述多进程的调起装置110包括的软件功能模块或计算机程序。
其中,存储器120可以是,但不限于,随机存取存储器(Random Access Memory,RAM),只读存储器(Read Only Memory,ROM),可编程只读存储器(Programmable Read-OnlyMemory,PROM),可擦除只读存储器(Erasable Programmable Read-Only Memory,EPROM),电可擦除只读存储器(Electric Erasable Programmable Read-Only Memory,EEPROM)等。其中,存储器120用于存储程序,所述处理器140在接收到执行指令后,执行所述程序,本发明实施例任一实施例揭示的流过程定义的终端设备100所执行的方法可以应用于处理器140中,或者由处理器140实现。
处理器140可能是一种集成电路芯片,具有信号的处理能力。上述的处理器140可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器140也可以是任何常规的处理器140等。
所述外设接口150将各种输入/输出装置耦合至处理器140以及存储器120。在一些实施例中,外设接口150,处理器140以及存储控制器130可以在单个芯片中实现。在其他一些实例中,他们可以分别由独立的芯片实现。
输入输出单元160用于提供给用户输入数据实现用户与终端设备100的交互。所述输入输出单元160可以是,但不限于,鼠标和键盘等。
音频单元170向用户提供音频接口,其可包括一个或多个麦克风、一个或者多个扬声器以及音频电路。
显示单元180在终端设备100与用户之间提供一个交互界面(例如用户操作界面)或用于显示图像数据给用户参考。在本实施例中,所述显示单元180可以是液晶显示器或触控显示器。若为触控显示器,其可为支持单点和多点触控操作的电容式触控屏或电阻式触控屏等。支持单点和多点触控操作是指触控显示器能感应到来自该触控显示器上一个或多个位置处同时产生的触控操作,并将该感应到的触控操作交由处理器140进行计算和处理。
请参照图2,是本发明实施例提供的一种多进程的调起方法的流程示意图,该方法包括:
步骤S110,触发主进程。
具体为,该主进程为用于界面显示的进程,该触发手段一般有两种,响应用户的行为或安卓***的行为触发主进程。如当用户点击“pp助手”
这个应用程序的图标时,将会触发主进程,或是当安装有“pp助手”应用程序的终端设备由无网状态连接入网成为有网状态时,也将会触发主进程。
步骤S120,所述主进程调用所述第一原生API启动第一服务。
该第一原生API为安卓***提供的原生的应用程序接口startService,其中,API的全称为Application Program Interface,中文译文为应用程序接口。即是说,该主进程将调用startService启动第一服务。
步骤S130,所述第一服务调用所述第一原生API启动第二服务,且所述安卓***根据所述预先声明的服务与进程之间的映射关系调起所述第二服务所在的进程。
具体为,第一服务启动后,将调用第一原生API启动第二服务,需要说明的是,该第一服务和第二服务位于同一应用程序的不同进程中,以使得多个进程之间可以通过各自的服务进行绑定和监督。进而,该安卓***将根据预先声明的服务与进程之间的映射关系调起第二服务所在的进程,即是说,该服务将会事先声明所在的进程,则当第二服务启动后,该安卓***将随之调起第二服务所在的进程。
步骤S140,所述第一服务调用所述第二原生API绑定所述第二服务,并监听所述第二服务的连接断开事件。
其中,第二原生API为安卓***提供的原生的应用程序接口bindService。即是说,当第二服务启动后,该第一服务将调用该bindService绑定第二服务,在第一服务绑定第二服务时,将生成第二服务的“onServiceDisconnected”连接断开事件,于是,该第一服务还通过ServiceConnection接口对第二服务的连接断开事件进行监听。
步骤S150,当所述第二服务的连接断开事件被触发时,所述第一服务调用所述第一原生API启动所述第二服务,且所述安卓***将根据预先声明的服务与进程的对应关系,调起所述第二服务所在的进程。
具体为,当第二服务的连接断开事件被触发时,表明该第二服务所在的进程被***强杀,由于第一服务与第二服务已经建立了绑定关系,则第一服务将及时监听得到第二服务已经被强杀。进而,第一服务将重新调用第一原生API启动第二服务,该安卓***也将根据预先声明的服务与进程的对应关系,调起第二服务所在的进程,使得第二服务所在的进程恢复,第二服务得以正常运行,保证了用户体验。
由此可见,由于各个进程之间相互独立,故无法对进程进行绑定,但对各个进程的服务进行绑定,通过对服务状态的监督,达到了对各个进程状态的监督,以当其中一个进程被强杀时,另一个进程上的服务能迅速对绑定的服务进行“拯救”。
步骤S160,所述第一服务调用所述第二原生API重新绑定所述第二服务,并重新监听所述第二服务的连接断开事件。
为了保证第一服务和第二服务的长期监督,当第二服务所在的进程被强杀,第一服务通过启动第二服务,从而使安卓***调起第二服务所在的进程后,第一服务还应当重新绑定第二服务,以对第二服务的后续状态继续监测。具体为,该第一服务调用第二原生API重新绑定第二服务,并通过ServiceConnection接口监听第二服务的“onServiceDisconnected”连接断开事件。
除了第一服务可以对第二服务进行绑定和监听外,第二服务也可以对第一服务进行绑定和监听,以实现第一服务和第二服务之间的双向监督。该第二服务对第一服务进行绑定和监听是在第一服务启动第二服务后执行,具体请参照图3,是本发明实施例提供的另一种多进程的调起方法的流程示意图,该方法包括:
步骤S210,触发主进程。
具体为,该主进程为用于界面显示的进程,该触发手段一般有两种,响应用户的行为或安卓***的行为触发主进程。如当用户点击“pp助手”这个应用程序的图标时,将会触发主进程,或是当安装有“pp助手”应用程序的终端设备由无网状态连接入网成为有网状态时,也将会触发主进程。
步骤S220,所述主进程调用所述第一原生API启动第一服务。
该第一原生API为安卓***提供的原生的应用程序接口startService,其中,API的全称为Application Program Interface,中文译文为应用程序接口。即是说,该主进程将调用startService启动第一服务。
步骤S230,所述第一服务调用所述第一原生API启动第二服务,且所述安卓***根据所述预先声明的服务与进程之间的映射关系调起所述第二服务所在的进程。
具体为,第一服务启动后,将调用第一原生API启动第二服务,需要说明的是,该第一服务和第二服务位于同一应用程序的不同进程中,以使得多个进程之间可以通过各自的服务进行绑定和监督。进而,该安卓***将根据预先声明的服务与进程之间的映射关系调起第二服务所在的进程,即是说,该服务将会事先声明所在的进程,则当第二服务启动后,该安卓***将随之调起第二服务所在的进程。
步骤S240,所述第二服务调用所述第二原生API绑定所述第一服务,并监听所述第一服务的连接断开事件。
即是说,在第二服务启动后,第一服务调用第二原生API绑定第二服务的同时,该第二服务也将调用第二原生API绑定第一服务,并通过ServiceConnection接口监听第一服务的“onServiceDisconnected”连接断开事件。
步骤S250,当所述第一服务的连接断开事件被触发时,所述第二服务调用所述第一原生API启动所述第一服务,且所述安卓***将根据所述预先声明的服务与进程的对应关系,调起所述第一服务所在的进程。
具体为,当第一服务的连接断开事件被触发时,表明第一服务所在的进程被***强杀,则该第二服务将重新调用第一原生API启动第一服务,进而该安卓***将根据预先声明的服务与进程的对应关系,调起第一服务所在的进程,以保证第一服务的正常运行,提高用户体验。
步骤S260,所述第二服务调用所述第二原生API重新绑定所述第一服务,并重新监听所述第一服务的连接断开事件。
同理可知,为了保证第二服务能够长期监督第一服务的状态,该第二服务在第一次启动第一服务,且安卓***调起第一服务所在的进程后,第二服务还应该重新调用第二原生API再次绑定第一服务,以继续通过ServiceConnection接口监听第一服务的“onServiceDisconnected”连接断开事件。
由此可见,本方案通过不同服务之间的绑定,实现进程之间的相互保活,解决了某个进程被***强杀,由于不能自启动导致对应的服务被暂停的问题,提高了用户体验。此外,本方案中服务之间的启动和绑定均采用原生的API,不存在手机厂商定制***导致的兼容性问题,扩宽了应用范围。
作为另一种实施方式,本发明实施例提供的一种多进程的调起方法不仅应用于双进程之间,还可用于多个进程之间。以三个进程为例进行说明,如包括第一进程、第二进程和第三进程,第一进程对应服务A、第二进程对应服务B、第三进程对应服务C,具体为:
若第一进程启动服务A后,服务A启动服务B,服务B启动服务C(或服务A启动服务C),并随之调起服务B对应的第二进程,服务C对应的第三进程。进而,服务A绑定服务B并对服务B的连接断开事件进行监听,服务B绑定服务C并对服务C的连接断开事件进行监听,服务C绑定服务A并对服务A的连接断开事件进行监听。则当任意一个服务的连接断开事件被触发时,负责监听的服务都将重新启动该服务,***将调起该服务对应的进程,负责监听的服务还进行重新进行绑定以便于在后续的时段内继续监听。
另一种方式,第一进程启动服务A,服务A启动服务B,服务B启动服务C,并随之调起服务B对应的第二进程,服务C对应的第三进程。进而服务A绑定服务B并对服务B的连接断开事件进行监听,服务A绑定服务C并对服务C的连接断开事件进行监听,服务C绑定服务A并对服务A的连接断开事件进行监听。当服务B或服务C中的一个或两个的连接断开事件被触发时,该服务A将重新启动服务B和/或服务C,***将调起服务B和/或服务C对应的进程,并重新进行绑定。容易理解的,当服务B和服务C的连接断开事件被同时触发时,亦即是说,服务B和服务C所在的进程被同时强杀时,该服务A不必一定要对服务B和服务C都启动,可选择地只启动一个,其具体实施方式可根据需要自定义设置。
需要说明的是,此处只是示例性地列出了多个进程之间的绑定方法,其绑定形式多种多样,可根据实际需要进行设置。
请参照图3,是本发明实施例提供的一种多进程的调起装置110的功能模块示意图,该装置包括触发模块111、第一启动模块112、第二启动模块113、第一监听模块114、第一调用模块115、第一绑定模块116、第二监听模块117、第二调用模块118以及第二绑定模块119。
触发模块111,用于触发主进程。
在本发明实施例中,步骤S110和步骤S210可以由触发模块111执行。
第一启动模块112,用于所述主进程调用所述第一原生API启动第一服务。
在本发明实施例中,步骤S120和步骤S220可以由第一启动模块112执行。
第二启动模块113,用于所述第一服务调用所述第一原生API启动第二服务,且所述安卓***根据预先声明的服务与进程之间的映射关系调起所述第二服务所在的进程。
在本发明实施例中,步骤S130和步骤S230可以由第二启动模块113执行。
第一监听模块114,用于第一服务监听与第一服务建立绑定关系的第二服务的连接断开事件,所述第一服务和第二服务位于同一应用程序的不同进程。
在本发明实施例中,步骤S140可以由第一监听模块114执行。
第一调用模块115,用于当所述第二服务的连接断开事件被触发时,所述第一服务调用所述第一原生API启动所述第二服务,且所述安卓***将根据预先声明的服务与进程的对应关系,调起所述第二服务所在的进程。
在本发明实施例中,步骤S150可以由第一调用模块115执行。
第一绑定模块116,用于所述第一服务调用所述第二原生API重新绑定所述第二服务,并重新监听所述第二服务的连接断开事件。
在本发明实施例中,步骤S160可以由第一绑定模块116执行。
第二监听模块117,用于所述第二服务调用所述第二原生API绑定所述第一服务,并监听所述第一服务的连接断开事件。
在本发明实施例中,步骤S240可以由第二监听模块117执行。
第二调用模块118,用于当所述第一服务的连接断开事件被触发时,所述第二服务调用所述第一原生API启动所述第一服务,且所述安卓***将根据所述预先声明的服务与进程的对应关系,调起所述第一服务所在的进程。
在本发明实施例中,步骤S250可以由第二调用模块118执行。
第二绑定模块119,用于所述第二服务调用所述第二原生API重新绑定所述第一服务,并重新监听所述第一服务的连接断开事件。
在本发明实施例中,步骤S260可以由第二绑定模块119执行。
由于在多进程的调起方法中已经详细描述,在此不再赘述。
本发明实施例还揭示了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器140执行时实现本发明实施例提供的多进程的调起方法。
综上所述,本发明实施例提供的一种多进程的调起方法、装置、终端设备及计算机存储介质,该多进程的调起方法应用于安卓***,该安卓***设置的原生API包括第一原生API和第二原生API,该安卓***上安装有多个应用程序,每个应用程序对应多个进程,每个进程上运行多个服务。该方法包括:第一服务监听与第一服务建立绑定关系的第二服务的连接断开事件,第一服务和第二服务位于同一应用的不同进程,当第二服务的连接断开事件被触发时,第一服务调用第一原生API启动第二服务,且安卓***将根据预先声明的服务与进程的对应关系,调起第二服务所在的进程。
由此可见,本方案中,将不同进程中的第一服务和第二服务建立绑定关系,以实现第一服务和第二服务的相互监督,若其中一个服务的连接断开事件被触发,则另一个服务将重新启动该服务并调起其所在的进程,以实现进程的保活。由于是服务之间的相互绑定和监督,使得一旦一方服务所在的进程被强杀,另一方服务都能快速响应,以保证能快速调起被强杀的服务所在的进程,提高用户体验感。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本发明的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的***来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本发明各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。

Claims (18)

1.一种多进程的调起方法,应用于安卓***,所述安卓***设置的原生API包括第一原生API和第二原生API,所述安卓***上安装有多个应用程序,每个应用程序对应多个进程,每个进程上运行多个服务,其特征在于,所述方法包括:
第一服务监听与第一服务建立绑定关系的第二服务的连接断开事件,所述第一服务和第二服务位于同一应用程序的不同进程;
当所述第二服务的连接断开事件被触发时,所述第一服务调用所述第一原生API启动所述第二服务,且所述安卓***将根据预先声明的服务与进程的对应关系,调起所述第二服务所在的进程。
2.如权利要求1所述的方法,其特征在于,所述方法还包括:
所述第一服务调用所述第二原生API重新绑定所述第二服务,并重新监听所述第二服务的连接断开事件。
3.如权利要求1所述的方法,其特征在于,所述第一服务监听与第一服务建立绑定关系的第二服务的连接断开事件之前还包括:
触发主进程;
所述主进程调用所述第一原生API启动第一服务;
所述第一服务调用所述第一原生API启动第二服务,且所述安卓***根据所述预先声明的服务与进程之间的映射关系调起所述第二服务所在的进程。
4.如权利要求3所述的方法,其特征在于,所述第一服务监听与第一服务建立绑定关系的第二服务的连接断开事件的步骤包括:
所述第一服务调用所述第二原生API绑定所述第二服务,并监听所述第二服务的连接断开事件。
5.如权利要求3所述的方法,其特征在于,所述触发主进程的步骤包括:
响应用户的行为或所述安卓***的行为触发主进程。
6.如权利要求3所述的方法,其特征在于,所述方法还包括:
所述第二服务调用所述第二原生API绑定所述第一服务,并监听所述第一服务的连接断开事件;
当所述第一服务的连接断开事件被触发时,所述第二服务调用所述第一原生API启动所述第一服务,且所述安卓***将根据所述预先声明的服务与进程的对应关系,调起所述第一服务所在的进程。
7.如权利要求6所述的方法,其特征在于,所述方法还包括:
所述第二服务调用所述第二原生API重新绑定所述第一服务,并重新监听所述第一服务的连接断开事件。
8.如权利要求1-7任一一项所述的方法,其特征在于,所述第一原生API为startService,所述第二原生API为bindService。
9.一种多进程的调起装置,应用于安卓***,所述安卓***设置的原生API包括第一原生API和第二原生API,所述安卓***上安装有多个应用程序,每个应用程序对应多个进程,每个进程上运行多个服务,其特征在于,所述装置包括:
第一监听模块,用于第一服务监听与第一服务建立绑定关系的第二服务的连接断开事件,所述第一服务和第二服务位于同一应用程序的不同进程;
第一调用模块,用于当所述第二服务的连接断开事件被触发时,所述第一服务调用所述第一原生API启动所述第二服务,且所述安卓***将根据预先声明的服务与进程的对应关系,调起所述第二服务所在的进程。
10.如权利要求9所述的装置,其特征在于,所述装置还包括:
第一绑定模块,用于所述第一服务调用所述第二原生API重新绑定所述第二服务,并重新监听所述第二服务的连接断开事件。
11.如权利要求9所述的装置,其特征在于,所述装置还包括:
触发模块,用于触发主进程;
第一启动模块,用于所述主进程调用所述第一原生API启动第一服务;
第二启动模块,用于所述第一服务调用所述第一原生API启动第二服务,且所述安卓***根据预先声明的服务与进程之间的映射关系调起所述第二服务所在的进程。
12.如权利要求11所述的装置,其特征在于,所述第一监听模块具体用于:
所述第一服务调用所述第二原生API绑定所述第二服务,并监听所述第二服务的连接断开事件。
13.如权利要求11所述的装置,其特征在于,所述触发模块具体用于:
响应用户的行为或所述安卓***的行为触发主进程。
14.如权利要求11所述的装置,其特征在于,所述装置还包括:
第二监听模块,用于所述第二服务调用所述第二原生API绑定所述第一服务,并监听所述第一服务的连接断开事件;
第二调用模块,用于当所述第一服务的连接断开事件被触发时,所述第二服务调用所述第一原生API启动所述第一服务,且所述安卓***将根据所述预先声明的服务与进程的对应关系,调起所述第一服务所在的进程。
15.如权利要求14所述的装置,其特征在于,所述装置还包括:
第二绑定模块,用于所述第二服务调用所述第二原生API重新绑定所述第一服务,并重新监听所述第一服务的连接断开事件。
16.如权利要求9-15任一一项所述的装置,其特征在于,所述第一原生API为startService,所述第二原生API为bindService。
17.一种终端设备,其特征在于,所述终端设备上安装有安卓***,所述终端设备包括存储器和处理器,所述存储器用于存储计算机程序代码,所述处理器用于执行存储于所述存储器中的计算机程序代码,以实现如权利要求1-8任一一项所述的多进程的调起方法。
18.一种计算机存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-8任一一项所述的多进程的调起方法。
CN201810494582.1A 2018-05-22 2018-05-22 多进程的调起方法、装置、终端设备及计算机存储介质 Pending CN108710534A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810494582.1A CN108710534A (zh) 2018-05-22 2018-05-22 多进程的调起方法、装置、终端设备及计算机存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810494582.1A CN108710534A (zh) 2018-05-22 2018-05-22 多进程的调起方法、装置、终端设备及计算机存储介质

Publications (1)

Publication Number Publication Date
CN108710534A true CN108710534A (zh) 2018-10-26

Family

ID=63869404

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810494582.1A Pending CN108710534A (zh) 2018-05-22 2018-05-22 多进程的调起方法、装置、终端设备及计算机存储介质

Country Status (1)

Country Link
CN (1) CN108710534A (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110007981A (zh) * 2019-02-28 2019-07-12 Oppo广东移动通信有限公司 启动应用程序的方法、装置、电子设备及介质
CN110879726A (zh) * 2019-10-24 2020-03-13 深圳数位传媒科技有限公司 移动终端应用程序的保活方法及装置
CN111399924A (zh) * 2020-03-18 2020-07-10 山东车微联信息技术股份有限公司 一种安卓平台下应用进程保活的方法、终端及存储介质
CN111930481A (zh) * 2020-07-16 2020-11-13 重庆帮企科技集团有限公司 一种基于安卓***的进程优先级提高方法和装置

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140013008A1 (en) * 2012-07-05 2014-01-09 Eric Lazarus Managing data in a data queue including synchronization of media on multiple devices
CN105516926A (zh) * 2016-01-13 2016-04-20 广东欧珀移动通信有限公司 一种网络定位方法、装置及移动终端
CN107704274A (zh) * 2017-08-24 2018-02-16 武汉斗鱼网络科技有限公司 用于安卓应用主进程唤醒的方法、存储介质、设备及***
CN107844341A (zh) * 2017-11-21 2018-03-27 广东欧珀移动通信有限公司 进程启动的管控方法、装置及存储介质和移动终端
CN107944258A (zh) * 2017-11-21 2018-04-20 广东欧珀移动通信有限公司 以服务方式启动应用的控制方法、装置、存储介质及终端
CN107957905A (zh) * 2017-11-21 2018-04-24 广东欧珀移动通信有限公司 限制应用自启动的方法、装置、存储介质及智能终端

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140013008A1 (en) * 2012-07-05 2014-01-09 Eric Lazarus Managing data in a data queue including synchronization of media on multiple devices
CN105516926A (zh) * 2016-01-13 2016-04-20 广东欧珀移动通信有限公司 一种网络定位方法、装置及移动终端
CN107704274A (zh) * 2017-08-24 2018-02-16 武汉斗鱼网络科技有限公司 用于安卓应用主进程唤醒的方法、存储介质、设备及***
CN107844341A (zh) * 2017-11-21 2018-03-27 广东欧珀移动通信有限公司 进程启动的管控方法、装置及存储介质和移动终端
CN107944258A (zh) * 2017-11-21 2018-04-20 广东欧珀移动通信有限公司 以服务方式启动应用的控制方法、装置、存储介质及终端
CN107957905A (zh) * 2017-11-21 2018-04-24 广东欧珀移动通信有限公司 限制应用自启动的方法、装置、存储介质及智能终端

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
梦游三万里: "探讨一种新型的双进程守护应用保活方法", 《HTTP://WWW.360DOC.COM/CONTENT/17/0402/10/31477409_642267020.SHTML》 *
黑夜路口: "03.app保活解决方案", 《HTTPS://YQ.ALIYUN.COM/ARTICLES/657340/》 *

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110007981A (zh) * 2019-02-28 2019-07-12 Oppo广东移动通信有限公司 启动应用程序的方法、装置、电子设备及介质
CN110879726A (zh) * 2019-10-24 2020-03-13 深圳数位传媒科技有限公司 移动终端应用程序的保活方法及装置
CN110879726B (zh) * 2019-10-24 2023-09-26 深圳数位大数据科技有限公司 移动终端应用程序的保活方法及装置
CN111399924A (zh) * 2020-03-18 2020-07-10 山东车微联信息技术股份有限公司 一种安卓平台下应用进程保活的方法、终端及存储介质
CN111399924B (zh) * 2020-03-18 2023-06-16 山东车微联信息技术股份有限公司 一种安卓平台下应用进程保活的方法、终端及存储介质
CN111930481A (zh) * 2020-07-16 2020-11-13 重庆帮企科技集团有限公司 一种基于安卓***的进程优先级提高方法和装置

Similar Documents

Publication Publication Date Title
CN108710534A (zh) 多进程的调起方法、装置、终端设备及计算机存储介质
CN111181804B (zh) 智能设备离线状态自动检测方法、装置、电子设备及介质
CN107832100B (zh) 一种apk插件的加载方法及其终端
US10455542B2 (en) Method of synchronizing notification messages for electronic devices and electronic devices
CN105208047B (zh) 分布式***服务器上下线方法及服务器
CN110457197B (zh) 服务测试方法、装置、计算机设备和存储介质
GB2518052A (en) Group server performance correction via actions to server subset
US9628631B2 (en) Conference terminal control system, conference terminal control device, and conference terminal control method
CN107451147A (zh) 一种kafka集群动态切换的方法和装置
CN111625810B (zh) 设备登录方法、设备及***
US10404568B2 (en) Agent manager for distributed transaction monitoring system
CN111858007A (zh) 一种基于消息中间件的任务调度方法方法和装置
CN110933075B (zh) 服务调用方法、装置、电子设备及存储介质
CN111698283A (zh) 分布式集群主机的管控方法、装置、设备及存储介质
CN108900434A (zh) 数据收集分发方法及装置
CN110351366A (zh) 一种互联网应用的服务调度方法、***及计算机可读存储介质
CN108319480A (zh) 蓝牙服务启动方法、装置及电子设备
CN110708366A (zh) 一种插件进程的管理方法及相关方法和相关装置
CN105930249B (zh) 应用监控方法和装置
CN108366098A (zh) 一种网络节点的数据交互方法及装置
TWI668634B (zh) 基於軟體容器提供雲端服務之系統及方法
CN110417789A (zh) 服务器连接方法、电子设备、***及介质
CN104834553B (zh) 一种用户终端的业务并发处理方法及用户终端
CN106921733B (zh) 集群通知的推送方法、装置及电子设备
CN115951923A (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
TA01 Transfer of patent application right

Effective date of registration: 20200610

Address after: 310052 room 508, floor 5, building 4, No. 699, Wangshang Road, Changhe street, Binjiang District, Hangzhou City, Zhejiang Province

Applicant after: Alibaba (China) Co.,Ltd.

Address before: 510627 Guangdong city of Guangzhou province Whampoa Tianhe District Road No. 163 Xiping Yun Lu Yun Ping square B radio tower 15 layer self unit 02 (only for office use)

Applicant before: GUANGZHOU UC NETWORK TECHNOLOGY Co.,Ltd.

TA01 Transfer of patent application right
RJ01 Rejection of invention patent application after publication

Application publication date: 20181026

RJ01 Rejection of invention patent application after publication