Область общей памяти в NDK
Я хочу иметь общий блок памяти (ashmem
регион), который сопоставлен и доступен из нативного кода. Я также хочу, чтобы этот блок использовался несколькими приложениями. Я тоже хочу чтобы он работал на SDK level 7 (Android 2.1)
Есть два маршрута. Я могу создать область, shmem в родном коде; но тогда возникает вопрос - как передать дескриптор целочисленного файла другому процессу? Вы можете маршалFileDescriptor
объекты черезParcel
, но нет способа построить один вокруг необработанного FD. Есть такжеParcelFileDescriptor
который поддерживает построение и извлечение целочисленных FD, но соответствующие методы поддерживаются только на уровне SDK 12 или даже выше.
В качестве альтернативы я могу создатьMemoryFile
, Этопугающий путь передать его в посылки. Но как мне извлечь из него файловый дескриптор, чтобы нативный кодmmap()
?