You are on page 1of 110

INSTITUTO TECNOLGICO DE TUXTLA

GUTIRREZ

Mdulo 0
Introduccin a Android
M.C. Jos Alberto Morales
Mancilla
amancilla58@hotmail.com

Introduccin

Jos A. Morales Mancilla

Jos A. Morales Mancilla

Herramientas opcionales de
desarrollo
Dos enfoques:
Dispositivos mviles soportados por buscadores web.
Trabajo desarrollado principalmente con HTML y
JavaScript.
Aplicaciones web con caractersticas nativas mejor que
una aplicacin completamente nativa.
Soporte para propiedades nativas que pueden ser
limitadas o usar APIs de JavaScript.
Traducir o compilar a un lenguaje comn tal como C# o
JavaScript dentro de lenguajes nativos tal como Java para
Android con su mquina virtual Dalvik o Objective-C para
IOS.
Jos A. Morales Mancilla

Herramientas opcionales de
desarrollo
Desarrollo con lenguajes .NET con C# con el objetivo
de generar aplicaciones para iPhone Apple y Android.
PhoneGap es una plataforma opcional de desarrollo
de aplicaciones para dispositivos mviles con
estndares de desarrollo (HTML5, JS,CSS), el cul
permite
generar aplicaciones para Android, IOS,
BlackBerry, Windows Mvil con tec. Web.
Appcelerator Titanium
es otra plataforma de
desarrollo de aplicaciones para Android. Titanium
puede ser compilado dentro del lenguaje nativo.
Android NDK se pueden desarrollar aplicaciones
para Android con C++. Hay cierta porcin de la
Jos A. Morales Mancilla
Arquitectura de Android
que est en C++. El cdigo

Jos A. Morales Mancilla

Jos A. Morales Mancilla

Jos A. Morales Mancilla

Jos A. Morales Mancilla

Jos A. Morales Mancilla

Arquitectura de Android

Jos A. Morales Mancilla

Android y Java

Jos A. Morales Mancilla

Instalacin de Android
Ir a a la pgina de Android http://www.android.com y
seleccionar la opcin Developers.

Jos A. Morales Mancilla

Obtener el SDK
Elegir la opcin Get the SDK

Jos A. Morales Mancilla

Descargando el Android SDK


Seleccionar la opcin Download the SDK ADT
Bundle for Windows

Jos A. Morales Mancilla

Aceptar los trminos y condiciones

Jos A. Morales Mancilla

Descargando el archivo zip

Jos A. Morales Mancilla

Laboratorio (Lab00)
Para poder instalar el ambiente de
Android, hay dos opciones:
1. Usar bundle
2. Manualmente instalar todos los
componentes

Jos A. Morales Mancilla

Versiones de Android de Android


(Septiembre 2012)

Jos A. Morales Mancilla

Archivos importantes

Jos A. Morales Mancilla

Archivos importantes

Jos A. Morales Mancilla

Archivos y carpetas importantes


Archivo
Manifest Este archivo
agrega todas las
caractersticas de la aplicacin. Es un archivo que explica
cmo est construida la aplicacin, los bloques
de
construccin que son parte de la aplicacin, y los permisos
requeridos. Bsicamente es un descriptor de la aplicacin
(AndroidManifest.xml).
Src Esta carpeta contiene el cdigo fuente de la aplicacin
el cual es un archivo java.
Gen- Esta carpeta contiene el cdigo generado de forma
automtica por el SDK. Nunca hay que modificar de manera
manual estos archivos. Dentro de esta carpeta encontramos
el archivo R. Este archivo contiene lo que est entre el
entorno de Java y los recursos (gen). El archivo R.java define
una clase que asocia los recursos de la aplicacin, con los
Jos A. Morales Mancilla
identificadores, de esta forma los recursos podrn ser

Archivos y carpetas importantes


