Binder是Android系统提供的一种IPC( 进程间通信) 机制。 由于Android是基于Linux内核的, 因此除了Binder以外,还存在其他的IPC机制, 例如管道和socket等。
Binder相对于其他IPC机制来说, 就更加灵活和方便了。在基于Binder通信的C/S架构体系中, 除了C/S架构所包括的Client端和Server端外, Android还有一个全局的ServiceManager端, 它的作用是管理系统中的各种服务( Service)。除此之外还有一个很重要的东西,就是Binder驱动程序。因为Android基于linux系统,在linux系统中每个进程都有独立的用户空间,例如前面提到的Client端就应该属于客户端进程中,Service端就应该属性服务端进程之中,他们相互隔离即不能直接通信,因此就诞生了一个属于android特定的binder驱动程序,因为是驱动程序,所以它位于内核空间(注意不同的进程共同拥有这个内核空间),这样才能实现进程之间的通信。他们的关系如下: