Android系统中进程间通讯(IPC)的一种方式,Android中ContentProvider、Intent、aidl都是基于Binder
内存管理
Binder最大只能传1M的数据,因为Binder驱动只预留了一段1M大小的虚拟地址
mmap中定义BINDER_VM_SIZE为1M,Binder数据需要跨进程传递,需要在内核上开辟空间,所以允许在Binder上传递的数据不是无限大的
Binder 架构
通信采用C/S架构,包含Client、 Server、 ServiceManager 以及 Binder 驱动
在 framework 层进行了封装,通过 JNI 技术调用 Native(C/C++)层的 Binder 架构
在 Native 层以 ioctl 的方式与 Binder 驱动通讯


注册服务端
通过 ServiceManager 注册服务。向 Binder 驱动的全局链表 binder_procs 中插入服务端的信息,然后向ServiceManager的svcinfo列表中缓存注册的服
本文详细介绍了Android系统中的Binder机制,作为进程间通讯的主要方式,Binder涉及到内存管理、C/S架构、注册服务与获取服务的过程。讲解了Binder的最大数据传输限制、注册服务端和获取服务端的步骤,以及Binder驱动如何在服务端和客户端之间传递请求。
订阅专栏 解锁全文
1823

被折叠的 条评论
为什么被折叠?



