电子装置及其限制进程间通信的方法、存储介质制造方法及图纸

技术编号:19964049 阅读:38 留言:0更新日期:2019-01-03 12:44
本申请公开了一种限制进程间通信的方法,该方法包括:在客户端向服务端发送binder请求时,截获binder请求,并获取当前客户端消耗服务端的binder线程数量、服务端的binder线程总数量,以及获取客户端所占的份额、当前与服务端通信的所有客户端所占的总份额;计算binder线程数量与binder线程总数量的第一比值,且计算份额与总份额的第二比值;判断第一比值是否大于第二比值;若是,则将截获的binder请求加入等待队列末端;其中,在设定时间段之后处理等待队列中的binder请求。本申请还公开了一种电子装置和一种存储介质。通过上述方式,本申请能够将客户端消耗的binder线程数量与服务端总的binder线程数量的第一比值限定在实时变化的第二比值,从而可以保证系统的流畅性。

Electronic devices and their methods of limiting inter-process communication and storage media

This application discloses a method for limiting inter-process communication, which includes intercepting binder requests when a client sends a binder request to a server and obtaining the current number of binder threads consumed by the client and the total number of binder threads on the server, as well as obtaining the share of the client and the total share of all clients currently communicating with the server. Calculate the first ratio of the number of binder threads to the total number of binder threads, and calculate the second ratio of the share to the total share; determine whether the first ratio is greater than the second ratio; if so, add the intercepted binder request to the end of the waiting queue; where the binder request in the waiting queue is processed after a set period of time. The application also discloses an electronic device and a storage medium. In this way, the application can limit the first ratio between the number of binder threads consumed by the client and the total number of binder threads consumed by the server to the second ratio which changes in real time, thus ensuring the fluency of the system.

【技术实现步骤摘要】
电子装置及其限制进程间通信的方法、存储介质
本专利技术涉及电子设备
,特别是涉及一种电子装置及其限制进程间通信的方法、存储介质。
技术介绍
目前,随着科学技术的不断发展,智能手机等电子装置日渐成为人们日常生活的必需品。安卓系统是智能手机等电子装置的一种常见的操作系统,安卓系统中的两个进程之间通常需要进行通信,进程之间的用户空间是不能共享的,因此两个进程之间的通信通常需要Binder机制来实现通信。现有的电子装置没有对进程间采用Binder机制进行通信情况的监控机制,且无法对进程间通信进程进行优化,导致系统流畅度不高。
技术实现思路
本申请实施例采用的一个技术方案是:提供一种限制进程间通信的方法,该方法包括:在客户端向服务端发送binder请求时,截获binder请求,并获取当前客户端消耗服务端的binder线程数量、服务端的binder线程总数量,以及获取客户端所占的份额、当前与服务端通信的所有客户端所占的总份额;计算binder线程数量与binder线程总数量的第一比值,且计算份额与总份额的第二比值;判断第一比值是否大于第二比值;若是,则将截获的binder请求加入等待队列末端;其中,在设定时间段之后处理等待队列中的binder请求。本申请实施例采用的另一个技术方案是:提供一种电子装置,该电子装置包括:获取模块,用于在客户端向服务端发送binder请求时,截获binder请求,并获取当前客户端消耗服务端的binder线程数量、服务端的binder线程总数量,以及获取客户端所占的份额、当前与服务端通信的所有客户端所占的总份额;计算模块,用于计算binder线程数量与binder线程总数量的第一比值,且计算份额与总份额的第二比值;判断模块,用于判断第一比值是否大于第二比值;执行模块,用于在第一比值大于第二比值时,将截获的binder请求加入等待队列末端;其中,在设定时间段之后处理等待队列中的binder请求。本申请实施例采用的又一个技术方案是:提供一种电子装置,该电子装置包括处理器和存储器,存储器与处理器电连接,存储器用于存储计算机程序,处理器用于调用计算机程序以实现上述的方法。本申请实施例采用的又一个技术方案是:一种存储介质,存储介质用于存储计算机程序,计算机程序能够被执行以实现上述的方法。本申请实施例通过在客户端向服务端发送binder请求时,截获binder请求,并获取当前客户端消耗服务端的binder线程数量、服务端的binder线程总数量,以及获取客户端所占的份额、当前与服务端通信的所有客户端所占的总份额;计算binder线程数量与binder线程总数量的第一比值,且计算份额与总份额的第二比值;判断第一比值是否大于第二比值;若是,则将截获的binder请求加入等待队列末端;其中,在设定时间段之后处理等待队列中的binder请求,能够将客户端消耗服务端的binder线程数量与binder线程总数量限定在实时变化的第二比值,能够根据从而可以保证系统的流畅性。附图说明图1是本申请第一实施例限制进程间通信的方法的流程示意图;图2是本申请实施例中进程间通信的原理示意图;图3是Binder通信机制的原理示意图;图4是客户端和服务端的交互示意图;图5是本申请第二实施例限制进程间通信的方法的流程示意图;图6是本申请第三实施例限制进程间通信的方法的流程示意图;图7是本申请实施例电子装置的模块示意图;图8是本申请实施例电子装置的硬件结构示意图。具体实施方式下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。可以理解的是,此处所描述的具体实施例仅用于解释本申请,而非对本申请的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本申请相关的部分而非全部结构。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。本申请中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。请参阅图1,图1是本申请第一实施例限制进程间通信的方法的流程示意图。在本实施例中,限制进程间通信的方法可以包括以下步骤:步骤101:在客户端向服务端发送binder请求时,截获该binder请求,并获取当前该客户端消耗该服务端的binder线程数量、该服务端的binder线程总数量,以及获取该客户端所占的份额、当前与服务端通信的所有客户端所占的总份额。其中,Binder机制是安卓系统中进程间通讯(IPC)的一种方式。安卓系统中的四大组件分别为:Activity(工作流)、Service(服务)、Broadcast(广播接收器)、ContentProvider(内容提供者)、不同的App(应用程序)。这四大组件都运行在不同的进程中,Binder机制是这些进程间通讯的桥梁。如图2所示,图2是本申请实施例中进程间通信的原理示意图,每个安卓系统的进程,只能运行在自己进程所拥有的虚拟地址空间。虚拟地址空间包括彼此独立的用户空间和内核空间。对于用户空间,客户端和服务端之间彼此是不能共享的,而客户端和服务端之间的内核空间却是可共享的。客户端与服务端的每一次通信都要通过位于内核空间的Binder驱动程序来实现。基于上述binder机制的原理,不难理解,客户端和服务端可以是任意两个进程,可以是应用,也可以是服务,例如,可以是应用与应用之间的通信,也可以是应用与服务之间的通信。其中,客户端是指客户端进程,服务端是指服务端进程。进一步参阅图3,图3是Binder通信机制的原理示意图,Binder通信采用C/S架构,从组件视角来说,包含Client进程(客户端)、Server进程(服务端)、ServiceManager(服务管理)以及binder驱动程序,其中ServiceManager用于管理系统中的各种服务。其中,Client进程为使用服务的进程。Server进程为提供服务的进程。ServiceManager进程的作用是将字符形式的Binder名字转化成Client中对该Binder的引用,使得Client能够通过Binder名字获得对Server中Binder实体的引用。Binder驱动程序负责进程之间Binder通信的建立,Binder在进程之间的传递,Binder引用计数管理,数据包在进程之间的传递和交互等一系列底层支持。在基于binder机制的通信过程中,主要包括以下三个过程:注册服务(addService):Server进程要先注册Service到ServiceManager。该过程:Server是客户端本文档来自技高网...

