进程间通信方式与Binder机制原理
2016-03-31 09:29
274 查看
1, Intent隐式意图携带数据
2, AIDL(Binder)
3, 广播BroadCast
4, 内容提供者ContentProvider
-----------------------------------------------分割线----------------------------------------------
5,Messager(内部通过binder实现)
6,文件共享
7,socket
--------------------------------------------Binder底层原理----------------------------------------
Binder是一种进程间通信机制,它提供远程过程调用(RPC)功能; Binder作为一个类,它能和不同进程之间进行通信。从英文字面上意思看,Binder具有粘结剂的意思,那么它把什么东西粘结在一起呢?在Android系统的Binder机制中,由一些系统组件组成,分别是Client、Server、Service Manager和Binder驱动程序,其中Client、Server和Service Manager运行在用户空间,Binder驱动程序运行内核空间。Binder就是一种把这四个组件粘合在一起的粘结剂了,其中,核心组件便是Binder驱动程序了,Service Manager提供了辅助管理的功能,Client和Server正是在Binder驱动和Service Manager提供的基础设施上,进行Client-Server之间的通信。Service Manager和Binder驱动已经在Android平台中实现好,开发者只要按照规范实现自己的Client和Server组件就可以了。
总结一下,Android系统Binder机制中的四个组件Client、Server、Service Manager和Binder驱动程序的关系如下图所示:
![](http://hi.csdn.net/attachment/201107/19/0_13110996490rZN.gif)
1. Client、Server和Service Manager实现在用户空间中,Binder驱动程序实现在内核空间中
2. Binder驱动程序和Service Manager在Android平台中已经实现,开发者只需要在用户空间实现自己的Client和Server
3. Binder驱动提供设备文件/dev/binder与用户空间交互,Client、Server和Service Manager通过open和ioctl文件操作函数与Binder驱动程序进行通信
4. Client和Server之间的进程间通信通过Binder驱动程序间接实现
5. Service Manager是一个守护进程,用来管理Server,并向Client提供查询Server接口的能力
至此,对Binder机制总算是有了一个感性的认识。
2, AIDL(Binder)
3, 广播BroadCast
4, 内容提供者ContentProvider
-----------------------------------------------分割线----------------------------------------------
5,Messager(内部通过binder实现)
6,文件共享
7,socket
--------------------------------------------Binder底层原理----------------------------------------
Binder是一种进程间通信机制,它提供远程过程调用(RPC)功能; Binder作为一个类,它能和不同进程之间进行通信。从英文字面上意思看,Binder具有粘结剂的意思,那么它把什么东西粘结在一起呢?在Android系统的Binder机制中,由一些系统组件组成,分别是Client、Server、Service Manager和Binder驱动程序,其中Client、Server和Service Manager运行在用户空间,Binder驱动程序运行内核空间。Binder就是一种把这四个组件粘合在一起的粘结剂了,其中,核心组件便是Binder驱动程序了,Service Manager提供了辅助管理的功能,Client和Server正是在Binder驱动和Service Manager提供的基础设施上,进行Client-Server之间的通信。Service Manager和Binder驱动已经在Android平台中实现好,开发者只要按照规范实现自己的Client和Server组件就可以了。
总结一下,Android系统Binder机制中的四个组件Client、Server、Service Manager和Binder驱动程序的关系如下图所示:
![](http://hi.csdn.net/attachment/201107/19/0_13110996490rZN.gif)
1. Client、Server和Service Manager实现在用户空间中,Binder驱动程序实现在内核空间中
2. Binder驱动程序和Service Manager在Android平台中已经实现,开发者只需要在用户空间实现自己的Client和Server
3. Binder驱动提供设备文件/dev/binder与用户空间交互,Client、Server和Service Manager通过open和ioctl文件操作函数与Binder驱动程序进行通信
4. Client和Server之间的进程间通信通过Binder驱动程序间接实现
5. Service Manager是一个守护进程,用来管理Server,并向Client提供查询Server接口的能力
至此,对Binder机制总算是有了一个感性的认识。
![](https://images2015.cnblogs.com/blog/774260/201702/774260-20170220201741976-878434072.png)
相关文章推荐
- [POJ 3411]Paid Roads[BFS][状压]
- startActivityForResult用法详解
- 最详细的Codis集群扩容方法
- JavaScript位移运算符(无符号) >>> 三个大于号 的使用方法详解
- java 集合 collection内容总结
- java学习笔记(2)
- Mac OSX 的字体渲染
- poj3252 Round Numbers
- SAS Options
- TCP实现过程详解
- Dubbo与Zookeeper、SpringMVC整合和使用(负载均衡、容错)
- 1009 二叉搜索树
- C#/.NET RestSharp网络组件实现上传文件到远程服务器
- 揭开智能配置上网(微信Airkiss)的神秘面纱
- Grizzly:Java NIO框架
- ArduPilot稳定版分支编译
- 测试
- opencv特征检测之角点检测
- VA_X配置Snippet,自定义注释方式
- hibernate配置