Sunteți pe pagina 1din 111

Desarrollo de

Aplicaciones Mviles en
Android
Por Araceli Velzquez
Gutirrez

Programa
1.
2.
3.
4.
5.
6.
7.

Instalacin de Android Studio


Introduccin a Android y entornos de
desarrollo
Diseo de Interfaces de usuario:
Vistas y Layouts
Actividades e intenciones
Archivos, libreras, imgenes
Bases de Datos SQLite
Publicacin de una aplicacin
Apuntes de Android por Araceli Velzquez
Gutirrez

Android Studio
Instalacin

Apuntes de Android por Araceli Velzquez


Gutirrez

Android Studio
Verificar versin de java 8

Apuntes de Android por Araceli Velzquez


Gutirrez

Android Studio

Apuntes de Android por Araceli Velzquez


Gutirrez

Android Studio
Herramienta Gradle para construccin de proyectos
https://gradle.org/gradle-download/
Junit
Importacin desde GitHub

Apuntes de Android por Araceli Velzquez


Gutirrez

Arquitectura Android

Apuntes de Android por Araceli Velzquez


Gutirrez

Versiones y niveles
Android

Apuntes de Android por Araceli Velzquez


Gutirrez

Versiones Android

Apuntes de Android por Araceli Velzquez


Gutirrez

Versiones Android

Apuntes de Android por Araceli Velzquez


Gutirrez

Versiones mas recientes

M: Android M (v6.0): Marshmallow


N: Nougat (v7.0)

Apuntes de Android por Araceli Velzquez


Gutirrez

Uso de Android 2015

Apuntes de Android por Araceli Velzquez


Gutirrez

Uso de versiones de Android

Apuntes de Android por Araceli Velzquez


Gutirrez

Cmo saber mi versin?

Apuntes de Android por Araceli Velzquez


Gutirrez

Android Studio
Ejecutando Android Studio por primera vez

Apuntes de Android por Araceli Velzquez

Situaciones

AVD, actualizar,
Activar Virtualizacion en intel en BIOS
Instalar HAXM
Gradle problem
Gradle

project sync failed. Basic functionality (e.g


. editing, debugging) will not work properly

Apuntes de Android por Araceli Velzquez


Gutirrez

La primera Aplicacin
Creando la primera aplicacin
Ejecucin en emuladores

Apuntes de Android por Araceli Velzquez

Creando una aplicacin

Apuntes de Android por Araceli Velzquez


Gutirrez

Creando una aplicacin

Elegir dispositivo menor que podr ejecutar nuestra


aplicacin

Apuntes de Android por Araceli Velzquez


Gutirrez

Compatibilidad de aplicacin
Si ya tienes abierta tu aplicacin

Apuntes de Android por Araceli Velzquez


Gutirrez

Revisar renderizado

Apuntes de Android por Araceli Velzquez


Gutirrez

Dispositivos Virtuales
Ejecucin en emuladores

Apuntes de Android por Araceli Velzquez

Emulador

Mi primera aplicacin
Creacin Hola Mundo

Opciones de Ejecucin
Dispositivo virtual Android AVD
Mediante esta opcin podemos ejecutarlo en un
simulador de diferentes dispositivos.
Emulador GENYMOTION
Ejecucin en un dispositivo real

Apuntes de Android por Araceli Velzquez


Gutirrez

Crear dispositivo virtual

AVD Manager

Apuntes de Android por Araceli Velzquez


Gutirrez

Crear dispositivo virtual

AVD Manager

Apuntes de Android por Araceli Velzquez


Gutirrez

Crear dispositivo virtual

Apuntes de Android por Araceli Velzquez


Gutirrez

Crear dispositivo virtual

Tipo de dispositivo
Sistema Operativo
Asignar nombre

Apuntes de Android por Araceli Velzquez


Gutirrez

Crear dispositivo virtual

Lista de dispositivos virtuales creados

