System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种进程间通信方法与电子设备技术_技高网

一种进程间通信方法与电子设备技术

技术编号:40563386 阅读:14 留言:0更新日期:2024-03-05 19:26
本申请公开了一种进程间通信方法与电子设备,该方法包括:客户端进程使用第一访问引用访问第一系统服务,得到第一信息,其中,第一访问引用存储在客户端进程的第一内存中,第一访问引用为第一服务端进程所提供的第一系统服务的访问引用,第一信息包括第一系统服务能够提供的功能的信息;客户端进程将第一信息存储在客户端进程的第二内存中,从而提高电子设备的安卓系统使用Binder通信机制时的通信效率。

【技术实现步骤摘要】

本申请涉及电子设备,尤其涉及一种进程间通信方法与电子设备


技术介绍

1、安卓(android)系统是电子设备常用的操作系统,安卓系统中的两个进程之间常用的进程间通信(inter-process communication,ipc)机制为粘合剂(binder)通信机制。binder通信机制主要包括三个流程:服务注册、获取服务和使用服务。其中,服务注册是指安卓系统中的各个系统服务在服务管理器(server manager)上进行注册,注册完成后服务管理器可保存各个系统服务的信息;获取服务是指应用(application,app)向服务管理器请求系统服务的访问引用,服务管理器将系统服务的访问引用返回给应用;使用服务是指应用根据系统服务的访问引用访问系统服务。其中,应用作为binder通信的客户端,也可称为客户端进程(使用系统服务的进程),系统服务作为binder通信的服务端,也可称为服务端进程(提供系统服务的进程)。

2、目前,客户端进程、服务管理器和服务端进程均位于用户空间中,但这些进程之间不是直接交互,而是通过位于内核空间的binder驱动进行交互。例如,客户端进程如果要访问服务端进程提供的系统服务,则需要进行两次跨进程调用,其中的第一次跨进程调用过程为客户端进程通过binder驱动获取该系统服务的访问引用,其中的另一次跨进程调用过程为客户端进程通过binder驱动使用该系统服务的访问引用访问该系统服务。跨进程调用对于安卓系统来说就是从一个进程切换到另一个进程运行,即,每次跨进程调用过程都会发生进程上下文切换,需要耗费一定的时间。可见,安卓系统使用binder通信机制实现进程间通信时,由于存在频繁的进程上下文切换,导致通信效率较低。


技术实现思路

1、本申请实施例提供一种进程间通信方法与电子设备,用以提高电子设备的安卓系统使用binder通信机制时的通信效率。

2、第一方面,本申请实施提供一种进程间通信方法,该方法包括:客户端进程使用第一访问引用访问第一系统服务,得到第一信息,其中,所述第一访问引用存储在所述客户端进程的第一内存中,所述第一访问引用为第一服务端进程所提供的所述第一系统服务的访问引用,所述第一信息包括所述第一系统服务能够提供的功能的信息;所述客户端进程将所述第一信息存储在所述客户端进程的第二内存中。

3、在该方法中,客户端进程在获取系统服务的访问引用成功之后,可以将该系统服务的访问引用存储在客户端进程的第一内存中,从而下一次可以直接使用存储的该系统服务的访问引用来访问该系统服务,不必再通过跨进程调用的过程来获得该系统服务的访问引用,减少了跨进程调用的次数,提高了通信效率。另外,客户端进程还可以在使用该系统服务的访问引用访问该系统服务之后,将该系统服务能够提供的功能的信息存储在客户端进程的第二内存中,从而下一次可以直接使用存储的该信息实现该系统服务能够提供的功能,进一步减少了跨进程调用的次数。可见,通过本申请实施例提供的方案能够在较大程度上减少跨进程调用的次数,从而减少了进程上下文切换的次数,有利于提高电子设备的安卓系统使用binder通信机制时的通信效率。