Res: Esta carpeta contiene los recursos usados por la
aplicacin.
Drawable: En esta carpeta se almacenan los archivos
de imgenes y descriptores de imgenes.
Layout: Esta carpeta contiene los archivos XML con
vistas de la aplicacin. Las vistas nos permitirn
configurar las diferentes pantallas que compondrn la
interfaz de usuario de la aplicacin.
Menu: contiene archivos XML que son los mens de la
aplicacin.
Values: esta carpeta contiene archivos XML que sirven
para indicar los valores de tipo string, color o estilo. De
esta manera seJos pueden
cambiar los valores sin
A. Morales Mancilla
necesidad de ir al cdigo fuente. Contiene todo el texto

Manejo de los recursos


La @ hace referencia a la carpeta res
donde se encuentran los recursos.

Jos A. Morales Mancilla

Archivo AndroidManifest.xml

Jos A. Morales Mancilla

Laboratorio (Lab0A)

Hacer el proyecto Lab00 Hola-Mundo


Revisar el contenido del proyecto
Carpeta src que contiene a el cdigo fuente java
Carpeta gen que contiene el archivo R.java
Carpeta res que contiene los recursos de la
aplicacin
AndroidManifest.xml
archivo donde se
especifican los permisos de la aplicacin y otras
cosas como intentos, filtros etc.
Hacer modificaciones a la aplicacin

Jos A. Morales Mancilla

Componentes o bloques
de construccin

Jos A. Morales Mancilla

Bloques de construccin

Jos A. Morales Mancilla

Jos A. Morales Mancilla

Jos A. Morales Mancilla

Jos A. Morales Mancilla

Jos A. Morales Mancilla

Jos A. Morales Mancilla

Contenedores

Jos A. Morales Mancilla

Contenedores o containers
Un Layout es un contenedor de una o ms vistas
y controla su comportamiento y posicin. Un
layout puede a otro Layout. Es un descendiente
de la clase View.
Android soporta un rango de contenedores que
tienen diferentes reglas de diseo:

LinearLayout
RelativeLayout
TableLayout
AbsoluteLayout
FrameLayout
Jos A. Morales Mancilla

LinearLayout
LinearLayout.
Dispone
a
los
widgets
o
contenedores hijos en filas o columnas uno despus
del otro.
Trabaja de manera similar al FlowLayout de
Java/swing
Por default cualquier elemento en LinearLayout
los coloca o alinea de izquierda y arriba. Se puede
definir lo siguiente:

Orientation
Layout_width
Layout_height
Weight

Jos A. Morales Mancilla

RelativeLayout
RelativeLayout. Dispone la colocacin de los
widgets en relacin a otros widgets en el contenedor
y el contenedor padre.
Tiene una posicin relativa al contenedor.
Posicin relativa con otros widgets.
Por
ejemplo
la
posicin
relativa
al
contenedor:
Android:layout_alignParentTop: Alnea a los widgets
con el tope del contenedor.
Posicin relativa a otros widgets:
Jos A. Morales Mancilla
Android:layout_above: indica que el wigdet podra

TableLayout
TableLayout. Distribuye a los widgets de manera
tabular.
Permite colocar a los widgets en forma de matriz
del tamao que se especifique.
El nmero de filas y columnas forzar a reducir el
tamao de su contenido.
TableLayout trabaja en conjunto con TableRow.

Jos A. Morales Mancilla

Laboratorio (Lab0B)
Contenedor
Crear una aplicacin usando
LinearLayout (Lab0B1)
Crear una aplicacin usando
RelativeLayout (Lab0B2)
Crear una aplicacin usando
TableLayout (Lab0B3)

Jos A. Morales Mancilla

LinearActivity.java

Jos A. Morales Mancilla

Activity_linear.xml

Jos A. Morales Mancilla

Activity_relative.xml

Jos A. Morales Mancilla

Activity_table.xml

Jos A. Morales Mancilla

Laboratorio (Lab0B4)
En Android los botones permiten
interactuar con la aplicacin
mediante eventos.
Definicin de un botn en el layout

