Usuario:ManuelRomero/Android/recursos/Teoria
Trabajo en proceso, espera cambios frecuentes. Tu ayuda y retroalimentación son bienvenidos. Ver página de charlas. |
Qué es un recurso
Tipos de recursos
Recursos de la aplicación
Assets: recursos directos o no compilados
En un proyecto android existe una carpeta llamada /assets que en principio está vacía. Su objetivo es almacenar ficheros externos a la aplicación que serán distribuidos junto con nuestro .apk (formará parte de la compilacón).
Posteriormente en el programa se puede recuperar los ficheros ahí depositados y navegar por esa carpeta (directorios, ficheros) como si fuera un sistema de ficheros normla de un SO. En general tengo diferentes sitios para ubicar ficheros (res, targeta SD, asset).
Los ficheros que ubiquemos en /res son accesibles como un recurso identificado en la clase R (clase generado de forma autmática para darme una referencia a cada recurso de mi aplicación). Los ficheros colocados en el directorio /asset podrán ser accedidos como si fuera en un sistema de ficheros, sin ningún tipo de restricción Útil por ejemplo para guardar datos de un juego, o la configuración de una aplicación, …)
Otra opción para guardar información es usar una base de datos, por ejemplo SQLLite, sobre todo indicado cuando la información esté estruturada (pensemos en una tabla).
Para gestionar los recursos ubicado en la carpeta /asset procederemos
Físicamente ubicamos los ficheros en la carpeta
En el código necesitamos un objeto que permita gestionar este recurso (objeto de la clase AssetManager)
Estos recursos no generan un ID en la clase R, por lo que debemos especificar el nombre y la ruta para acceder a ellos (usando la clase AssetManager, como ya hemos indicado).
Conclusion
Nosotros podemos almacenar ficheros en recursos y también en asset permite establecer jerarquía de ficheros, cosas que res no permite, en esta línea los ficheros ubicados en la carpeta res son más restrictivos y su acceso es menos libre (hay que acceder a través del Id que se general en la clase R). MRM Hacer algo que se puede hacer tanto en res como en asset para ver diferencia.