1.引言
android艺术探究第二章,讲述了跨进程通信的几种方式,aidl,socket,contentprivider。socket
和aidl 在近些年的工作中接触到过。aidl的本质是binder通信。这章 就学习下Binder
2.正题
2.1 java 层面的Binder 通信
首先需要知道的一点:client 跨进程调用一些service,肯定要在client端代码中获取到service的引用对象(通常是代理)。service处理完得到结果,也是通过client端的代理对象,调用其相应的方法,这样就形成一个闭环。下面是java层binder的流程:

代码对Binder驱动的调用流程分为:open,mmap,iotcl
open
函数 就是打开驱动,做驱动初始化
mmap
是一种内存映射文件的方法,即将一个文件或者其它对象映射到进程的地址空间,实现文件磁盘地址和进程虚拟地址空间中一段虚拟地址的一一对映关系
ioctl
函数是用户空间和内核空间交互数据的方法
Binder架构图:


网友评论