Jos A. Morales Mancilla

Agregando el botn al archivo xml

Jos A. Morales Mancilla

Archivo activity.java
(Lab0B4)

Jos A. Morales Mancilla

Laboratorio (Lab0B5)
El AbsoluteLayout permite indicar
las coordenadas (x,y) donde se
desea
visualizar
cada
widget.
Android
permite
indicar
las
coordenadas de varias formas:
Px (pixeles)
Mm (milmetros)
In (pulgadas)
Pt (puntos) equivale a 1/72pulgadas
Jos A. Morales Mancilla

AbsoluteLayout
Dp o dip Supone un dispositivo de
160 pxeles por pulgada (densidad).
Si el dispositivo tiene otra densidad
se realizar la correspondiente regla
de tres.

Jos A. Morales Mancilla

Activity_absolute.xml

Jos A. Morales Mancilla

AbsoluteActivity.java

Jos A. Morales Mancilla

FrameLayout
FrameLayout todos los elementos
usando todo el contenedor, sin
distribuirlos. Este Layout se utiliza
cuando
se
desea
que
varios
componentes ocupen el mismo lugar
pero solo uno de ellos ser visible.
Para modificar la visibilidad de un
componente se utiliza la propiedad
visibility
Jos A. Morales Mancilla

Laboratorio (Lab0B6)

Jos A. Morales Mancilla

Eventos

Jos A. Morales Mancilla

Evento

Jos A. Morales Mancilla

Eventos

Jos A. Morales Mancilla

Eventos

Jos A. Morales Mancilla

Formas de manejar eventos


Mtodo onClick() de un botn

Jos A. Morales Mancilla

Formas de manejar eventos


Como un delegado

Jos A. Morales Mancilla

Formas de manejar eventos


Implementando OnClickListener
como una interfaz

Jos A. Morales Mancilla

Laboratorio (lab0C1)
import android.view.View
import android.widget.Button
- Crear actividad que implemente
View.OnClickListener de manera
delegada
Crear variable de instancia botn de
tipo Button
Utilizar el LogCat para imprimir el
mensaje
Jos A. Morales Mancilla

EventoBotonActivity.java (Lab0C1)

Jos A. Morales Mancilla

Activity_evento_boton.xml

Jos A. Morales Mancilla

Eventos (Lab0C2) Eventos


Utilizando un escuchador de eventos
crear una aplicacin que actualice la
hora del sistema al presionar un
botn, implementando la interface
OnClickListener

Jos A. Morales Mancilla

Laboratorio (lab0C2)

Jos A. Morales Mancilla

Activity_evento_fecha.xml

Jos A. Morales Mancilla

Laboratorio Lab0C3
Creando un objeto de una clase que
implementa
la
interface
OnClickListener,
hacer
una
aplicacin para calcular el factorial
de un numero al presionar un botn.
En este ejercicio disear la interface
de manera visual (no en xml)

Jos A. Morales Mancilla

Lab0C3

Jos A. Morales Mancilla

FactorialActivity.java

Jos A. Morales Mancilla

Lab0C4
Implementando
la
interface
OnClickListener
hacer
una
aplicacin para hacer la suma de dos
nmeros de tipo Double, usar tres
EditText, dos para introducir los
valores y uno para poner el resultado
de la suma.
Disear la interface de manera
visual.
Jos A. Morales Mancilla

Diseo de la interface (Lab0C4)

Jos A. Morales Mancilla

SumaActivity.java
(Lab0C4)

Jos A. Morales Mancilla

Jos A. Morales Mancilla

Intentos

Jos A. Morales Mancilla

Intent
Mensajes que son enviados entre los
bloques principales de una aplicacin
o de otra aplicacin Android.
Ellos provocan o accionan el inicio de
una actividad, le dicen al servicio
cuando iniciar o parar, enviar un
mensaje a un broadcast.
Los proveedores de contenidos no
utilizan los intentos.
Jos A. Morales Mancilla