Ejecutar tu
dispositivo
virtual

Apuntes de Android por Araceli Velzquez


Gutirrez

Ejecutando el emulador

Cuando arranca el
emulador, se ve una
ventana como esta,
este proceso podra
tardar un poco, sea
paciente

Apuntes de Android por Araceli Velzquez


Gutirrez

Ejecutando la aplicacin

1.- Click
en
ejecutar

Desde el AndroidStudio
ejecutamos la aplicacin
como se muestra en la
imagen y nos pedir que
elijamos el emulador
donde vamos a ejecutarla
2.Seleccion
ar
emulador

Apuntes de Android por Araceli Velzquez


Gutirrez

Errores en enlace

Error de versin de JDK

Apuntes de Android por Araceli Velzquez


Gutirrez

Correccin de errores

Revisar versin de JDK

Actualizar
JDK

Apuntes de Android por Araceli Velzquez


Gutirrez

Actualizar JDK

Descarga

Instalar
JDK

Descargar
JDK

Apuntes de Android por Araceli Velzquez


Gutirrez

Actualizar ruta a JDK

Modificar la ruta a JDK desde Android


Studio, para que apunte a la nueva
ruta de la actualizacin
Corregir
ruta

Apuntes de Android por Araceli Velzquez Gutirrez

Ejecutar aplicacin

Bueno, ya corregimos el error de la


versin de JDK, ahora nuevamente
intentamos ejecutar la aplicacin

Apuntes de Android por Araceli Velzquez


Gutirrez

Ejecucin de la aplicacin

No ejecut despus de 15 min,


intentarlo mas tarde y mientras
descargar otro emulador

Apuntes de Android por Araceli Velzquez


Gutirrez

Geny Motion
Emulador de dispositivos para Android

Apuntes de Android por Araceli Velzquez

Emulador GenyMotion
Crear cuenta en pagina de GenyMotion
https://www.genymotion.com/account/create/

Descargar
el
GenyMoti
on

Apuntes de Android por Araceli Velzquez


Gutirrez

Instalacin de GenyMotion

Descargar GenyMotion y VirtualBox


en combo a menos que ya utilices
Virtual Box, en ese caso descarga
solo GenyMotion

Apuntes de Android por Araceli Velzquez


Gutirrez

Configurar GenyMotion en
AndroidStudio

Ir a Settings

Apuntes de Android por Araceli Velzquez


Gutirrez

Configurar GenyMotion en
AndroidStudio
Buscar
repositori
os

Plugins

Apuntes de Android por Araceli Velzquez


Gutirrez

Configurar GenyMotion en
AndroidStudio

Buscar
GenyMoti
on y click
en
INSTALL

Apuntes de Android por Araceli Velzquez


Gutirrez

Configuracin y enlace de
GENYMOTION

Poner la ruta del


SDK de Android
Studio

Apuntes de Android por Araceli Velzquez


Gutirrez

Obtener ruta de Android Studio

Consultar la ruta
del SDK de
Android Studio

Apuntes de Android por Araceli Velzquez


Gutirrez

Configuracin y enlace de
GENYMOTION

Apuntes de Android por Araceli Velzquez


Gutirrez

Crear dispositivo virtual en


GENYMOTION

Crear un nuevo
dispositivo
virtual

Apuntes de Android por Araceli Velzquez


Gutirrez

Crear dispositivo virtual en


GENYMOTION

Seleccionar el tipo de dispositivo

Apuntes de Android por Araceli Velzquez


Gutirrez

Crear dispositivo virtual en


GENYMOTION

Seleccionar las caractersticas del


dispositivo

Apuntes de Android por Araceli Velzquez


Gutirrez

Configuracin y enlace de
GENYMOTION
Poner la ruta del
para guardar
pantallazos de
proyectos

Apuntes de Android por Araceli Velzquez


Gutirrez

Crear dispositivo virtual en


GENYMOTION

Apuntes de Android por Araceli Velzquez


