首页 > 编程知识 正文

进程通信的几种方式,android进程间通信

时间:2023-05-03 19:33:23 阅读:38979 作者:3093

首先,我们将介绍远程过程调用(RPC )是什么。 它可以通过网络从远程计算机程序请求服务,并在不需要了解底层网络技术的协议下检索计算机进程中的数据。 RPC使开发包括网络化分布式多程序在内的APP应用变得容易。

在OSI网络通信七层模型中,RPC位于传输层和APP应用层之间,也就是会话层:

RPC实现模式是一种常见的C/S结构,引用百度百科的定义

RPC采用客户端/服务器模式。 请求程序是客户端,服务提供商是服务器。 首先,客户端调用进程将具有进程参数的调用信息发送到服务进程,并等待响应信息。 在服务器端,进程将保持休眠状态,直到调用消息到达。 当某个呼叫信息到达时,服务器获取进程参数,计算结果,发送响应信息,等待下一个呼叫的信息,最后客户端调用进程接收响应信息,获取进程结果,然后继续执行呼叫。

简而言之,客户端可以向服务端发送若干进程请求,服务端根据所发送的进程参数依次返回相应的计算结果。 RPC可以说,客户端调用服务端接口的过程是面向接口的编程。

让我们来正式说明一下PC是如何在Android中表现出来的,RPC和IPC之间的关系吧

Android利用远程过程调用(RPC )提供进程间通信(IPC )机制。 这将使由Activity或其他APP应用程序组件调用的方法(在其他进程中)远程执行,并将所有结果返回给调用方。 这需要将方法调用及其数据分解为操作系统可以识别的程度,从本地进程和地址空间传输到远程进程和地址空间,然后在远程进程中重新组装和执行该调用。 然后,返回值反向传输。 Android提供了执行这些IPC事务所需的所有代码,因此您只需要集中精力定义和实现RPC编程接口。

要运行IPC,必须使用bindService ()将APP应用程序绑定到服务。

也就是说,RPC所在的Android具体来说是依赖于bindService (),用onBind方法将服务端计算结果返回客户端(Activity等组件) )的过程。

其次,作为IPC IPC的Inter-Process Communication (进程间通信)是指进程间的数据交换过程。

Android的基础是基于Linux,但出于安全考虑,Linux不允许在两个进程之间直接处理对方的数据。 这就是过程隔离

在Linux系统中,虚拟内存机制为每个进程分配线性连续的内存空间,操作系统将此虚拟内存空间映射到物理内存空间,每个进程都有自己的虚拟内存空间,不能操作其他进程的内存空间每个进程只能操作自己的虚拟内存空间,只有操作系统有权操作物理内存空间。 进程隔离保证了每个进程的内存安全,但操作系统往往是不可避免的,因为不同进程之间的数据通信是不可避免的

Android基于Linux,但不继承Linux中的进程间通信方式。 安卓有自己的进程间通信方式。 常用的有:

bundle(4 (四大组件之间)文件共享AIDL (基于Binder )是自动生成Binder文件的工具,相当于工具。 messenger (基于binder ) )是来自Hnadler的消息的使用方法ContentProvider (基于binder ) ) (Socket ) ) )网)下

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。