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.
Ambos proporcionan una secuencia de entrada de recursos sin compilar.
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, estaID
se almacena en laR 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.