4、在一种可能的设计中,在所述客户端进程使用第一访问引用访问第一系统服务时,如果所述第一访问引用存储在所述第一内存包括的共进程内存中,所述客户端进程可以直接使用所述第一访问引用访问所述第一系统服务,其中,所述共进程内存用于存储与所述客户端进程共进程的服务端进程所提供的系统服务的访问引用;或者,如果所述第一访问引用存储在所述第一内存包括的异进程内存中,所述客户端进程可以通过binder驱动使用所述第一访问引用访问所述第一系统服务,其中,所述异进程内存用于存储与所述客户端进程异进程的服务端进程所提供的系统服务的访问引用。

5、在该方法中,客户端进程在将系统服务的访问引用存储在客户端进程的第一内存中时,可以根据提供该系统服务的服务端进程是否与客户端进程共进程,将该系统服务的访问引用分类存储在客户端进程的第一内存包括的共进程内存或者异进程内存中,从而客户端进程在下一次直接使用存储的系统服务的访问引用访问系统服务时,如果确定共进程内存中存储有该系统服务的访问引用,客户端进程可以直接使用该系统服务的访问引用访问该系统服务,而不通过位于内核空间的binder驱动使用该系统服务的访问引用访问该系统服务,如果确定异进程内存中存储有该系统服务的访问引用,客户端进程才通过位于内核空间的binder驱动使用该系统服务的访问引用访问该系统服务,减少binder通信机制的使用服务流程中的跨进程调用的次数,进而减少进程上下文切换的次数,提高电子设备的安卓系统使用binder通信机制时的通信效率。

6、在一种可能的设计中,在所述客户端进程将所述第一信息存储在所述客户端进程的第二内存中之后,如果所述第一服务端进程未更新所述第一系统服务,所述客户端进程可以使用存储在所述第二内存中的所述第一信息实现所述第一系统服务能够提供的功能;或者,如果所述第一服务端进程已更新所述第一系统服务,所述客户端进程可以使用所述第一访问引用访问所述第一系统服务,得到第二信息,使用所述第二信息实现所述第一系统服务能够提供的功能,并将存储在所述第二内存中的所述第一信息更新为所述第二信息,其中,所述第二信息包括所述已更新的所述第一系统服务能够提供的功能的信息。

7、在该方法中,客户端进程在系统服务能够提供的功能的信息存储在客户端进程的第二内存中之后,客户端进程可以在使用存储的该系统服务能够提供的功能的信息实现该系统服务能够提供的功能时,可以判断提供该系统服务的服务端进程是否更新该系统服务,如果确定该系统服务的服务端进程未更新该系统服务,客户端进程可以直接使用存储的该系统服务能够提供的功能的信息实现该系统服务能够提供的功能,如果确定该系统服务的服务端进程已更新该系统服务,客户端进程才重新访问已更新的该系统服务,得到已更新的该系统服务能够提供的功能的信息,减少binder通信机制的使用服务流程中的跨进程调用的次数,进而减少进程上下文切换的次数,提高电子设备的安卓系统使用binder通信机制时的通信效率。

8、在一种可能的设计中,该方法还包括:所述客户端进程可以从所述服务管理器获取所述第一访问引用;如果所述客户端进程获取所述第一访问引用成功,所述客户端进程可以将所述第一访问引用存储在所述第一内存中。

9、在该方法中,客户端进程可以从服务管理器处获取系统服务的访问引用,并在从服务管理器处获取该系统服务的访问引用成功之后,将该系统服务的访问引用存储在客户端进程的第一内存中,从而下一次可以直接使用存储的该系统服务的访问引用访问该系统服务,减少binder通信机制的获取服务流程中的跨进程调用的次数,进而减少进程上下文切换的次数,提高电子设备的安卓系统使用binder通信机制时的通信效率。

10、在一种可能的设计中,该方法还包括:所述客户端进程可以从所述服务管理器获取所述第一访问引用;如果所述客户端进程获本文档来自技高网...

【技术保护点】

1.一种进程间通信方法,其特征在于,包括:

2.如权利要求1所述的方法,其特征在于,所述客户端进程使用第一访问引用访问第一系统服务,包括:

3.如权利要求1或2所述的方法,其特征在于,在所述客户端进程将所述第一信息存储在所述客户端进程的第二内存中之后,还包括:

4.如权利要求1-3任一所述的方法,其特征在于,还包括:

