Región de memoria compartida en NDK
Quiero tener un bloque de memoria compartida (unashmem
Región) que se asigna y se accede desde el código nativo. También quiero que este bloque sea usado por varias aplicaciones. También quiero que funcione en SDK nivel 7 (Android 2.1)
Hay dos rutas. Puedo crear una región ashmem en código nativo; pero luego la pregunta es: ¿cómo paso un descriptor de archivo entero a otro proceso? Usted puede ordenarFileDescriptor
objetos a través de unParcel
, pero no hay manera de construir uno alrededor de un FD en bruto. También hayParcelFileDescriptor
que admite la construcción y recuperación de FD enteros, pero los métodos relevantes solo se admiten en el nivel 12 del SDK o incluso más.
Alternativamente, puedo crear unMemoryFile
. Hay unaforma fugaz Para pasarlo en parcelas. Pero, ¿cómo puedo recuperar un descriptor de archivo para que el código nativo tenga algo quemmap()
?