Gutirrez

Crear dispositivo virtual en


GENYMOTION

Settings

Apuntes de Android por Araceli Velzquez


Gutirrez

Crear dispositivo virtual en


GENYMOTION

Crear dispositivo virtual

Apuntes de Android por Araceli Velzquez


Gutirrez

Dispositivo fsico
Pruebas de la aplicacin en dispositivo fsico

Apuntes de Android por Araceli Velzquez

Pruebas en dispositivo android

Entrar a SDK Manager desde


AndroidStudio
Configurar el dispositivo en modo
desarrollador
En compilacion tocar 4 veces se pone
en modo desarrollador

Apuntes de Android por Araceli Velzquez


Gutirrez

Pruebas en dispositivo Android

Habilitar el modo de depuracin por


USB

Apuntes de Android por Araceli Velzquez


Gutirrez

Instalar controlador de dispositivo

Buscar controlador completo del


dispositivo

Apuntes de Android por Araceli Velzquez


Gutirrez

Instalar controlador de dispositivo

Buscar controlador completo del


dispositivo

Apuntes de Android por Araceli Velzquez


Gutirrez

Conectando el telfono

Probar descargar drivers para ADB


https://

developer.android.com/studio/run/oem-usb.html
No funciono, no aparecen los drivers en la pagina para
mi modelo de cel

Telfono Huawei
Mtodos de conexin USB
Conectar en modo PCSUITE Hi Suite

ADB Driver installer


Usar el programa ADBDriverInstaller para detectar

cual driver falta, para otros modelos de celulares


Apuntes de Android por Araceli Velzquez
Gutirrez

ADB DriverInstaller

Apuntes de Android por Araceli Velzquez


Gutirrez

Creando una aplicacin


Mediante cdigo y mediante XML

Apuntes de Android por Araceli Velzquez

Mediante cdigo java

package com.cursosicomi.myapplication;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//setContentView(R.layout.activity_main);
TextView texto = new TextView(this);
texto.setText("hola desde codigo");
setContentView(texto);
}
}

Apuntes de Android por Araceli Velzquez


Gutirrez

Eliminar el
xml, y
hacerlo
directame
nte desde
cdigo

A travs de XML texto

Poner en modo
texto

Apuntes de Android por Araceli Velzquez


Gutirrez

A travs de XML

<?xml version="1.0" encoding="utf-8"?>


<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.cursosicomi.myapplication.MainActivity">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Practica de laboratorio"
android:id="@+id/textView2" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceLarge"
android:text="Araceli Velazquez"
android:id="@+id/textView"
android:layout_alignParentEnd="true"
android:layout_toEndOf="@+id/textView2" />
<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:inputType="textPersonName"
android:text="Nombre"
android:ems="10"
android:id="@+id/editText"
android:layout_below="@+id/textView"
android:layout_alignParentEnd="true" />
<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:inputType="phone"
android:ems="10"
android:id="@+id/editText2"
android:layout_below="@+id/editText"
android:layout_alignParentEnd="true" />
</RelativeLayout>

Apuntes de Android por Araceli Velzquez


Gutirrez

Diseo grfico

Modo diseo
para aadir
componentes a
mi vista
Apuntes de Android por Araceli Velzquez
Gutirrez

Strings.xml
Esta es una opcin muy til para diseo de proyectos
multiidioma

Apuntes de Android por Araceli Velzquez

Strings.xml

Buscar archivo strings.xml

Apuntes de Android por Araceli Velzquez


Gutirrez

Diseo multidioma

Utilizar archivo strings.xml


<resources>
<string name="app_name">Aplicacion de prueba no 1</string>
<string name="texto_saludo">Write your name</string>
</resources>

Apuntes de Android por Araceli Velzquez


Gutirrez

Usando la variable de strings

Usando la
variable creada,
en vez de texto
fijo
Apuntes de Android por Araceli Velzquez
Gutirrez

