Android Binder机制

来源:互联网 发布:开过淘宝店铺能注销吗 编辑:程序博客网 时间:2024/06/07 02:15

Android系统的虚拟地址内存分为用户空间和内核空间,用户空间是非共享的,只让应用自己访问,内核空间是共享的,Binder通过共享内核空间实现进程间通信。


Binder把进程A生成的IPC数据(在用户空间生成),传递给BinderDriver,Binder Driver在内核空间运行,之后Binder Driver再把IPC数据传递给进程B。IPC数据由4部分组成,Handle、RPC数据、RPC代码、Binder协议,Handle是服务号,用来区分不同的服务,RPC代码和RPC数据分别是B应用待调用的函数和函数的参数,Binder协议表示IPC数据的处理方法,包括两种,从IPC层传递到Binder Driver和从Binder Driver传递到IPC层。



IPC数据从A应用传递到BinderDriver,Open()函数会调用Binder Driver的文件描述符,然后通过mmap()系统调用,在内核中开辟一块区域,存放接收的IPC数据,最后调用ioctl()函数,将IPC数据作为参数传递给Binder Driver。之后Binder Driver再把数据传递到B应用,所以binder是靠共享内存实现的进程间通信。

参考链接:

http://m.blog.csdn.net/article/details?id=50803196




0 0
原创粉丝点击