Mecanismo simple y ligero para almacenar datos en base a esquema de pares clave-
valor. Habitualmente se usa para guardar y recuperar preferencias u opciones de la
aplicación. También se puede usar para compartir información entre componentes de
nuestra misma aplicación.
Se utiliza la clase SharedPreferences, que permite guardar datos en formato:
enteros, booleanos, fotantes y cadenas de texto.
Página 1
1.2. Leer Preferencias Compartidas:
2. Almacenamiento Interno:
if ( inputStream != null ) {
InputStreamReader inputStreamReader = new InputStreamReader(inputStream);
int largo = inputStream.available();
char[] buffer = new char[largo];
inputStreamReader.read(buffer);
inputStream.close();
ret = new String(buffer);
}
Página 2
3. Almacenamiento Externo:
Para poder escribir archivos según las indicaciones expuestas en el punto anterior,
pero sobre el almacenamiento “externo” del dispositivo (SDCard), en primer termino
se deben establecer los permisos correspondientes (lectura/escritura) en el archivo
manifest de nuestra aplicacion:
<manifest ...>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
</manifest ...>
Luego se deben implementar métodos propios para verifcar que este disponible la
unidad externa de almacenamiento y si esta en modo solo lectura:
4. SQLite:
Android ofrece compatibilidad total con la base de datos SQLite (versión 3), sin
necesidad de incluir librerías adicionales. Es la opción recomendada cuando debemos
almacenar datos estructurados y con cierta complejidad, recordando siempre la
Página 3
necesidad de estar atentos a las posibilidades y espacio de almacenamiento de los
dispositivos móviles.
4.1. SQLiteOpenHelper:
Para crear y acceder a una nueva base de datos SQLite en nuestra aplicación, en
primer lugar debemos crear una nueva clase en nuestro proyecto que herede de la
clase abstracta SQLiteOpenHelper e implementar sus métodos y constructor:
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL(sqlCrear);
}
@Override
public void onUpgrade(SQLiteDatabase db, int anterior, int nueva) {
//se elimina version anterior de tabla
db.execSQL("DROP TABLE IF EXISTS "+BDConstantes.TABLE_CONTACTO);
//se crea nueva version de tabla
db.execSQL(sql);
}
En dicha clase nos ocupados de las instrucciones necesarios para la creación inicial de
la base de datos en nuestra aplicación (onCreate), con la estructura y modelo de
datos que hayamos previamente estipulado. También tenemos un método para el
caso d actualización de la estructura de datos (onUpgrade).
Página 4
//seleccionamos todos los registros
Cursor cursor = db.rawQuery("SELECT * FROM contactos",null);
Nos apoyamos en los Content Values, cuando debemos alimentar con datos los
métodos CRUD
//insertamos registro
db.insert("contactos", null, nuevoRegistro);
Página 5
}
}
return lista;
Unavez hecho esto hacemos uso de métodos get[TIPO DATO] pasando como
parámetro el índice la columna. Esto tendrá como resultado la devolución del valor
para dicha columna de la fla actualmente apuntada por el cursor:
5. Comentarios Finales:
Se debe tener en cuenta que al eliminar una aplicación del dispositivo android se
borran también cualquier archivo de persistencia (preferencias compartidas, bases
sqlite, archivos de texto, etc) que utilice la misma, perdiéndose en dicho proceso la
información contenido en los mismos.
Desde Android Studio podemos utilizar la herramienta Android Device Monitor para
conectarnos a nuestro dispositivo físico o virtual y desde la solapa File Explorer
navegar el sistema de archivos para acceder a descargarnos cualquier archivo que
hayamos generado desde nuestra aplicación. Desde la misma herramienta podemos
subir archivos a dispositivos conectados en Android Studio.
Documentación Adicional:
https://developer.android.com/guide/topics/data/data-storage.html
http://www.sqlite.org/
Página 6