【发布时间】:2014-06-29 10:59:17
【问题描述】:
我正在编写本机共享库,它需要 Android 支持,并且我需要在使用该库的所有进程之间共享一些数据(UID 和一些附加字段)。在 Linux 中,对此的好机会是 POSIX 共享内存。但 Android NDK 不支持 POSIX 共享内存。有 ashmem,但是为了从其他进程访问共享内存区域,我需要使用 binder IPC 来传输打开的文件描述符。但这不是
合理的,因为当其他进程想要访问共享数据时,可能会终止创建区域的进程。
有什么办法可以解决我的 Android 共享内存问题?
【问题讨论】:
-
ashmem 有引用计数器,因此其他进程仍然可以使用该区域,即使创建它的进程已被清除
标签: android c++ android-ndk shared-libraries shared-memory