[英]How to release ashmem
分配和使用ashmem效果很好:
ashmemFD = open("/dev/ashmem", O_RDWR);
int ret = ioctl(ashmemFD, ASHMEM_SET_NAME, "vf");
ioctl(ashmemFD, ASHMEM_SET_SIZE, size);
ashmap = mmap(NULL, size, PROT_READ | PROT_WRITE, MAP_SHARED, ashmemFD, 0);
但是问题是,使用后仅取消映射就足够了吗,还是我需要做更多的事情才能再次释放内存?
munmap((void*) ashmap,size);
取消映射后,需要关闭所有到ashmem区域的文件描述符。
Ashmem区域可以看作是内核处理的基于内存的文件。 只要其中之一具有打开的文件描述符,它将保存在内存中。
希望这可以帮助。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.