Laboratorio (Lab0D)
Intentos
Crear una aplicacin para comunicar
dos vistas usando intentos

Jos A. Morales Mancilla

CICLO DE VIDA DE UNA


APLICACIN EN ANDROID

Jos A. Morales Mancilla

Ciclo de vida de una


activity

Las aplicaciones se ejecutan en la


DVM (Dalvik Virtual Machine), se
enlazan las clases, se compila la
clase R y se empaqueta en un
archivo .dex.

Jos A. Morales Mancilla

Ciclo de vida de una


Estado
Aborta
Activity Descripcin
ble
onCreate
()

Se ejecuta cuando se crea la Activity por


primera vez. Aqu es donde se deberan crear
views, enlazar datos a listas, etc. en definitiva el
proceso de inicializacin de nuestra aplicacin.

Se ejecuta despus de que la aplicacin se haya


onRestart
detenido, justo despus de que sea iniciada de
()
nuevo.

onStart()

Se ejecuta justo antes de que la aplicacin


aparezca visible para el usuario. Si la aplicacin
es un proceso en segundo plano el siguiente
estado es onStop(), si la aplicacin se ejecuta en
primer
plano
el
siguiente
mtodo
es
onResume().

onResume
()

Se ejecuta cuando la Activity interacta con el


usuario. En ste punto la Activity est en la cima
de la pila.

