我想擁有一個共享內存塊(ashmem
區域),它是從本機代碼映射和訪問的。我也希望這個塊被幾個應用程序使用。我也希望它能夠在SDK級別7(Android 2.1)上工作NDK中的共享內存區域
有兩條路線。我可以用本地代碼創建一個ashmem區域;但接下來的問題是 - 如何將整型文件描述符傳遞給另一個進程?您可以通過Parcel
編組FileDescriptor
對象,但無法在原始FD周圍構建對象。還有ParcelFileDescriptor
支持構建和檢索整數FD,但相關方法只支持SDK級別12或更高。
或者,我可以創建MemoryFile
。有一個fugly way可以在Parcel中傳遞。但是,如何從中檢索文件描述符,以便本地代碼具有mmap()
?