美文网首页
IPC 进程间通信机制

IPC 进程间通信机制

作者: 朱立志 | 来源:发表于2016-07-12 11:34 被阅读220次

一,什么是IPC

IPC:inter-process communication,进程间通信或者跨进程通信。window通过剪贴板,管道等进行进程间通信。Linux通过命名管道,共享内存,信号量等进行进程间通信。android有特色的是Binder。在android进程通信可以有以下方式:aidl,socket通信,使用Bundle,使用contentprovider,使用Messenger,使用文件共享

二 binder 机制

我们知道,在Android app中的众多activity,service等组件可以运行在同一进程中,也可以运行在不同进程中。当组件运行在同一进程中进行通信就显得比较简单,在之前的Android线程间通信机制中已经讲过了;而当它们运行在不同的进程 中时,就需要使用我们本文中所要介绍的Binder机制了。

Binder作为一种进程间通信机制,负责提供远程调用的功能(RPC),它的系统组件主要包括四种:Client, Server, ServiceManager, Binder Driver. 它们之间的关系如下图所示

从图中我们可以看出,Client, Server, ServiceManager运行在系统的用户态,而Binder Driver运行在内核态。为了完成Client端到Server端的通信任务,用户空间的需要操作Binder Driver提供的/dev/binder文件来完成交互。那么ServiceManager的工作是什么呢?ServiceManager负责管理Server并向Client端提供一个Server的代理接口(proxy)。通过代理接口中定义的方法,Client端就可以使用Server端提供的服务了。整个过程如下:

Client端调用代理接口的方法,将Client的参数打包为parcel对象发送给内核空间中BinderDriver;

Server端读取到BinderDriver中的请求数据,将parcel对象解包并处理;

处理好后,将处理结果打包返回给BinderDriver,再交给Client端。

另外,Client端与Server端的调用过程是同步的,即在Server返回结果之前,Client端是阻塞的。调用过程如下所示:

AIDL 例子

首先定义一个AIDL 文件,名字ICalculateAidlInterface.aidl , 定义两个方法,重新rebuild下工厂,则生成对应的Java文件,Java文件位于/build/generated/source/aidl/debug/包名/

```

interfaceICalculateAidlInterface {

intadd(inta,intb);

intminus(inta,intb);

}

```

```

let 你好 = "swift你好,我叫唐衣可俊"

println(你好)

```

相关文章

  • Android进阶笔记-5. IPC机制 & Binder 原理

    IPC机制 一次进程间通信至少包含两个进程,由于进程隔离机制的存在,通信双方必然需要借助 IPC(进程间通信,in...

  • 笔记:IPC机制

    IPC机制 IPC简介Inter-Process Communication 进程间通信/跨进程通信----指两个...

  • IPC机制和binder

    ipc(Inter-Process Communication)含义是进程间通信或者跨进程通信,ipc机制不是An...

  • 6. 进程间通信

    参考链接:1. 进程间通信及使用场景2. 进程间通信机制IPC3. 看图理解进程间通信IPC==重点4. 进程间通...

  • IPC、Window小结

    1、IPC机制 1、Android IPC简介 IPC:含义为进程间通信或者跨进程通信。 2、Android中的多...

  • Android的IPC机制

    什么是IPC机制? IPC(Inter-Process Communication)是指进程间通信或跨进程通信,也...

  • c进程间通信IPC以及信号概述

    linux系统内核提供了进程间通信的机制 IPC(InterProcess Communication) IPC的...

  • Android面试Android基础(十一)

    问:Android中的IPC(进程间通信)机制? 答:进程间通信即:跨进程的通信。有以下几种:1、使用Bundle...

  • 进程间通信及使用场景

    本文主要说明进程间的几种通信机制,并对比起优缺点与使用场景。 I、IPC方式 进程间通信(IPC,InterPro...

  • Android bindService 流程分析

    进程间通信 Binder是什么 IPC间的通信机制。 什么时候需要进程间通信 大图片加载 // 防止出现内存不够 ...

网友评论

      本文标题:IPC 进程间通信机制

      本文链接:https://www.haomeiwen.com/subject/hremdttx.html