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.
- Android Lint - Cómo ocultar una advertencia 'El recurso Xxx parece no estar utilizado'
- Dimens.xml en la carpeta de valores de 7 "y 10" tableta, ¿cómo?
- Android reproducir archivos de recursos desde el almacenamiento interno provoca que MediaPlayer.prepare dé IOException
- Android Pluralización no funciona, necesita ayuda
- ¿Es más fácil suministrar un activo PNG de alta resolución y dejar que Android reduzca esto?
-
Ambos proporcionan un flujo de entrada de recursos sin compilación.
-
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.
- No se encuentran recursos de Android en algunos dispositivos
- ¿Es posible obtener recursos dentro de un bloque de contexto estático?
- Cómo agregar recursos de cadena en Eclipse?
- Android strings.xml ¿Buenas prácticas?
- ADT muestra error en Strings.xml
- Ningún recurso encontrado que coincida con el nombre dado Xamarin Android
- Android.content.res.Resources $ NotFoundException: ID de recurso de cadena
- Android define la forma XML como dibujable mediante programación
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. EstaID
se almacena entonces en laR 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/
.
- Evitar que ViewPager destruya vistas fuera de pantalla
- Cómo cerrar la notificación después de hacer clic en la acción