ITKeyword,专注技术干货聚合推荐

注册 | 登录

Android binder系统架构

kickxxx 分享于 2013-05-31

推荐:Android Binder机制(1):Binder架构分析

从这篇博客开始,将进入Binder机制的分析系列,顺序是先讲解Binder机制的框架,理解了整体思想后,再深入分析各层的细节实现,最后会实现一个自己的本地服务。 1

2018阿里云全部产品优惠券(新购或升级都可以使用,强烈推荐)
领取地址https://promotion.aliyun.com/ntms/yunparter/invite.html?userCode=zo93kaue


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数据读取,写入和请求处理框架。

推荐:Android的系统架构

Android的系统架构 首先来看看Android 系统架构图: 从上图可以看出,Android系统架构分为四层结构,从下往上分别是Linux内核层、系统运行库层、应用程序框架层

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


3. Binder核心库

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


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

Binder框架分别有两种实现方案JAVA C++,主要供应用程序使用,他们通过调用Binder的核心库来实现。


推荐:Android系统架构

Android系统架构总体可分为四层结构,分别是应用程序层、应用程序框架层、系统运行库层以及Linux内核层。 如下图所示: 一、应用程序层         Android平台不仅

1. binder驱动 是客户端和服务器端交换请求和处理结果的中介, 客户端先获得服务器端的代理对象,通过调用代理对象的方式向服务器端发送请求。 代理对象将用户的请求通过Binder驱动发送到服务器

相关阅读排行


用户评论

游客

相关内容推荐

阿里云RDS

最新文章

×

×

请激活账号

为了能正常使用评论、编辑功能及以后陆续为用户提供的其他产品,请激活账号。

您的注册邮箱: 修改

重新发送激活邮件 进入我的邮箱

如果您没有收到激活邮件,请注意检查垃圾箱。