Tipos de Layouts

Cmo elegir el tipo de layout


adecuado?
FrameLayout
LinearLayout
Organiza de acuerdo al peso o importancia

del componente weight=

RelativeLayout
Organiza los componentes de acuerdo a una

posicin relativa respecto a otro componente.


Apuntes de Android por Araceli Velzquez
Gutirrez

RelativeLayouts

<RelativeLayout

xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="top"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity"
tools:ignore="NewApi"
android:focusable="true"
android:background="@drawable/selva">

Posicin
relativa
respecto al
objeto
indicado
aqu

<TextView

android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceLarge"
android:text="Araceli Velazquez"
android:id="@+id/textView"
android:layout_alignParentEnd="true"
android:layout_toEndOf="@+id/textView2" />
Apuntes de Android por Araceli Velzquez
Gutirrez

Ejercicio

Crear un proyecto con cada tipo de


layout con 4 componentes distintos

Apuntes de Android por Araceli Velzquez


Gutirrez

Prctica diseo de interfaz


<LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="fill_parent" tools:context="com.araceli.mislugares.MainActivity"

>

<LinearLayout
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="0dp"
android:gravity="fill_horizontal|top|start"
android:background="#f28c8c"
android:visibility="visible"
android:layout_gravity="top"
style="@style/AppTheme"
android:layout_weight="1">

<TextView
android:text="@string/mis_lugares"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center_vertical"
android:height= "@dimen/abc_action_bar_stacked_max_height"
android:gravity="center_vertical|center_horizontal"
android:textSize="@dimen/abc_action_bar_stacked_max_height" />
<LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/b1"
Apuntes de Android por Araceli Velzquez
android:layout_gravity="bottom" />
Gutirrez

</LinearLayout>

Prctica diseo horizontal

Crear un diseo distinto para la


distribucin horizontal

Apuntes de Android por Araceli Velzquez


Gutirrez

Prctica diseo horizontal


<LinearLayout
android:orientation="vertical"
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="fill_parent"
tools:context="com.araceli.mislugares.MainActivity"
android:gravity="top">
<LinearLayout
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="0dp"
android:gravity="fill_horizontal|top|start"
android:background="#f28c8c"
android:visibility="visible"
android:layout_gravity="top"
android:layout_weight="1">
<TextView
android:text="@string/mis_lugares"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center_vertical"
android:height="@dimen/abc_action_bar_stacked_max_height"
android:gravity="center_vertical|center_horizontal"
android:textSize="@dimen/abc_action_bar_stacked_max_height"
/>
</LinearLayout>
<RelativeLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/b1"
android:layout_gravity="top|left"
android:id="@+id/b1" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/b4"
android:layout_gravity="center_horizontal"
android:id="@+id/b4"
android:layout_alignParentTop="true"
android:layout_alignParentEnd="true" />
</RelativeLayout>

Apuntes de Android por Araceli Velzquez


Gutirrez

Multidioma

Para crear etiquetas para un idioma


distinto, creamos un nuevo directorio
values, lo nombramos values-en,
dentro de la carpeta de recursos.
Debemos utilizar la notacin
estandarizada para la abreviatura de
cada idioma

Apuntes de Android por Araceli Velzquez


Gutirrez

Multidioma

Copiamos en values-en, el archivo


strings.xml y modificamos los valores
por su equivalente en el idioma
<resources>
<string name="app_name">My places</string>
<string name="b1">Show places</string>
<string name="b2">Settings</string>
<string name="b3">About</string>
<string name="b4">Exit</string>
<string name="mis_lugares">My places</string>
</resources>

Apuntes de Android por Araceli Velzquez


Gutirrez

Colores

Apuntes de Android por Araceli Velzquez


Gutirrez

Estilos

Crear un estilo para botones y otro


para encabezados, y as.

Apuntes de Android por Araceli Velzquez


Gutirrez

Estilos

Aadir estilos

