毫不夸张地说,Binder是Android系统中最重要的特性之一;正如其名“粘合剂”所喻,它是系统间各个组件的桥梁,Android系统的开放式设计也很大程度上得益于这种及其方便的跨进程通信机制。
理解Binder对于理解整个Android系统有着非常重要的作用,Android系统的四大组件,AMS,PMS等系统服务无一不与Binder挂钩;如果对Binder不甚了解,那么就很难了解这些系统机制,从而仅仅浮游与表面,不懂Binder你都不好意思说自己会Android开发;要深入Android,Binder是必须迈出的一步。
现在网上有不少资料介绍Binder,个人觉得最好的两篇如下:
其中, 《Binder设计与实现》以一种宏观的角度解释了Android系统中的Binder机制,文章如行云流水;如果对于Binder有一定的了解再来看着篇文章,有一种打通任督二脉的感觉;每看一次理解就深一层。老罗的系列文章则从系统源码角度深入分析了Binder的实现细节;具有很大的参考意义;每当对于Binder细节有疑惑,看一看他的书就迎刃而解。
但是遗憾的是,Binder机制终究不是三言两语就能解释清楚的,一上来就扒出源码很可能深陷细节无法自拔,老罗的文章那不是一般的长,如果看不懂强行看很容易睡着;勉强看完还是云里雾里;相反如果直接大谈特谈Binder的设计,那么完全就是不知所云;因此上述两篇文章对于初学者并不友好,本文不会深入源码细节,也不会对于Binder的设计高谈阔论;重点如下: