匿名共享内存系统

【匿名共享内存系统】1.驱动初始化处理

匿名共享内存系统
文章图片
图片发自App
匿名共享内存系统
文章图片
图片发自App 2.类MemoryHeapBase继承了类BnMemoryHeap,作为binder机制中Server的角色需要实现IMemoryHeap接口,主要功能是实现类IMemoryHeap中成员函数,描述一块匿名共享内存服务。类在文件framework/native/include/binder/Memory/HeapBase.h中定义。

匿名共享内存系统
文章图片
图片发自App 3.类BpMemoryHeap是类MemoryHeapBase在client端进程的远程访问接口类。

匿名共享内存系统
文章图片
图片发自App
匿名共享内存系统
文章图片
图片发自App 可以看到核心代码是通过HEAP_ID从服务端获取到parcel_fd,然后dup,接口mmap来得到自己的共享内存基地址。所谓“匿名”的意思是指driver层在临时文件系统tmpfs中创建一个临时文件,与匿名共享内存对应。

    推荐阅读