Binder介绍

来源:互联网 发布:mac怎么看西瓜影音 编辑:程序博客网 时间:2024/05/16 06:57

Binder介绍

转自:http://www.maiziedu.com/wiki/component/binder/


Binder是一个分布式的组件架构,它类似于COM和CORBA。最初用于构建传统的操作系统BeOS的系统级消息传递机制的,在BeOS退出历史舞台之后,又被Palm收购用于Palm OS。

 


Binder的特点


(1)Binder是一种同步的通信方式。

(2)传输的数据都是采用函数参数的形式进行的

(3)高性能,使用ioctl来进行通信,会绕开文件系统缓冲,达到实时交互的目的

(4)安全,以进程为单位进行通信,进程运行时的uid/gid也会在Binder通信时被用于权限判断

 


Binder简介


Binder构建于Linux内核里的一个叫binder的驱动之上,系统里所有涉及Binder通信的部分,都通过与/dev/binder的设备驱动交互来得到信息互通的功能。而binder本身只是一种借用内存作后端的“伪驱动”,并不对应到硬件,而只是作用于一段内存区域。

 

传值不是指什么,就是你经常里头有个xml文件我去读一下xml文件,不是这个文件是我直接要用,我进程1想直接把你进程2的某一个方法拿来用一下,行不行,说白了我想用一下你的某个内存地址,行不行啊。

 

这个概念就有点像我们以前线程迁移的一个概念,玩过c和c++的同学知道线程迁移就是,这两个线程之间一个线程去访问另一个线程,它通过一套机制让你在访问a线程访问b线程的时候,就好像在访问自己本地线程一样,这样的一个效果。

 

那么好我向他


android1.png 


这个时候我需要去访问它的时候,就不能直接去用它,你想一下我直接去用它间,是不是会出现问题啊,因为不安全吗,我们是不允许这样子的,所以我们怎样去用呢。


android2.png 


我们把它认为这还一个客户端,这是一个服务器端,那么这个客户端和服务器端的通讯我们怎么来弄,大家想一下,说白了就是

客户端:能向服务器发送信息,提出请求。

服务器:能接收客户端发来的请求,并能发送数据给客户端以做出回应。



电脑的双重角色


从这里可以看出,我们的电脑可以充当双重角色。

1、当我们用浏览器浏览网页,要查看某个文件时,我们的电脑会发出请求给文件服务器,文件服务器收到请求并同意后,将文件数据传送到我们的电脑。此时,电脑充当客户端的角色。


2、当电脑和打印机通信后,打印机发送打印请求,此时我们可以令电脑发出打印信息(打印内容,单/双页打印等等)给打印机,打印机就可以开始打印了。此时电脑充当服务器的角色。

0 0
原创粉丝点击