Lectura de archivos de recursos de mi propio APK en Android Native Environment

Estoy portando a Android. Mi proyecto existente tiene una tonelada de archivos de recursos que estoy portando en mi proyecto de Android. Los tengo todos en / res / raw /, y me gustaría acceder a esos recursos en mi biblioteca nativa con funciones como fopen () y tal. ¿Se puede hacer esto, o tengo que ir a través de JNI para esto también? Realmente prefiero no hacerlo, por facilidad de portar y posibles razones de velocidad y memoria.

2 Solutions collect form web for “Lectura de archivos de recursos de mi propio APK en Android Native Environment”

Si impide que sus activos se compriman a medida que se agregan a su APK, entonces puede utilizar openRawResourceFd () para obtener un descriptor de archivo, desplazamiento y tamaño y pasarlos a su código nativo en el que acaba de hacer un fopen y fseek. Por otra parte, si dejas que el sistema de compilación comprima los archivos a los que quieres acceder, necesitarás usar algo como libzip para leerlos desde el APK.

Echa un vistazo a obb.h en la ndk.

De docs / STABLE-APIS.html en el Android NDK:

<android/obb.h> Direct (read-only) access to assets embedded in your .apk. or the Opaque Binary Blob (OBB) files, a new feature of Android XX that allows one to distribute large amount of application data outside of the .apk (useful for game assets, for example). 
  • Compartir archivos temporales entre aplicaciones sin tarjeta SD
  • Ahorro de grandes arreglos cortos android
  • InputStream de la carpeta de activos de Android devuelve vacío
  • Lectura de un archivo binario en una cadena
  • ¿Cómo puedo serializar un objeto y guardarlo en un archivo de Android?
  • Aplicación de muestra de Google I / O para Android
  • Teléfono Android como ratón del ordenador
  • Intentando crear un archivo en Android: open failed: EROFS (Sistema de archivos de sólo lectura)
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.