android共享内存

在android下不能通过shm_open使用共享内存。

网上有好多关于android下使用Ashmem实现共享内存的,但经过尝试该方法可以mmap出内存,但是和另一个进程没有实现共享。

具体的使用方法:

1)fd = open("/dev/ashmem", O_RDWR);

2)ioctl(fd, ASHMEM_SET_NAME, region_name);
3)ioctl(fd, ASHMEM_SET_SIZE, region_size);

4)ptr=mmap(NULL, len , PROT_READ|PROT_WRITE, MAP_SHARED , fd , 0);

上面方法没有实现两个进程间的内存共享。

使用以下方式实现了进程间的数据共享。

1>直接使用open("filename", O_RDWR|O_CREAT); 通过文件实现数据共享。

2>ParcelFileDescriptor和Ashmem结合使用。fd = open("/dev/ashmem", O_RDWR)创建出来的fd转化成ParcelFileDescriptor通过aidl传到另一进程。另个进程可以直接使用。

上一篇:升级 asp.net core 1.1 到 2.0 preview


下一篇:git init 后关联github仓库是发生错误: