La razón de los activos y recursos crudos en Android

Esto es una especie de pregunta filosófica …. Estoy en medio de mis estudios en el mundo de Android y acabo de cubrir los activos y recursos Raw.

Estoy tratando de entender la razón por la utilización de recursos Raw vs activos.

  1. Ambos proporcionan un flujo de entrada de recursos sin compilación.

  2. Parece que los activos proporcionan mucha más flexibilidad y funcionalidad que los recursos Raw.

    a. Puede crear una estructura de carpetas en Activos y no en Raw

    segundo. Puede enumerar todos los recursos de forma dinámica en la carpeta de activos y no en la carpeta Sin formato.

Entonces, ¿por qué usar los recursos Raw en Android?

Gracias.

Las principales diferencias entre la carpeta en raw y la carpeta de Assets .

  • Dado que raw es una subcarpeta de Resources (res), Android generará automáticamente un ID para cualquier archivo ubicado dentro de él. Esta ID se almacena entonces en la R class que actuará como referencia a un archivo, lo que significa que se puede acceder fácilmente desde otras clases y métodos de Android, e incluso en archivos XML de Android. El uso del ID generado automáticamente es la forma más rápida de tener acceso a un archivo en Android.

  • La carpeta de activos es un directorio "apéndice" . La clase R no genera IDs para los archivos colocados allí, por lo que es menos compatible con algunas clases y métodos de Android. Además, es mucho más lento acceder a un archivo dentro de él, ya que tendrá que obtener un identificador basado en una cadena . Sin embargo, algunas operaciones se hacen más fácilmente colocando archivos en esta carpeta, como copiar un archivo de base de datos en la memoria del sistema. No existe una forma (sencilla) de crear una referencia XML de Android a los archivos dentro de la carpeta Activos.

En la documentación de Android , se utiliza el directorio raw/ para:

Archivos arbitrarios para guardar en su forma cruda. Para abrir estos recursos con un InputStream crudo, llame a Resources.openRawResource () con el ID del recurso, que es R.raw.filename .

Sin embargo, si necesita tener acceso a los nombres de archivos originales ya la jerarquía de archivos, podría considerar guardar algunos recursos en el directorio assets/ (en lugar de res / raw /) . Los archivos en los activos / no reciben un ID de recurso, por lo que sólo se pueden leer con AssetManager .


En una línea, los archivos del directorio raw/ no se compilan en la plataforma , se les asigna un ID de recurso y no se pueden agrupar en subcarpetas, mientras que si se quiere utilizar el directorio assets/ .

  • Constantes para tipos de recursos en Android
  • Android getResource en la clase non activity de una clase Non Activity?
  • ¿Cómo puedo detectar qué diseño está seleccionado por Android en mi aplicación?
  • Recursos de importación android de proyecto de biblioteca
  • Obtener android.content.res.Resources $ NotFoundException: excepción incluso cuando el recurso está presente en android
  • Reproducir archivos multimedia ubicados en la carpeta de activos
  • Extraer el icono de la aplicación del archivo apk
  • ¿Cómo debo almacenar cadenas comunes?
  • Android: uso de recursos de otro proyecto en mi área de trabajo
  • Manejo de diferentes tamaños de pantalla (Android)
  • Compartir recursos en bruto a través de WhatsApp
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.