Binder学习资料

Binder学习资料

置顶

Android Bander设计与实现 - 设计篇

前无古人后无来者的一篇Binder总结,设计的角度。11年的文章应该是2.2的Android代码。建议学完各种情景后再回来阅读一遍,如果能看懂那就说明真的学到了。

系列文章大而全

Android2.2

深入理解Android(卷一)第六章 深入理解Android

Android2.3

Android系统源代码情景分析 第5章 Binder进程间通信系统

书中的内容老罗在博客也有,我感觉网页阅读比纸质书更方便些,下面是博客链接,只放系列头

Android进程间通信(IPC)机制Binder简要介绍和学习计划

Android4.0

红茶一杯话Binder(初始篇)

这系列文章图不错

Android4.2.2

深入理解Android(卷三)第二章 深入理解java Binder和MessageQueue

Android4.4.2

Android Binder机制(一) Binder的设计和框架

Android6.0

Binder系列—开篇

袁辉辉的系列博客,十几篇。比较其他文章这里会涉及到如何调试和使用。

Android7.1

Android Binder框架实现之Binder的设计思想

Android10

Android10.0 Binder通信原理(一)Binder、HwBinder、VndBinder概要

HwBinder入门篇-Android10.0 HwBinder通信原理(一)

也是一个系列博客,值得关注的是这里还有hwbinder。

其他视角

除了以上系列的文章,比较“大”的文章外,还有其他视角值得关注

Binder | 内存拷贝的本质和变迁

从变迁的视角更好地理解binder,认识古今过往

Android Binder开发实战指南之创建Native Binder Service

这是系列博客,可以学习下如何实现Binder服务以及代理,提供给其他进程使用。光看不动手是不行滴

期末考试

听说你Binder机制学的不错,来解决下这几个问题(一)
听说你 Binder 机制学的不错,来解决下这几个问题(二)
听说你 Binder 机制学的不错,来解决下这几个问题(三)

这系列文章的题目可以算是最终的关卡,检验自己是否真的熟知binder机制细节

如果能答对80%以上那可以说学会了。

写在后面

binder机制比较庞大复杂,在我的学习过程中有几个印象深的情景、问题

  • binder驱动

驱动基础;binder驱动的数据结构;open、mmap、ioctl的流程动作;如何找到对端的?传说中的一次拷贝在哪?

  • ServiceManager

启动流程,提供的服务

  • native程序/java程序

进程启动流程中如何与binder驱动交互(无论客户端还是服务端)

  • 实名binder的add、get流程

  • 匿名binder

什么是匿名binder?bindService绑定服务的实现?

  • 数据传输

数据如何流转的,包装了几层,如何解包的?

binder对象如何跨进程传输?

为什么Binder对象传过去就变成了BpBinder对象?

  • 上手编码

如何写binder服务端,客户接口,有哪几步?native和java


个人笔记,本文会持续更新,希望能对binder初学者有所帮助

作者:秋城 | 博客:https://www.cnblogs.com/houser0323 | 转载请注明作者出处
原文地址:https://www.cnblogs.com/houser0323/p/14682582.html