tutorial studio resource recursos getresources archivo android android-resources android-assets

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



recursos en android (2)

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

Estoy tratando de entender el motivo por el que se usan los recursos brutos frente a los activos.

  1. Ambos proporcionan una secuencia de entrada de recursos sin compilar.

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

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

    segundo. puede enumerar todos los recursos dinámicamente en la carpeta de activos y no en la carpeta Raw.

Entonces, ¿por qué usaría los recursos brutos en Android?

Gracias.


De la documentación de Android , el directorio raw/ se usa para:

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

Sin embargo, si necesita acceder a nombres de archivo originales y jerarquía de archivos, puede considerar guardar algunos recursos en el directorio assets/ (en lugar de res / raw /) . Los archivos en activos / no tienen una ID de recurso, por lo que puede leerlos solo mediante AssetManager .

En una línea, los archivos en el directorio raw/ no son compilados por la plataforma , se les asigna un ID de recurso y no se pueden agrupar en subcarpetas, mientras que si lo desea, puede utilizar el directorio assets/ .


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

  • Como Raw es una subcarpeta de Recursos (res), Android generará automáticamente una ID para cualquier archivo que se encuentre dentro de ella. A continuación, esta ID se almacena en la R class que actuará como referencia de un archivo, lo que significa que se puede acceder fácilmente desde otras clases y métodos de Android e incluso en archivos Android con formato XML. Usar la ID generada automáticamente es la manera 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 ID para los archivos que se colocan 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 manejarlo en función de una Cadena . Sin embargo, algunas operaciones se realizan más fácilmente colocando archivos en esta carpeta, como copiar un archivo de base de datos a la memoria del sistema. No hay forma (fácil) de crear una referencia de Android XML a los archivos dentro de la carpeta de Activos.