BENEMERITA UNIVERSIDAD
AUTONOMA DE PUEBLA
Aplicaciones Móviles
Nombre: Santiago Augusto Pereda
Jimenez Matricula: 201631289
Informe 7
Asesor: López Poblano Gilberto
Introducción.
Android Studio, es un IDE, una interfaz de desarrollo. En realidad, es una especie de
escritorio de trabajo para un desarrollador. Allí se encuentra nuestro proyecto, las
carpetas del mismo, los archivos que hay en él, y todo lo necesario para acabar creando
la aplicación. Lo mejor de Android Studio es que ha sido creado por Google y fue
presentado hace tan solo unos meses, por lo que no hablamos de una herramienta
antigua y nada depurada, sino de un programa muy moderno que encima ha sido creado
por los mismos que han creado el sistema operativo. Entre otras cosas, cuenta con
algunas herramientas que nos facilitarán mucho el desarrollo de las aplicaciones, como
por ejemplo el poder previsualizar las aplicaciones en diferentes smartphones y tablets
para saber cómo está quedando el código que nosotros estamos editando, y cómo se ve
en los diferentes tipos de pantalla que existen. Este nuevo programa, además, nos
ayudará a dejar nuestra aplicación lista para publicar. Aunque las aplicaciones de Android
se escriben en lenguaje Java, lo cierto es que después hay que compilarlas para que
quede un único archivo .apk. Este último paso es muy simple con Android Studio.
Digamos, que el nuevo IDE ahora es mucho más familiar y fácil de usar de lo que era el
SDK con el que contaba Google antes.
Desarrollo.
Empezaremos analizando la pantalla principal donde tendremos el inicio de sesión.
Primero tenemos el MainActivity.xml donde colocaremos lo siguiente:
<!—- este textview será el encargado de mostrar el título de la aplicación-->
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<TextView
android:id="@+id/textView"
android:layout_width="299dp"
android:layout_height="65dp"
android:layout_marginStart="150dp"
android:layout_marginLeft="150dp"
android:layout_marginTop="66dp"
android:layout_marginEnd="150dp"
android:layout_marginRight="150dp"
android:layout_marginBottom="646dp"
android:gravity="center_horizontal|center_vertical"
android:text="AGENDA MÓVIL"
android:textColor="#FFFFFF"
android:textIsSelectable="false"
android:textSize="36sp"
android:textStyle="bold"/>
<!—- este ImageView será el encargado de mostrar el logo de la aplicación-->
<ImageView
android:id="@+id/imageView"
android:layout_width="170dp"
android:layout_height="170dp"
android:layout_marginStart="120dp"
android:layout_marginLeft="120dp"
android:layout_marginTop="19dp"
android:layout_marginEnd="121dp"
android:layout_marginRight="121dp"
android:layout_marginBottom="431dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/textView"
app:srcCompat="@drawable/agenda" />
<!—- Este EditText nos permitirá escribir el nombre de ususario y el siguiente para
ingresar la contraseña-->
<EditText
android:id="@+id/user"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:ems="10"
android:hint="Usuario"
android:inputType="textPersonName"/>
<EditText
android:id="@+id/pass"
android:password="true"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:ems="10"
android:hint="Contraseña"
android:inputType="textPersonName"/>
<!—- Y por último agregamos el botón que nos permitirá ingresar-->
<Button
android:id="@+id/login"
android:layout_width="201dp"
android:layout_height="55dp"
android:background="@drawable/boton_estilo"
android:text="Ingresar"
android:textColor="#FFFFFF"/>
</androidx.constraintlayout.widget.ConstraintLayout>
Ahora veremos el archivo MainActivity.java que es el que le dará vida a la pantalla que
recién creamos. Como podemos observar es un inicio de sesión sencillo
package com.example.agenda;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity {
//Creamos nuestras variables y definimos nuestro usuario y contraseña
Button login;
EditText user,pass;
String admin="admin";
String adminpass="admin";
String usuario,contrasena;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//Creamos un objeto de la clase ConexiónSQLiteHelper para la conexión
//con la base de datos
ConexionSQLiteHelper conexion = new
ConexionSQLiteHelper(this,"bd_agenda",null,1);
login=(Button)findViewById(R.id.login);
user=(EditText)findViewById(R.id.user);
pass=(EditText)findViewById(R.id.pass);
login.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
usuario=user.getText().toString();
contrasena=pass.getText().toString();
//Si el usuario y contraseña son válidos entraremos en el menú
if(usuario.equals(admin) && contrasena.equals(adminpass)){
Intent menu = new Intent(MainActivity.this,Menu.class);
startActivity(menu);
}
else{
//Sino nos mandara un mensaje para volver a intentarlo
user.setText(null);
pass.setText(null);
Toast.makeText(getApplicationContext(),"Usuario y/o contraseña
incorrectos",Toast.LENGTH_SHORT).show();
}
}
});
}}
Como pudimos ver llamamos a la clase ConexionSQLiteHelper que nos creara la
conexión con la base de datos:
Para usar esta clase, creamos una subclase que anule los métodos de devolución de
llamada onCreate() y onUpgrade(). Es posible que también podemos implementar los
métodos onDowngrade() o onOpen(), aunque no son obligatorios.
package com.example.agenda;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import androidx.annotation.Nullable;
import com.example.agenda.utilidades.utilidades;
public class ConexionSQLiteHelper extends SQLiteOpenHelper {
public ConexionSQLiteHelper(@Nullable Context context, @Nullable String name,
@Nullable SQLiteDatabase.CursorFactory factory, int version) {
super(context, name, factory, version);
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL(utilidades.CREAR_TABLA_CONTACTOS);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL("DROP TABLE IF EXISTS contactos");
onCreate(db);
}
}
Ahora pasaremos a la siguiente ventana la cual será el menú y la clase activity_menu.xml
es la siguiente:
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".Menu">
<!—- este textview será el encargado de mostrar el título de la aplicación-->
<TextView
android:id="@+id/textView"
android:layout_width="299dp"
android:layout_height="65dp"
android:layout_marginStart="150dp"
android:layout_marginLeft="150dp"
android:layout_marginTop="66dp"
android:layout_marginEnd="150dp"
android:layout_marginRight="150dp"
android:layout_marginBottom="646dp"
android:gravity="center_horizontal|center_vertical"
android:text="AGENDA MÓVIL"
android:textColor="#FFFFFF"
android:textIsSelectable="false"
android:textSize="36sp"
android:textStyle="bold"/>
<!—- este ImageView será el encargado de mostrar el logo de la aplicación-->
<ImageView
android:id="@+id/imageView"
android:layout_width="170dp"
android:layout_height="170dp"
android:layout_marginStart="120dp"
android:layout_marginLeft="120dp"
android:layout_marginTop="19dp"
android:layout_marginEnd="121dp"
android:layout_marginRight="121dp"
android:layout_marginBottom="431dp"
app:srcCompat="@drawable/agenda" />
<!—- este Button será el encargado de llevarnos a la ventana de agregar-->
<Button
android:id="@+id/agregar"
android:layout_width="174dp"
android:layout_height="53dp"
android:background="@drawable/boton_estilo"
android:text="Agregar"
android:textColor="#FFFFFF"
android:textSize="18sp"/>
<!—- este Button será el encargado de llevarnos a la ventana de mostrar-->
<Button
android:id="@+id/mostrar"
android:layout_width="174dp"
android:layout_height="53dp"
android:background="@drawable/boton_estilo"
android:text="Mostrar"
android:textColor="#FFFFFF"
android:textSize="18sp"/>
</androidx.constraintlayout.widget.ConstraintLayout>
La clase principal es el menu.java:
Podemos observar que es muy sencilla, solamente son los dos botones de “agregar” y
“mostrar” las cuales nos llevaran a su respectiva ventana automáticamente al pulsarlo.
package com.example.agenda;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
public class Menu extends AppCompatActivity {
Button agregar,mostrar;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_menu);
agregar=(Button)findViewById(R.id.agregar);
mostrar=(Button)findViewById(R.id.mostrar);
agregar.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent agregar = new Intent(Menu.this, agregar.class);
startActivity(agregar);
}
});
mostrar.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent mostrar = new Intent(Menu.this, mostrar.class);
startActivity(mostrar);
}
});
}
}
Vamos a continuar con la ventana de “agregar”:
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".agregar">
<!—- este textview será el encargado de mostrar el título de la aplicación-->
<TextView
android:id="@+id/textView"
android:layout_width="299dp"
android:layout_height="65dp"
android:layout_marginStart="150dp"
android:layout_marginLeft="150dp"
android:layout_marginTop="66dp"
android:layout_marginEnd="150dp"
android:layout_marginRight="150dp"
android:layout_marginBottom="646dp"
android:gravity="center_horizontal|center_vertical"
android:text="AGENDA MÓVIL"
android:textColor="#FFFFFF"
android:textIsSelectable="false"
android:textSize="36sp"
android:textStyle="bold"/>
<!—- este ImageView será el encargado de mostrar el logo de la aplicación-->
<ImageView
android:id="@+id/imageView"
android:layout_width="170dp"
android:layout_height="170dp"
android:layout_marginStart="120dp"
android:layout_marginLeft="120dp"
android:layout_marginTop="19dp"
android:layout_marginEnd="121dp"
android:layout_marginRight="121dp"
android:layout_marginBottom="431dp"
app:srcCompat="@drawable/agenda" />
<!—- este EditText es para agregar el nombre de nuestro contacto-->
<EditText
android:id="@+id/nombre"
android:layout_width="300dp"
android:layout_height="wrap_content"
android:ems="10"
android:hint="Nombre"
android:inputType="textPersonName"
app:layout_constraintBottom_toTopOf="@+id/telefono"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/imageView" />
<!—- este EditText es para agregar el de teléfono de nuestro contacto-->
<EditText
android:id="@+id/telefono"
android:layout_width="300dp"
android:layout_height="wrap_content"
android:ems="10"
android:hint="Telefono"
android:inputType="numberDecimal"/>
<!—- este Button es para guardar nuestro nuevo contacto-->
<Button
android:id="@+id/agregar"
android:layout_width="174dp"
android:layout_height="54dp"
android:background="@drawable/boton_estilo"
android:text="Agregar"
android:textColor="#FFFFFF"
android:textSize="18sp"/>
<!—- este Button es para regresar al menú-->
<Button
android:id="@+id/regresar"
android:layout_width="174dp"
android:layout_height="54dp"
android:background="@drawable/boton_estilo"
android:text="Regresar"
android:textColor="#FFFFFF"
android:textSize="18sp"/>
agregar.java:
Como podemos ver es un poco más compleja debido a que aquí ya entra en juego la base
de datos.
package com.example.agenda;
import androidx.appcompat.app.AppCompatActivity;
import android.content.ContentValues;
import android.content.Intent;
import android.database.DatabaseUtils;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
import com.example.agenda.utilidades.utilidades;
public class agregar extends AppCompatActivity {
EditText campoNombre,campoTelefono;
Button btnAgregar,btnRegresar;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_agregar);
//Guardamos en estás variables el valor de los datos que agregamos en
//las cajas de texto
campoNombre=(EditText)findViewById(R.id.nombre);
campoTelefono=(EditText)findViewById(R.id.telefono);
btnAgregar=(Button)findViewById(R.id.agregar);
btnRegresar=(Button)findViewById(R.id.regresar);
//Al dar clic en el botón “agregar” se ejecutara la función
//“agregarContacto”
btnAgregar.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
agregarContactos();
}
});
//Al dar clic en el botón “regresar” volveremos al menú
btnRegresar.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent regresar = new Intent(agregar.this, Menu.class);
startActivity(regresar);
}
});
}
//Esta función nos guardara la información de nuestro contacto
public void agregarContactos(){
//Hacemos conexión con la base de datos
ConexionSQLiteHelper conexion = new
ConexionSQLiteHelper(this,"bd_agenda",null,1);
SQLiteDatabase db = conexion.getWritableDatabase();
//Obtenemos el número de filas que tiene nuestra base para asignar los
//id a cada contacto que agreguemos.
int ID = (int)DatabaseUtils.queryNumEntries(db,utilidades.TABLA_CONTACTOS);
//Generamos la instrucción en que nos permitirá agregar todos estos
//datos a nuestra base de datos mediante la variable “insertar” con la
//sentencia de SQL “INSERT TO” y ”VALUES”
String insertar = "INSERT INTO "+utilidades.TABLA_CONTACTOS+" ("
+utilidades.CAMPO_ID+","+utilidades.CAMPO_NOMBRE+","+utilidades.CAMPO_TELEF
ONO+") VALUES ("
+ID+",'"+campoNombre.getText().toString()
+"','"+campoTelefono.getText().toString()+"')";
//Mandamos la sentencia a la base de datos y la cerramos la conexión
db.execSQL(insertar);
db.close();
//Reseteamos los campos para que al volver a entrar estén vacios
campoNombre.setText(null);
campoTelefono.setText(null);
}
}
En esa clase pudimos observar la clase “utilidades” la cual es la siguiente:
Esta clase es la que nos agrega los elementos a la base de datos
package com.example.agenda.utilidades;
public class utilidades {
public static final String TABLA_CONTACTOS="contactos";
public static final String CAMPO_ID="id";
public static final String CAMPO_NOMBRE="nombre";
public static final String CAMPO_TELEFONO="telefono";
public static final String CREAR_TABLA_CONTACTOS="CREATE TABLE
"+TABLA_CONTACTOS+" ("+CAMPO_ID+" INTEGER, "+CAMPO_NOMBRE+" TEXT,
"+CAMPO_TELEFONO+" TEXT)";
}
Y por último tenemos la ventana de Mostrar la cual es activity_mostrar.xml:
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".mostrar">
<!—- este textview será el encargado de mostrar el título de la aplicación-->
<TextView
android:id="@+id/textView"
android:layout_width="299dp"
android:layout_height="65dp"
android:layout_marginStart="150dp"
android:layout_marginLeft="150dp"
android:layout_marginTop="66dp"
android:layout_marginEnd="150dp"
android:layout_marginRight="150dp"
android:layout_marginBottom="646dp"
android:gravity="center_horizontal|center_vertical"
android:text="AGENDA MÓVIL"
android:textColor="#FFFFFF"
android:textIsSelectable="false"
android:textSize="36sp"
android:textStyle="bold"/>
<!—- este ImageView será el encargado de mostrar el logo de la aplicación-->
<ImageView
android:id="@+id/imageView"
android:layout_width="170dp"
android:layout_height="170dp"
android:layout_marginStart="120dp"
android:layout_marginLeft="120dp"
android:layout_marginTop="19dp"
android:layout_marginEnd="121dp"
android:layout_marginRight="121dp"
android:layout_marginBottom="431dp"
app:srcCompat="@drawable/agenda" />
<!—- este ListView nos mostrará el id del contacto en forma de lista-->
<ListView
android:id="@+id/listaID"
android:layout_width="60dp"
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
android:layout_marginTop="68dp"
android:textAlignment="center"
android:textSize="24sp"/>
<!—- este TextView nos mostrará el título id-->
<TextView
android:id="@+id/mosID"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:fontFamily="sans-serif-black"
android:text="ID"
android:textAlignment="center"
android:textSize="24sp"/>
<!—- este TextView nos mostrará el título nombre-->
<TextView
android:id="@+id/mosNombre"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:fontFamily="sans-serif-black"
android:text="NOMBRE"
android:textAlignment="center"
android:textSize="24sp"/>
<!—- este ListView nos mostrará el nombre del contacto en forma de lista-->
<ListView
android:id="@+id/listaNombre"
android:layout_width="130dp"
android:layout_height="wrap_content"
android:layout_marginStart="108dp"
android:layout_marginTop="68dp"
android:textAlignment="center"/>
<!—- este TextView nos mostrará el titulo Teléfono-->
<TextView
android:id="@+id/mosTel"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:fontFamily="sans-serif-black"
android:text="TELÉFONO"
android:textAlignment="center"
android:textSize="24sp"/>
<!—- este ListView nos mostrará el Teléfono del contacto en forma de lista-->
<ListView
android:id="@+id/listaTel"
android:layout_width="145dp"
android:layout_height="wrap_content"
android:layout_marginStart="248dp"
android:layout_marginTop="68dp"
android:textAlignment="center"/>
<!—- este Button nos regresara a la pantalla de menú-->
<Button
android:id="@+id/regresar"
android:layout_width="174dp"
android:layout_height="54dp"
android:layout_marginStart="120dp"
android:layout_marginEnd="120dp"
android:layout_marginBottom="52dp"
android:background="@drawable/boton_estilo"
android:text="Regresar"
android:textColor="#FFFFFF"
android:textSize="18sp"/>
</androidx.constraintlayout.widget.ConstraintLayout>
Y esta es la clase que le da vida a la ventana anterior:
package com.example.agenda;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.ListView;
import java.util.ArrayList;
import com.example.agenda.bd.contactos;
import com.example.agenda.utilidades.utilidades;
public class mostrar extends AppCompatActivity {
//Usamos arrayList para almacenar la informacion del contacto de diferente
//tipo de dato; puesto que estos no se le declaran el espacio ya que no
//sabremos cuantos datos vamos a almacenar
//Declaramos un botón regresar
ListView listaID,listaNombre,listaTelefono;
ArrayList<Integer> listarID;
ArrayList<String> listarNombre;
ArrayList<String> listarTelefono;
ArrayList<contactos> listaContacto;
Button btnRegresar;
//se declara la variable para la conexión con la base de datos.
ConexionSQLiteHelper conexion;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_mostrar);
//capturamos la acción de cada botón esto para que vaya guardando cada
//que se da un clic nos servirá para mostrar los elementos de estas
listaID=(ListView)findViewById(R.id.listaID);
listaNombre=(ListView)findViewById(R.id.listaNombre);
listaTelefono=(ListView)findViewById(R.id.listaTel);
btnRegresar=(Button)findViewById(R.id.regresar);
//hacemos conexión con la base de datos
conexion = new ConexionSQLiteHelper(getApplicationContext(),"bd_agenda",null,1);
//Llamamos a las funciones:
consultarContactos();
mostrarContactos();
//en esta parte convertimos los arraylist objeto en view elementos
//cargados en el listview que es el contenedor
//esto se hará para cada array list que creamos anteriormente
ArrayAdapter adapterID = new
ArrayAdapter(this,android.R.layout.simple_list_item_1,listarID);
listaID.setAdapter(adapterID);
ArrayAdapter adapterNombre = new
ArrayAdapter(this,android.R.layout.simple_list_item_1,listarNombre);
listaNombre.setAdapter(adapterNombre);
ArrayAdapter adapterTel = new
ArrayAdapter(this,android.R.layout.simple_list_item_1,listarTelefono);
listaTelefono.setAdapter(adapterTel);
btnRegresar.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent regresar = new Intent(mostrar.this, Menu.class);
startActivity(regresar);
}
});
}
//Función que nos permite visualizar los datos de la base de datos
public void consultarContactos(){
//hacemos conexión con la base de datos
SQLiteDatabase db = conexion.getReadableDatabase();
contactos contacto = null;
//se crean los arraylist que utilizaremos en la parte principal del código
listaContacto = new ArrayList<contactos>();
//se hace la consulta en la base de datos
Cursor cursor = db.rawQuery("SELECT * FROM
"+utilidades.TABLA_CONTACTOS,null);
//capturamos los datos alojados en la base de datos y los vamos agregando
while(cursor.moveToNext()){
contacto = new contactos();
contacto.setId(cursor.getInt(0));
contacto.setNombre(cursor.getString(1));
contacto.setTelefono(cursor.getString(2));
listaContacto.add(contacto);
}
}
public void mostrarContactos(){
listarID = new ArrayList<Integer>();
listarNombre = new ArrayList<String>();
listarTelefono = new ArrayList<String>();
//este ciclo nos sirve para mostrar los datos de nuestros contactos de la cual nos servirá
para el entorno amigable
for(int i=0;i<listaContacto.size();i++){
listarID.add(listaContacto.get(i).getId());
listarNombre.add(listaContacto.get(i).getNombre());
listarTelefono.add(listaContacto.get(i).getTelefono());
}
}
}
Conclusión.
En conclusión gracias a esta valiosa herramienta se nos ha facilitado mucho el trabajo a
los programadores que nos hemos interesado en este fascinante mundo. Aún quedan
cosas por arreglar y errores que depurar pero recordemos que el Android Studio no tiene
mucho tiempo de creado, pero en mi opinión personal creo que es prometedor y que se
volverá una herramienta indispensable para todos los que deseen entrar en el maravilloso
mundo de los Sistemas Operativos Android.
Referencias.
https://openwebinars.net/blog/sqlite-para-android-la-herramienta-definitiva/
https://www.youtube.com/watch?v=wXEZZ2JT3-k
https://www.youtube.com/watch?v=X2r4Sky01lw
https://www.youtube.com/watch?v=cp2rL3sAFmI
https://www.youtube.com/watch?v=9WiyqIcffe0