我的开发环境是带有NDK的Android Studio。使用NDK共享mem标头的最低SDK级别为26。 https://developer.android.com/ndk/reference/group/memory
我成功使用了孩子和父母之间的共享内存。但是问题是,我需要在fork()
之前创建文件描述符。以下是我的操作方法。
AsharedMemory_create
)。它工作正常,但需要在叉子之前由父母预先制作。我不要另外,我不想在Java中使用Parcel文件描述符。
我想在任何需要的地方共享内存,并与其他进程共享,但不使用通过它。有没有办法在孩子和父母之间使用“相同”的共享内存?还是在不同的过程之间(像有孩子的孩子)?
我尝试使文件描述符在子代和父代中具有相同名称,相同大小,以共享内存,但是它不起作用。在孩子做完同样的事情后,还试图在父母中制作File描述符和mmap,但即使我没有munmap或在孩子中关闭也无法使用。我只能得到NULL
的父母或其他孩子。不可能吗?
// ======================== (11.15.2018 Update)
================ ================
答案 0 :(得分:0)
我检查了很多事情,但无法完成。没有神奇的解决方案。 如果我想使用使用其他进程的FD的共享内存,则需要FD通过IPC获得它。 android还建议 Unix域套接字通过fd。