匿名共享内存系统
【匿名共享内存系统】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中创建一个临时文件,与匿名共享内存对应。
推荐阅读
- JAVA(抽象类与接口的区别&重载与重写&内存泄漏)
- Java内存泄漏分析系列之二(jstack生成的Thread|Java内存泄漏分析系列之二:jstack生成的Thread Dump日志结构解析)
- iOS内存对齐原则
- jvm|【JVM】JVM08(java内存模型解析[JMM])
- 内存管理概念与原理以及解决办法
- c语言|一文搞懂栈(stack)、堆(heap)、单片机裸机内存管理malloc
- C语言学习(bit)|16.C语言进阶——深度剖析数据在内存中的存储
- 内存管理
- Java内存溢出及解决
- iOS【NotificationContent-App|iOS【NotificationContent-App Group共享】