Binder主要提供以下一些功能:
- 用驱动程序来推进进程间的通信。
- 通过共享内存来提高性能。
- 为进程请求分配每个进程的线程池。
- 针对系统中的对象引入了引用计数和跨进程的对象引用映射。
- 进程间同步调用。
在实际的实现中,Binder是作为一个特殊的字符型设备而存在的,设备节点为/dev/binder,其实现遵循Linux设备驱动模型。
binder_ioctl() // 与用户空间的进程交换数据
---- binder_thread_read() // 用于发送请求或返回结果
---- binder_thread_write() // 用于读取结果