繁体   English   中英

如何释放Ashmem

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM