android进程间通信之Binder机制的学习目录概览

1、binder底层实现讲解:http://blog.csdn.net/coding_glacier/article/details/7520199,讲的挺好的,如果看完了就可以明白其他大多数的有关文章的讲解了,不过只讲了native层的原理,Java层的没有讲解,不过自己也可以推测出Java层的api实现,下面还会讲解。

2、activity调用远程服务时在Java层实现的Binder机制的衔接:

2.1、Android在Java层使用AIDL实现binder机制,相当于是衔接底层的binder机制;

远程服务端的onBind方法返回的Binder其实是服务端接收到内容后的处理器,调用Binder的onTransact()方法处理;

但其实远程服务肯定还有自己实现一些比如向ServiceManager进程注册并设置某个Binder对象为处理对象等。

activity端调用bindService中的成功绑定的回调方法中的IBinder对象其实是对应服务端的代理接口,调用它的transact方法向BinderDriver提交请求数据;

2.2、Android在Java层同样可以使用Messenger来衔接Binder机制,相关例子可以百度;

2.3、我们其实还可以自己实现Binder机制的衔接,即不通过AIDL和Messenger的方法,因为这两种方法也只是封装而已,具体可以参见我另外收藏的一篇鸿洋的文章:http://blog.csdn.net/lmj623565791/article/details/38461079

3、讲来讲去,上面的activity进程和远程服务进程在进行通信时其实已经和底层的BInder机制的衔接部分已经做好了,我们只是在它的基础上进行通信操作而已;就如2.1提到的一样:这两个进程已经做了很多东西了。

但是Android中如何实现任意两个进程间的通信呢?即我们如何自己手动去衔接底层呢?有待研究。


猜你喜欢

转载自blog.csdn.net/jiayouwangqiuwangzi/article/details/68065915