因此在 Android 上既没有 POSIX 共享内存也没有 SysV 共享内存,但是有 ashmem
。我想用它从 native 子系统的崩溃中收集一些事后分析信息(比如 here )。问题 - 当持有 ashmem 区域句柄的进程死亡时,我可以让 ashmem 区域持续存在吗? ashmem 的记录在哪里?
最佳答案
看起来没有固定区域的内置方法。所以我构建了一个进程外服务,我将一个描述符传递给一个区域,并希望该服务比主进程长。众所周知,Android 上的后台服务没有终身保修。
该服务有一个类型为 ParcelFileDescriptor
的静态变量,并支持两个 Binder 命令 - GET 和 SET。它们分别在响应包中返回所述描述符,并从请求包中分配它,关闭当前持有的包(如果有的话)。
关于android - Ashmem 保留政策,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12847301/