【技术保护点】
1.一种限制进程间通信的方法,其特征在于,所述方法包括:在客户端向服务端发送binder请求时,截获所述binder请求,并获取当前所述客户端消耗所述服务端的binder线程数量、所述服务端的binder线程总数量,以及获取所述客户端所占的份额、当前与所述服务端通信的所有客户端所占的总份额;计算所述binder线程数量与所述binder线程总数量的第一比值,且计算所述份额与所述总份额的第二比值;判断所述第一比值是否大于第二比值;若是,则将截获的所述binder请求加入等待队列末端;其中,在设定时间段之后处理所述等待队列中的binder请求。

【技术特征摘要】
1.一种限制进程间通信的方法,其特征在于,所述方法包括:在客户端向服务端发送binder请求时,截获所述binder请求,并获取当前所述客户端消耗所述服务端的binder线程数量、所述服务端的binder线程总数量,以及获取所述客户端所占的份额、当前与所述服务端通信的所有客户端所占的总份额;计算所述binder线程数量与所述binder线程总数量的第一比值,且计算所述份额与所述总份额的第二比值;判断所述第一比值是否大于第二比值;若是,则将截获的所述binder请求加入等待队列末端;其中,在设定时间段之后处理所述等待队列中的binder请求。2.根据权利要求1所述的方法,其特征在于,所述获取客户端所占的份额、当前与所述服务端通信的所有客户端所占的总份额包括:根据所述客户端的标识信息在标识信息与份额的对应关系表中查找对应的份额以得到所述客户端的份额;根据当前与所述服务端通信的所有客户端各自的标识信息在所述对应关系表中查找各自对应的份额并进行求和以得到所述总份额。3.根据权利要求1所述的方法,其特征在于,所述在设定时间段之后处理所述等待队列中的binder请求的步骤,包括:在设定时间段后将所述等待队列中的binder请求发送至所述服务端,以允许所述服务端对所述等待队列中的binder请求进行响应并与所述客户端进行进程间通信。4.根据权利要求1所述的方法,其特征在于,所述在设定时间段之后处理所述等待队列中的binder请求的步骤,包括:在设定时间段之后将所述等待队列首端的binder请求作为客户端向服务端发送binder请求,返回在客户端向服务端发送binder请求时,截获所述binder请求,并获取当前所述客户端消耗所述服务端的binder线程数量、所述服务端的binder线程总数量,以及获取所述客户端所占的份额、当前与所述服务端通信的所有客户端所占的总份额的步骤。5.根据权利要求1所述的方法,其特征在于,所述在客户端向服务端发送binder请求时,截获所述binder请求,并获取当前所述客户端消耗的binder线程数量、所述服务端的binder线程总数量之前,包括:在所述服务端的binder线程被唤醒时,将唤醒所述binder线程的客户端消耗所述服务端的binder线程数量加一;在所述binder线程恢复空闲状态时,将唤醒所述binder线程的客户端消耗所述服务端的binder线程数量减一。6.根据权利要求1所述的方法,其特征在于,所述判断所述第一比值是否第二比值的步骤之后,还包括:若否,则将截获的所述binder请求发送至所述服务端,以允许所述服务端响应所述客户端发送的binder请求并与所述客户端进行进程间通信。7...

【专利技术属性】
技术研发人员:周明君方攀陈岩
申请(专利权)人:OPPO重庆智能科技有限公司
类型:发明
国别省市:重庆,50

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1