DesarrolloLibre

Desarrollo Web, Android, juegos y mucho más

Categorias
04-05-2017

SQLite es el medio principal por excelencia de persistencia en Android; generalmente cuando trabajamos con Android, pensamos que la base de datos tiene que estar interna a la misma aplicación Android y esto es debido al cómo está compuesta una app Android que en esencia es todo integrado, pero no tiene que ser así, una de las cosas muy interesantes y que identifica a SQLite es su portabilidad, es decir, una base de datos SQLite es muy pequeño y consta de un único archivo que contiene toda nuestra base de datos junto con su estructura y por lo tanto la podemos exportar (copiar y pegar) en nuestro proyecto y conectarnos a la misma.

SQLite no solo en Android

Existen muchas aplicaciones que emplean bases de datos en SQLite desde el mismo PHP hasta aplicaciones del lado del cliente con JavaScript (Primeros pasos con SQLite en JavaScript: los métodos openDatabase, executeSql y executeSql), por lo tanto es muy probable que en algun momento decidimos exportar toda esta estructura desde una aplicación web u otro tipo a una aplicación Android.

Empleando nuestra base de datos SQLite en Android

Si decidimos importar una base de SQLite de otra aplicación (ya sea Android o no) en un principio podríamos pensar que es necesario realizar algún proceso complejo de leer el archivo, crear la base de datos dentro de la aplicación Android y leer tabla por tabla, registro por registro y copiarlo dentro de una base de datos en nuestra aplicación Android, esto no es necesario, simplemente basta con copiar el archivo de nuestra base de datos SQLite en una ubicación en específico en nuestro Android Studio:

Base de datos local android

La base de datos la debemos copiar en el directorio assets/databases de nuestro proyecto.

Ahora creamos una clase como la siguiente:

public class ListSQLiteHelper extends SQLiteAssetHelper {

    private static final String DATABASE_NAME = "main";
    private static final int DATABASE_VERSION = 1;

    public ListSQLiteHelper(Context context, String name,
                            SQLiteDatabase.CursorFactory factory, int version) {
        super(context, DATABASE_NAME, context.getExternalFilesDir(null).getAbsolutePath(), null, DATABASE_VERSION);
        //super(context, name, factory, version);
    }
}

Cómo puede darse cuenta empleamos el método SQLiteAssetHelper en vez del método SQLiteOpenHelper que no necesita que sobreescribimos los métodos onCreate(SQLiteDatabase db) y onUpgrade(SQLiteDatabase db, int arg1, int arg2) que son empleados para la creación y actualización de la base de datos que aplicaría en caso de ser una base de datos generada desde el mismo Android.

La variable DATABASE_NAME contiene el nombre de nuestra base de datos.

Con esto tenemos lista la conexión a nuestra base de datos y podemos realizar las consultas sobre la misma como si fuera una base de datos integrada de manera nativa por Android.

Puedes consultar la documentación oficial en el siguiente enlace: Android SQLiteAssetHelper.


Publicidad

Give me for a beer!

Algunos recursos que te pueden interesar

Librería oficial de PayPal para Android

Librería oficial de PayPal  para Android

Templates para Android y iOS

Templates para Android y iOS

Telegram messenger para Android

Telegram messenger para Android

Algunos artículos que te pueden interesar

Desarrollando aplicaciones de Realidad Aumentada con Wikitude (parte 3.2)

Desarrollando aplicaciones de Realidad Aumentada con Wikitude (parte 3.2)

En este artículo realizaremos una aplicación para Android con las mismas características de la aplicación del artículo pasado pero esta vez usando el atributo HTML en vez del atributo URI.

Andrés Cruz 12-03-2014

¿Qué son y cómo se configuran los Adaptadores (Adapters) para mostrar Listas y Grids en Android? (parte 1)

¿Qué son y cómo se configuran los Adaptadores (Adapters) para mostrar Listas y Grids en Android? (parte 1)

Los Adapters consisten en mostrar un conjunto de información a través de listas o grids (personalizables a nivel de definición, estilo y eventos).

Andrés Cruz 02-09-2014

Usando el ProgressBar en Android para indicar procesos de carga

Usando el ProgressBar en Android para indicar procesos de carga

En esta entrada se habla sobre un método para indicar el progreso de carga de una operación que puede sustituir al ProgressDialog llamado ProgressBar.

Andrés Cruz 07-11-2017