代码改变世界

Android平台的IPC机制的模型((Inter Process Communications)--Binder

2011-06-27 20:04  bitfairyland  阅读(1493)  评论(1编辑  收藏  举报

Android平台一个突出的特点就是打破传统应用开发那种程序独立,进程独立的特性,最大限度实现了复用的理念。

在传统的平台中,进程是完全独立的,P1和P2直接是完全独立的,像有一道墙一样。

N`@Y)LV(AX8){13I[W]@MXB

而Android平台打破了这道墙,就是android的Binder机制

image

现在来分析下Binder的机制,在传统的平台中,有DCOM,MS等技术,而Binder的本质也是MS技术的衍生

image

假设P2想调用P1的一个方法,因为中间有一道墙是没办法直接调用的,是通过一个代理来完成对P1进程方法的调用的

image

代理完成的是对P1的f1的方法的映射,但是这里并不是真实的f1方法,只是命令行,还是P1进程完成的方法的执行

image

而这样就有大部分重复的工作,而Android是通过c++的template来完成的,完成对这些冗余代码的封装也就是binder了

通过IBinder接口的继承形成了一个Server和clent的机制

P2像操作系统的binder驱动层发送一个对P1方法的请求,而且binder驱动层完成一个对f1的调用和反馈。