- Binder用于完成进程间通信,它是一种工作在Linux层面的架构,这种架构提供了服务端接口,Binder驱动,客户端接口三个模块
- 服务端,一个Binder服务端实际上就是一个Binder对象,该对象一旦创建就会启动一个线程,用于接收Binder驱动发送的消息,收到消息后会执行到Binder对象的onTransact()函数,并按照该函数的参数执行不同的服务代码,要实现一个Binder服务,必须重载onTransact()方法
- Binder驱动:任何一个Binder对象被创建时,同时会在Binder驱动中创建一个mRemote对象,该对象类型也是Binder,客户端要访问远程服务时都是通过mRemote对象
- 客户端:客户端要访问远程服务,必须获得mRemote引用,然后调用其transact()方法,Android提供了Service用于返回Binder
- ServiceManager:一个独立的进程,管理各种系统服务,其本身也是一个Service. ServiceManager所管理的所有Service都是以响应的Manager返回给客户端,客户端一般不能直接通过Binder引用去访问具体服务,而是经过一个Manager,响应的Manager类对客户端是可见的,而远程服务类对客户端则是隐藏的,这些Manager类中都会有一个远程服务Binder的变量
Android Binder
原文:http://www.cnblogs.com/phenixyu/p/3969231.html