Apuntes de Android por Araceli Velzquez


Gutirrez

Estilos

Apuntes de Android por Araceli Velzquez


Gutirrez

Archivo manifiest.xml

Propiedades generales de la
aplicacin

Apuntes de Android por Araceli Velzquez


Gutirrez

Tema de la aplicacin

Apuntes de Android por Araceli Velzquez


Gutirrez

Comunicacin
Comunicacin entre activities

Apuntes de Android por Araceli Velzquez

Comunicacin entre activities

Apuntes de Android por Araceli Velzquez


Gutirrez

Comunicacin activityMain

Apuntes de Android por Araceli Velzquez


Gutirrez

Comunicacin activitysec

Apuntes de Android por Araceli Velzquez


Gutirrez

Cdigo Java de enlace

Un archivo
java para cada
actividad

Apuntes de Android por Araceli Velzquez


Gutirrez

Cdigo Java de enlace

Pasos a seguir
1. Crear actividad nueva.
2. Enlazar los objetos del
xml, con objetos de la
clase
java,
(R significa resources).
3. A travs del intent se
crea la nueva actividad
y se envan como
parmetros a la nueva
actividad a travs del
mtodo putExtra()
Apuntes de Android por Araceli Velzquez
Gutirrez

Intent
Intenciones

Apuntes de Android por Araceli Velzquez

Proyecto Jueves

Apuntes de Android por Araceli Velzquez


Gutirrez

Proyecto Jueves

Apuntes de Android por Araceli Velzquez


Gutirrez

Llamada

Apuntes de Android por Araceli Velzquez


Gutirrez

Llamar y email

Apuntes de Android por Araceli Velzquez


Gutirrez

Cdigo

Cdigo para
hacer una
llamada
telefnica
desde
android

Cdigo para
enviar un
correo desde
android

Apuntes de Android por Araceli Velzquez


Gutirrez

Cdigo
Abrir google
maps y
tomar foto

Apuntes de Android por Araceli Velzquez


Gutirrez

Archivos
Leer y escribir archivos

Apuntes de Android por Araceli Velzquez

Proyecto archivos
DISEO XML

VISTA PREVIA

Apuntes de Android por Araceli Velzquez


Gutirrez

Cdigo para escribir


archivo

Apuntes de Android por Araceli Velzquez


Gutirrez

Cdigo para escribir

Como puede
observarse es el
mismo estilo que
se usa en java para
la escritura de
archivos.

Apuntes de Android por Araceli Velzquez


Gutirrez

Cdigo para leer archivos

Como puede
observarse es el
mismo estilo que
se usa en java, en
este caso usamos
el
InputStremReader
y el
BufferedReaderc

Apuntes de Android por Araceli Velzquez


Gutirrez

Cdigo para leer raw


Se
Se abre
abre de
de
los
los recursos
recursos
del
proyecto
del proyecto

Apuntes de Android por Araceli Velzquez


Gutirrez

Bases de datos
Uso de bases de datos en aplicaciones Android

Apuntes de Android por Araceli Velzquez

Bases de datos en Android

Apuntes de Android por Araceli Velzquez


Gutirrez

Estructura del proyecto

Apuntes de Android por Araceli Velzquez


Gutirrez

Estructura de la tabla

Apuntes de Android por Araceli Velzquez


Gutirrez

Creacin de BD y tablas

Apuntes de Android por Araceli Velzquez


Gutirrez

Evento OnCreate

Apuntes de Android por Araceli Velzquez


Gutirrez

Clase principal_ insert

Apuntes de Android por Araceli Velzquez


Gutirrez

Clase principal_consultar

Apuntes de Android por Araceli Velzquez


Gutirrez

Otros
Enlaces y referencias

Apuntes de Android por Araceli Velzquez

Proyectos a revisar

Evaluar esto
http://

ionicframework.com/docs/guide/publishing.
html

Apuntes de Android por Araceli Velzquez


Gutirrez