没有合适的资源?快使用搜索试试~ 我知道了~
Android进程间通信(IPC)机制Binder简要介绍和学习计划
需积分: 9 3 下载量 10 浏览量
2012-10-27
20:00:43
上传
评论 1
收藏 1010KB PDF 举报
温馨提示
Android进程间通信(IPC)机制Binder简要介绍和学习计划
资源推荐
资源详情
资源评论
12-9-9 Android进程间通信(IPC)机制Binder简要介绍和学习计划 - 老罗的Android之旅 - 博客频道 - …
1/5blog.csdn.net/luoshengyang/article/details/6618363
老罗的Android之旅
分类: Android
新版论坛系列介绍之二——功能介绍篇 公告:CSDN博客频道博客搬家功能上线! JavaEE快速开发平台G4Studio作者熊春专访
中国最大规模移动开发者高水平盛会 没有重量只有质量:iPad版《程序员杂志》应用上线 “第一次亲密接触”——有奖征文活动
Android进程间通信(IPC)机制Binder简要介绍和学习计划
2011-07-20 02:36 25014人阅读 评论(32) 收藏 举报
在Android系统中,每一个应用程序都是由一些Activity和Service组成的,一般Service运行在独立的进程
中,而Activity有可能运行在同一个进程中,也有可能运行在不同的进程中。那么,不在同一个进程的Activity或者
Service是如何通信的呢?这就是本文中要介绍的Binder进程间通信机制了。
我们知道,Android系统是基于Linux内核的,而Linux内核继承和兼容了丰富的Unix系统进程间通信(IPC)
机制。有传统的管道(Pipe)、信号(Signal)和跟踪(Trace),这三项通信手段只能用于父进程与子进程之
间,或者兄弟进程之间;后来又增加了命令管道(Named Pipe),使得进程间通信不再局限于父子进程或者兄弟
进程之间;为了更好地支持商业应用中的事务处理,在AT&T的Unix系统V中,又增加了三种称为“System V
IPC”的进程间通信机制,分别是报文队列(Message)、共享内存(Share Memory)和信号量
(Semaphore);后来BSD Unix对“System V IPC”机制进行了重要的扩充,提供了一种称为插口(Socket)的进
程间通信机制。若想进一步详细了解这些进程间通信机制,建议参考Android学习启动篇一文中提到《Linux内核
源代码情景分析》一书。
但是,Android系统没有采用上述提到的各种进程间通信机制,而是采用Binder机制,难道是因为考虑到了
移动设备硬件性能较差、内存较低的特点?不得而知。Binder其实也不是Android提出来的一套新的进程间通信机
制,它是基于OpenBinder来实现的。OpenBinder最先是由Be Inc.开发的,接着Palm Inc.也跟着使用。现在
OpenBinder的作者Dianne Hackborn就是在Google工作,负责Android平台的开发工作。
前面一再提到,Binder是一种进程间通信机制,它是一种类似于COM和CORBA分布式组件架构,通俗一
点,其实是提供远程过程调用(RPC)功能。从英文字面上意思看,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机制是最难
理解的了,而Binder机制无论从系统开发还是应用开发的角度来看,都是Android系统中最重要的组成,因此,很
有必要深入了解Binder的工作方式。要深入了解Binder的工作方式,最好的方式莫过于是阅读Binder相关的源代
码了,Linux的鼻祖Linus Torvalds曾经曰过一句名言RTFSC:Read The Fucking Source Code。
虽说阅读Binder的源代码是学习Binder机制的最好的方式,但是也绝不能打无准备之仗,因为Binder的相关
源代码是比较枯燥无味而且比较难以理解的,如果能够辅予一些理论知识,那就更好了。闲话少说,网上关于
Binder机制的资料还是不少的,这里就不想再详细写一遍了,强烈推荐下面两篇文章:
Android深入浅出之Binder机制
Android Binder设计与实现 – 设计篇
Android深入浅出之Binder机制一文从情景出发,深入地介绍了Binder在用户空间的三个组件Client、Server
和Service Manager的相互关系,Android Binder设计与实现一文则是详细地介绍了内核空间的Binder驱动程序的
数据结构和设计原理。非常感谢这两位作者给我们带来这么好的Binder学习资料。总结一下,Android系统Binder
机制中的四个组件Client、Server、Service Manager和Binder驱动程序的关系如下图所示:
原创:57篇 转载:0篇
译文:0篇 评论:2343条
(32295)
(28261)
(25647)
(25013)
(22558)
(21698)
(17745)
(17309)
(16836)
(16707)
个人资料
Luoshengyang
访问:632589次
积分:7308分
排名:第333名
博客公告
本博客所有文章均为原创,欢
迎交流,欢迎转载;转载请勿
篡改内容,并且注明出处,禁
止用于商业目的,谢谢!
博客专栏
老罗的Android
之旅
文章数:57篇
阅读量:
632050
阅读排行
在Ubuntu上下载、编译和安装Android最新源代码
Android应用程序启动过程源代码分析
在Ubuntu上为Android系统编写Linux内核驱动程序
Android进程间通信(IPC)机制Binder简要介绍和学习计划
Android硬件抽象层(HAL)概要介绍和学习计划
在Ubuntu上下载、编译和安装Android最新内核源代码(Linux Kernel)
在Ubuntu上为Android增加硬件抽象层(HAL)模块访问Linux内核驱动程序
Android应用程序键盘(Keyboard)消息处理机制分析
浅谈Service Manager成为Android进程间通信(IPC)机制Binder守护进程之路
在Ubuntu为Android硬件抽象层(HAL)模块编写JNI方法提供Java访问硬件服务接口
评论排行
爱生活,爱Android
目录视图 摘要视图 订阅
您还未登录!| 登录 | 注册 | 帮助首页 业界 移动 云计算 研发 论坛 博客 下载 更多
资源评论
xinwanjiang
- 粉丝: 0
- 资源: 5
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- (源码)基于SimPy和贝叶斯优化的流程仿真系统.zip
- (源码)基于Java Web的个人信息管理系统.zip
- (源码)基于C++和OTL4的PostgreSQL数据库连接系统.zip
- (源码)基于ESP32和AWS IoT Core的室内温湿度监测系统.zip
- (源码)基于Arduino的I2C协议交通灯模拟系统.zip
- coco.names 文件
- (源码)基于Spring Boot和Vue的房屋租赁管理系统.zip
- (源码)基于Android的饭店点菜系统.zip
- (源码)基于Android平台的权限管理系统.zip
- (源码)基于CC++和wxWidgets框架的LEGO模型火车控制系统.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功