Binder机制详解

作者: Android架构 | 来源:发表于2019-02-25 21:19 被阅读4次

什么是Binder

  1. 直观来说,Binder是Android中的一个类,它继承了IBinder接口

  2. 从IPC角度来说,Binder是Android中的一种跨进程通信方式,Binder还可以理解为一种虚拟的物理设备,它的设备驱动是/dev/binder,该通信方式在linux中没有

  3. 从Android Framework角度来说,Binder是ServiceManager连接各种Manager(ActivityManager、WindowManager,etc)和相应ManagerService的桥梁

  4. 从Android应用层来说,Binder是客户端和服务端进行通信的媒介,当你bindService的时候,服务端会返回一个包含了服务端业务调用的Binder对象,通过这个Binder对象,客户端就可以获取服务端提供的服务或者数据,这里的服务包括普通服务和基于AIDL的服务

Binder属于android平台特有的IPC通道,也是进程间数据交互的核心内容。

安卓平台IPC方式总的来说有5种:
1、文件操作;
2、Messenger;
3、Provider;
4、AIDL;
5、Socket。
这五种方式中,2、3、4的实现都用到了Binder机制。

Binder设计结构理解

1、通信进程两端两个重要对象:一个是本地端的Proxy远程引用对象,一个是远程端的Stub实体对象
2、client端Proxy对象可以根据所定义的继承IInterface接口的相关约定方法来操作server端Stub实体类。
3、Android中在使用系统服务的时候通过getSystemService方法获取到的其实都是Stub把远端的Binder转化的对象,因为系统服务都是在system_server进程中,所以肯定是跨进程获取对象的,那么这个Binder对象其实就是上面的Proxy对象
4、除client和Proxy进程外,还存在者一个serverManager所在的进程(0号引用获取),用来存储proxy引用与stub实体的对应关系。
5、简单理解:ProxyBinder的transact方法调用后会同步(可异步)调用到Stub类的onTransact.这中间进程间数据的一次拷贝都是在系统空间的Binder驱动中完成。

官方图 模型原理图 应用层角度看-binder机制原理
【附录】 资料图

需要资料的朋友可以加入Android架构交流QQ群聊:513088520

点击链接加入群聊【Android移动架构总群】:加入群聊

获取免费学习视频,学习大纲另外还有像高级UI、性能优化、架构师课程、NDK、混合式开发(ReactNative+Weex)等Android高阶开发资料免费分享。

相关文章

  • 2.6基础知识-Binder

    Binder详解 1 .Linux内核的基础知识(跟Binder有关的) Binder通信机制介绍 AIDL实现 ...

  • 技术性文章――链接

    Binder机制详解Binder源码序列文章插件化热修复插件化测试工具MonkeyDagger2详解Dagger2...

  • 2018-09-04 binder

    【转】图文详解 Android Binder跨进程通信的原理 [【转】](Android Binder机制(超级详...

  • Android IPC之Binder机制分析

    原文链接: ---Android IPC之Binder机制分析--- 更多精彩请点击:AIDL实现IPC详解---...

  • Binder机制详解

    什么是Binder 直观来说,Binder是Android中的一个类,它继承了IBinder接口 从IPC角度来说...

  • Android 面试宝典

    Android跨进程通信:图文详解 Binder机制 原理 Picasso,Glide,Fresco对比分析 拆轮...

  • Android Binder机制详解

    Android系统中,涉及到多进程间的通信底层都是依赖于Binder IPC机制。Binder,英文意思是别针、回...

  • Android framework学习索引

    binder基础 启动流程要求对于binder机制有了解,要有binder的学习基础binder机制https:/...

  • Android-Binder机制详解

    最近在学习Binder机制,通过书籍和网络上查找了大量的资料,也看了大量的博客,都是从底层讲的,全是C的代码,看的...

  • 图文详解 Binder机制(转)

    看了不少讲Android的ipc通信binder机制的文章,这篇写得深入浅出,保存一下。https://blog....

网友评论

    本文标题:Binder机制详解

    本文链接:https://www.haomeiwen.com/subject/fbenyqtx.html