1.驱动初始化处理
2.类MemoryHeapBase继承了类BnMemoryHeap,作为binder机制中Server的角色需要实现IMemoryHeap接口,主要功能是实现类IMemoryHeap中成员函数,描述一块匿名共享内存服务。类在文件framework/native/include/binder/Memory/HeapBase.h中定义。
3.类BpMemoryHeap是类MemoryHeapBase在client端进程的远程访问接口类。
可以看到核心代码是通过HEAP_ID从服务端获取到parcel_fd,然后dup,接口mmap来得到自己的共享内存基地址。所谓“匿名”的意思是指driver层在临时文件系统tmpfs中创建一个临时文件,与匿名共享内存对应。