onPause(

Se ejecuta cuando el sistema est a punto de


continuar una Activity anterior. Se utiliza
Jos A. Morales Mancilla
tpicamente para guardar datos que no se han

No

No

No

No

Si

Siguient
e
onStart()
onStart()

onResume(
)
o
onStop()

onPause()

onResume(
)

Ciclo de vida de una


Activity

Esatado

Descripcin

onStop()

Se ejecuta cuando la Activity deja de ser


visible al usuario, porque otra Activity ha
continuado y pasa a un lugar ms
prioritario de la pila. Puede ocurrir porque
una nueva Activity ha sido creada, una
Activity ya creada pasa a primer plano o
sta est siendo destruida. El siguiente
mtodo ser onRestart() si la Activity
vuelve a interaccionar con el usuario o por
onDestroy() si la Activity ser destruida.

onDestro
y()

ltima llamada antes de destruir la


Activity. Puede ocurrir porque la actividad
est acabando (llamada a finish() ) , o
porque el sistema destruir la instancia
para guardar espacio. Se puede distinguir
Morales Mancilla
esos
escenariosJos A.con
el
mtodo

Aborta
ble

Si

Si

Siguient
e

onRestart
()
o
onDestro
y()

NADA

Ciclo de vida de una


actividad

Jos A. Morales Mancilla

Jos A. Morales Mancilla

Jos A. Morales Mancilla

Ciclo de vida de una


Activity

Jos A. Morales Mancilla

Laboratorio (Lab0E) Ciclo de


vida
Crear una aplicacin que ejecute el
ciclo de vida de una actividad
Revisar el contenido del proyecto
Explicar el ciclo de vida de una
aplicacin en Android

Jos A. Morales Mancilla

Crear un nuevo proyecto


(Lab0E)

Jos A. Morales Mancilla

Duplicar un archivo xml

Para duplicar el archivo seleccione el


archivo activity_main.xml y hacer clic
derecho, seleccione copiar y despus
seleccione la carpeta layout
y clic
derecho y pegar. Aparecer el cuadro de
dilogo para introducir el nombre del
archivo
Jos A. Morales Mancilla

Agregando otra actividad en


manifest

Jos A. Morales Mancilla

Agregando una clase


Activity2

Jos A. Morales Mancilla

Agregando una clase


Activity2

Para introducir el nombre de la


clase se dio clic derecho en la
carpeta donde se encuentra el
archivo fuente de Java y
seleccionar la opcin Class
Jos A. Morales Mancilla

Agregando una clase


Activity2

Jos A. Morales Mancilla

Agregando cdigo a
MainActivity.java

Jos A. Morales Mancilla

Agregando cdigo a
MainActivity.java

Jos A. Morales Mancilla

Agregando cdigo a
MainActivity.java

Jos A. Morales Mancilla

Ejecutando la aplicacin
Presionar el botn
de retorno y
observar la consola
LogCat, despus
iniciar la actividad
presionando el
icono de la
aplicacin,
observar que
sucede

Jos A. Morales Mancilla

Toast

Jos A. Morales Mancilla

Toast
Un toast es un mensaje que se
muestra en pantalla durante unos
segundos al usuario para luego
volver
a
desaparecer
automticamente sin requerir ningn
tipo de actuacin por su parte, y sin
recibir el foco en ningn momento (o
dicho de otra forma, sin interferir en
las acciones que est realizando el
usuario en ese momento).
Jos A. Morales Mancilla

Toast
Aunque son personalizables, aparecen por
defecto en la parte inferior de la pantalla,
sobre un rectngulo gris ligeramente
translcido.
Por
sus
propias
caractersticas, este tipo de notificaciones
son ideales para mostrar mensajes
rpidos y sencillos al usuario, pero por el
contrario, al no requerir confirmacin por
su parte, no deberan utilizarse para hacer
notificaciones demasiado importantes.
Jos A. Morales Mancilla

Toast
Esta clase dispone de un mtodo esttico
makeText() al que deberemos pasar como
parmetro el contexto de la actividad, el texto
a mostrar, y la duracin del mensaje, que
puede tomar los valores LENGTH_LONG o
LENGTH_SHORT, dependiendo del tiempo
que queramos que la notificacin aparezca en
pantalla. Tras obtener una referencia al objeto
Toast a travs de este mtodo, ya slo nos
quedara mostrarlo en pantalla mediante el
mtodo show().
Jos A. Morales Mancilla

Cmo usar Toast?


Las siguientes lneas de cdigo
muestran como se usa Toast

Jos A. Morales Mancilla

Toast bsico
El siguiente cdigo muestra un Toast bsico

Jos A. Morales Mancilla

Toast (Lab0F1)
Colocando un botn
de manera visual

Jos A. Morales Mancilla

ToastActivity.java

Jos A. Morales Mancilla

A makeText() se le debe pasar como parmetro


el contexto de la actividad, el texto a mostrar y
la duracin del mensaje. Para mostrarlo se usa el
mtodo show().
Jos A. Morales Mancilla

Ejecucin de la
aplicacin

Jos A. Morales Mancilla

Cambiar la posicin del


Toast
Para cambiar la posicin del mensaje
en la pantalla se utiliza el mtodo
setGravity(), al que podremos
indicar en qu zona deseamos que
aparezca la notificacin. La zona
deberemos indicarla con alguna de
las constantes definidas en la clase
Gravity: CENTER, LEFT, BOTTOM, o
con alguna combinacin de stas.
Jos A. Morales Mancilla

Cambiar la posicin del


Para ello creamos un segundo programa
Toast
donde se va a colocar la notificacin en la
zona central izquierda de la pantalla. Para
ello, aadamos un segundo botn a la
aplicacin de ejemplo que muestre un
toast con estas caractersticas:

Jos A. Morales Mancilla

Toast Gravity (Lab0F2)


Agregando dos botones
para que cada uno ejecute
un Toast diferente

Jos A. Morales Mancilla

MainActivity.java
(Lab0F2)

Jos A. Morales Mancilla

Continuacin
MainActivity.java

Agregando dos clases, para que un evento


sobre un botn pueda crear un objeto de
una clase.
Jos A. Morales Mancilla

Ejecutando la aplicacin

Al ejecutar la aplicacin el
Toast aparece en la zona
indicada

Jos A. Morales Mancilla

You might also like