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