5.如权利要求1-3任一所述的方法,其特征在于,还包括:

6.如权利要求4或5所述的方法,其特征在于,在所述客户端进程从所述服务管理器获取所述第一访问引用之前,还包括:

7.如权利要求4-6任一所述的方法,其特征在于,在所述客户端进程将所述第一访问引用存储在所述第一内存中之后,还包括:

8.如权利要求4或5所述的方法,其特征在于,在所述客户端进程从所述服务管理器获取所述第一访问引用之前,还包括:

9.如权利要求8所述的方法,其特征在于,所述客户端进程从所述服务管理器获取所述第一访问引用,包括:

10.如权利要求4-9任一所述的方法,其特征在于,在所述客户端进程将所述第一访问引用存储在所述第一内存中之后,还包括:

11.一种进程间通信装置,其特征在于,包括:

12.如权利要求11所述的装置,其特征在于,所述使用模块,具体用于:

13.如权利要求11或12所述的装置,其特征在于,在将所述第一信息存储在所述客户端进程的第二内存中之后,所述处理模块还用于:

14.如权利要求11-13任一所述的装置,其特征在于,所述装置还包括第一获取模块,用于:

15.如权利要求11-13任一所述的装置,其特征在于,所述装置还包括第二获取模块,用于:

16.如权利要求14或15所述的装置,其特征在于,在从所述服务管理器获取所述第一访问引用之前,所述第一获取模块或所述第二获取模块还用于:

17.如权利要求14-16任一所述的装置,其特征在于,在将所述第一访问引用存储在所述第一内存中之后,所述第一获取模块或所述第二获取模块还用于:

18.如权利要求14或15所述的装置,其特征在于,在从所述服务管理器获取所述第一访问引用之前,所述第一获取模块或所述第二获取模块还用于:

19.如权利要求18所述的装置,其特征在于,从所述服务管理器获取所述第一访问引用,所述第一获取模块或所述第二获取模块具体用于:

20.如权利要求14-19任一所述的装置,其特征在于,在将所述第一访问引用存储在所述第一内存中之后,所述第一获取模块或所述第二获取模块还用于:

21.一种电子设备,其特征在于,包括:

22.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质用于存储计算机程序,当所述计算机程序在计算机上运行时,使得所述计算机执行如权利要求1-10中任一项所述的方法。

23.一种计算机程序产品,其特征在于,包括计算机程序,当所述计算机程序在计算机上运行时,使得所述计算机执行如上述权利要求1-10中任一项所述的方法。

...

【技术特征摘要】

1.一种进程间通信方法,其特征在于,包括:

2.如权利要求1所述的方法,其特征在于,所述客户端进程使用第一访问引用访问第一系统服务,包括:

3.如权利要求1或2所述的方法,其特征在于,在所述客户端进程将所述第一信息存储在所述客户端进程的第二内存中之后,还包括:

4.如权利要求1-3任一所述的方法,其特征在于,还包括:

5.如权利要求1-3任一所述的方法,其特征在于,还包括:

6.如权利要求4或5所述的方法,其特征在于,在所述客户端进程从所述服务管理器获取所述第一访问引用之前,还包括:

7.如权利要求4-6任一所述的方法,其特征在于,在所述客户端进程将所述第一访问引用存储在所述第一内存中之后,还包括:

8.如权利要求4或5所述的方法,其特征在于,在所述客户端进程从所述服务管理器获取所述第一访问引用之前,还包括:

9.如权利要求8所述的方法,其特征在于,所述客户端进程从所述服务管理器获取所述第一访问引用,包括:

10.如权利要求4-9任一所述的方法,其特征在于,在所述客户端进程将所述第一访问引用存储在所述第一内存中之后,还包括:

11.一种进程间通信装置,其特征在于,包括:

12.如权利要求11所述的装置,其特征在于,所述使用模块,具体用于:

13.如权利要求11或12所述的装置,其特征在于,在将所述第一信息存储在所述客户端进程的第二内存中之后,所述处理模块还用于:

14...

【专利技术属性】
技术研发人员:徐文亮严文唐发明阚彬
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:

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

1