|
|
(Una revisión intermedia por el mismo usuario no mostrado) |
Línea 1: |
Línea 1: |
− | {{TEP}} {{:Usuario:ManuelRomero/Android/ficheros/nav}} <br> | + | {{TEP}} {{:Usuario:ManuelRomero/Android/persistencia/nav}} <br> |
| | | |
− | == Qué es un recurso ==
| + | {{Objetivo| |
− | | + | #Entender las diferentes formas de almacenar de forma persistentes datos en android |
− | == Tipos de almacenamiento externo ==
| + | #Analizaremos los distintos objetos |
− | #Bases de datos SQLLite | + | ##asset |
− | #Ficheros de preferencias copartidas
| + | ##raw |
− | #Ficheros en memoria externa o sd
| + | ##preferences |
− | #Ficheros como recursos del sistema | + | ##SQLite |
− | ##ficheros en la carpeta '''''/asset''''' | + | ##Ficheros |
− | ##ficheros en la carpeta '''''/res/raw''''' | + | }} |
− | | + | |
− | | + | |
− | ===Ficheros como recursos del sistema
| + | |
− | | + | |
− | === Assets: recursos directos o no compilados ===
| + | |
− | <div style="font:16px/1.4 Arial;">
| + | |
− | 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).
| + | |
− | Igualmente podremos colocar los fichero sen la carpeta '''''/res/raw''''', en este caso tendremos una serie de restricciones
| + | |
− | El nombre del fichero debe ser restrictivamente sencillo como el de cualquier recurso que cuelgue de la carpeta '''''/res'''''
| + | |
− | letras minusculas, números y el carácter de subrayado
| + | |
− | '''''identificadores de nombre de recursos:[a..z1..9_]*'''''
| + | |
− | | + | |
− | Este tipo de fichero es de solo lectura, no se puede escribir en ellos.
| + | |
− | 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 de base de datos).
| + | |
− | | + | |
− | 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.
| + | |
− | </div>
| + | |