我正在将一个*nix平台下的库移植到Android系统,这个库使用共享内存或者shm
。但是Android没有System V的shm
,取而代之的是ashmem
。
有没有人知道一个映射shm
调用到ashmem
的适配库?Google搜索并没有提供很大的帮助。
我正在将一个*nix平台下的库移植到Android系统,这个库使用共享内存或者shm
。但是Android没有System V的shm
,取而代之的是ashmem
。
有没有人知道一个映射shm
调用到ashmem
的适配库?Google搜索并没有提供很大的帮助。
int fd = ashmem_create_region("SharedRegionName", size);
并使用文件描述符获取基地址:
int base_address = mmap(NULL, size, PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0);
这里有一个库,可以通过 LD_PRELOAD 来模拟使用 Android ashmem (shmget/shmat/shmdt/shmctl 调用) 的 Linux 共享内存,你也可以直接链接到这个库。