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

Android平台一个突出的特点就是打破传统应用开发那种程序独立,进程独立的特性,最大限度实现了复用的理念。
在传统的平台中,进程是完全独立的,P1和P2直接是完全独立的,像有一道墙一样。
N`@Y)LV(AX8){13I[W]@MXBAndroid平台的IPC机制的模型((Inter Process Communications)--Binderandroid
而Android平台打破了这道墙,就是android的Binder机制
imageN`@Y)LV(AX8){13I[W]@MXBAndroid平台的IPC机制的模型((Inter Process Communications)--Binderandroid
现在来分析下Binder的机制,在传统的平台中,有DCOM,MS等技术,而Binder的本质也是MS技术的衍生
imageimageN`@Y)LV(AX8){13I[W]@MXBAndroid平台的IPC机制的模型((Inter Process Communications)--Binderandroid
假设P2想调用P1的一个方法,因为中间有一道墙是没办法直接调用的,是通过一个代理来完成对P1进程方法的调用的
imageimageimageN`@Y)LV(AX8){13I[W]@MXBAndroid平台的IPC机制的模型((Inter Process Communications)--Binderandroid
代理完成的是对P1的f1的方法的映射,但是这里并不是真实的f1方法,只是命令行,还是P1进程完成的方法的执行
imageimageimageimageN`@Y)LV(AX8){13I[W]@MXBAndroid平台的IPC机制的模型((Inter Process Communications)--Binderandroid
而这样就有大部分重复的工作,而Android是通过c++的template来完成的,完成对这些冗余代码的封装也就是binder了
通过IBinder接口的继承形成了一个Server和clent的机制
P2像操作系统的binder驱动层发送一个对P1方法的请求,而且binder驱动层完成一个对f1的调用和反馈。
Tags: 

延伸阅读

最新评论

发表评论