程序员今日看点

浅析Binder(一)——开篇

2016-12-24  本文已影响164人  NoOneDev

Binder是Android系统提供的一种IPC(进程件通信)机制,由于Android基于Linux,所以除了Binder之外,还存在其他IPC机制,比如:管道,socket等。Binder的优势在于灵活,方便及安全

Android系统中主要有四个组件Client , Server , Service Manager , BinderDriver组成,关系图如下

binder.jpg

大家会发现,这个很像代理模式,不应该说就是代理模式。通俗的理解是:
宅男Client女神Server婚介所ServiceManager,网络平台Binder Driver女神Server太优秀导致没人敢要,所以先将自己的有的一些服务Service(造娃,嘿嘿嘿...)通过网络(Binder Driver)的方式挂载到婚介所,然后等待别人的联系。某一天宅男(Client)感觉很空虚,于是想娶个媳妇回家传宗接代,但是一直没有找到合适的对象,但是它知道有ServiceManager这样一个婚介所,所以他就把他对老婆的要求(造娃,嘿嘿嘿 。。。)告诉ServiceManager,然后ServiceManager查看记录发现还真有这么一个合适的对象,然后就将这个女神的PID 告诉了它,然后宅男Client再把他自己的PID告诉女神Server女神没办不想成为剩女所以只能和他通过上网的方式聊天骗取感情,但是他们一直没有见过面,所以只能通过Binder这个平台来发消息,收消息。

PS:

Binder进程间通信机制的每一个Server进程和Client进程都维护一个Binder线程池来处理进程间通信请求,因此Server进程和Client进程可以并发地提供和访问服务。Binder驱动程序向用户空间暴露了一个设备文件/dev/binder,使得应用程序进程可以间接地通过它来建立通信通道。

上面纯属扯淡,有兴趣的还是自己去看书吧!
《深入理解Android5.0源码》
《深入理解Android 卷I》
《Android系统源代码情景分析》罗升阳大神著

上一篇下一篇

猜你喜欢

热点阅读