您的位置:首页 > 运维架构 > 网站架构

Android binder系统架构

2013-12-08 03:08 246 查看
http://blog.csdn.net/kickxxx/article/details/8997727



1. binder驱动

是客户端和服务器端交换请求和处理结果的中介,

客户端先获得服务器端的代理对象,通过调用代理对象的方式向服务器端发送请求。
代理对象将用户的请求通过Binder驱动发送到服务器端
服务器进程处理用户请求,通过BInder驱动返回处理结果给客户端的服务器代理对象。

2. Binder Adapter 

是对Binder驱动的封装,主要用于操作Binder驱动,实现包括IPCThreadState.cpp和ProcessState.cpp,以及Parcel.cpp的部分内容。

他们位于Android源代码的frameworks/base/include/binder和frameworks/base/libs/binder两个文件夹中,其中ProcessState类中包含了通信细节,利用open_binder打开设备节点/dev/binder。通过ioctl建立基本的通信框架,每个进程只有一个ProcessState对象,每一个线程都会有一个IPCThreadState对象,它主要负责Binder数据读取,写入和请求处理框架。

ProcessState是一个singleton类型,其作用是维护当前进程中的所有Service代理。一个客户端进程可能需要多个Service服务,这样可能会创建多个Service代理,客户端进程中的ProcessState对象就负责维护这些Service代理

3. Binder核心库

是Binder框架的核心实现,主要包括iBinder,Binder(服务器端)和BpBinder(客户端);

4. Binder框架,Binder客户端/服务器端

Binder框架分别有两种实现方案JAVA C++,主要供应用程序使用,他们通过调用Binder的核心库来实现
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: