hernan.aranda.gomez@gmail.com
www.hernan-aranda-gomez.com
SDK ANDROID
Development Tools
http://developer.android.com/intl/es/sdk/i
(ADT) Bundle
ndex.html
II. Introduccin
Qu es Android?
Un
de cdigo abierto.
Historia
Otro factor clave para el xito de Android fue la creacin del grupo Open
Handset Alliance, un consorcio de empresas que buscaba el desarrollo de
estndares mviles. Open Handset Alliance fue clave para el desarrollo de
Android y empresas como LG, Samsung, Qualcomm y Motorola apoyaron
la iniciativa desde el principio. Fruto del trabajo de Google y del apoyo de
empresas fabricantes tan importantes como estas, el sistema creci y se
consolid. Los trabajos para la programacin de Android llevaron varios
aos, hasta que en 2008 Google lo present oficialmente.
Arquitectu
ra de
Android
Kernel de Linux
El ncleo del sistema operativo Android es un kernel Linux versin
los que tienen que acceder las aplicaciones. Esto permite que se
pueda acceder a esos componentes sin necesidad de conocer el
modelo o caractersticas precisas de los que estn instalados en
cada telfono. De esta forma, si una aplicacin necesita, por
ejemplo, la brjula, podr utilizar la que incluya el telfono, sea cual
sea. Para cada elemento hardware del telfono existe un controlador
(driver) dentro del kernel que permite utilizarlo desde el software.
Adems
Bibliotecas
La capa que se sita justo sobre el kernel la componen las bibliotecas nativas de Android
(tambin mal llamadaslibreras, por el trmino inglslibraries). Estas bibliotecas estn
escritas en C o C++ y compiladas para la arquitectura hardware especfica del telfono,
tarea que normalmente realiza el fabricante, que tambin se encarga de instalarlas en el
terminal antes de ponerlo a la venta. Su cometido es proporcionar funcionalidad a las
aplicaciones, para tareas que se repiten con frecuencia, evitando tener que codificarlas
cada vez y garantizando que se llevan a cabo de la forma ms eficiente (en teora, al
menos).
SGL (Scalable Graphics Library): desarrollada por Skia (empresa adquirida por
Google en 2005) y utilizada tanto en Android como en Chrome (navegador web de
Google), se encarga derepresentarelementos en dos dimensiones. Es el motor
grfico 2D de Android.
WebKit: motor web utilizado por el navegador (tanto como aplicacin independiente
como embebido en otras aplicaciones). Es el mismo motor que utilizan Google
Entorno de ejecucin
Marco de aplicacin
La siguiente capa la forman todas las clases y servicios que utilizan directamente
las aplicaciones para realizar sus funciones y que, obviamente, se apoyan en las
bibliotecas y en el entorno de ejecucin que ya hemos detallado. La mayora de los
componentes de esta capa son bibliotecas Java que acceden a los recursos a travs
de la mquina virtual Dalvik. Entre las ms importantes se encuentran las
siguientes:
Aplicaciones
La capa superior de esta pila software la forman, como no podra ser de
otra forma, las aplicaciones. En esta capa se incluyen todas las aplicaciones
del dispositivo, tanto las que tienen interfaz de usuario como las que no,
tanto las nativas (programadas en C o C++) como las administradas
(programadas en Java), tanto las que vienen de serie con el dispositivo
como las instaladas por el usuario.
Aqu
Activity
Una activity es una ventana que contiene la interface de
EJERCICIO 2.
Modificar el programa del ejercicio 1 y
sobreescribir los mtodos del ciclo de vida
de un Activity para mostrar en el LogCat sus
mensajes en tiempo real, como se muestra
en la figura inferior.
EJERCICIO 3.
Modificar el programa
del ejercicio 2 para
que se conserven el
nombre del usuario y
el mensaje de
bienvenida, al crearse
una nueva instancia
de la activity.
Haga pruebas
presionando el botn
BACK y regresando a la
aplicacin, tambin
rotando la pantalla de
vertical a horizontal y
visceversa.
una activity.
Los intents son mecanismos de paso de mensajes en el
S.O. para ejecutar activities dentro de la misma aplicacin
o entre aplicaciones. Existen dos maneras:
Implcitamente: solicitando que se ejecute una accin nativa
Ejecucin de
una Activity
desde un
evento.
EJERCICIO 4.
Modificar el programa
del ejercicio 3 para que
el usuario introduzca una
direccin WWW y al dar
clic en el botn, se abra
la pgina solicitada. El
browser se disparar con
la accin nativa de
Intent.ACTION_VIEW
String nombre =
getIntent().getExtras().getString("KEY_NOMBRE");
Lo
el
mtodo
EJERCICIO
6.
Hacer el
programa del
ejemplo
anterior .
AndroidManifest.xml
Cada
aplicacin
Android
debe
tener
su
archivo
AndroidManifest.xml en su directorio raz.
Este archivo presenta la informacin esencial de la aplicacin
para el sistema Android antes de ser ejecutada, que contiene lo
siguiente:
Nombre del paquete Java para la aplicacin. Este nombre sirve
IV. Views
Arquitectura GUI: el modelo, la
vista y el controlador.
Layouts.
Componentes grficos.
Eventos.
Mens.
Inflado de vistas.
Android
utilizamos
el
patrn
de
arquitectura
llamadoModelo Vista Controlador(MVC)cuya principal
bondad consiste en separar los datos de una aplicacin, la
interfaz de usuario y la lgica de negocios en tres componentes
distintos que se relacionarn para al final tener como resultado
nuestra aplicacin.
(LinearLayout).
Es el ms simple que
podemos utilizar.
Como su nombre
indica, los elementos
se irn colocando uno
detrs de otro, pero si
que podemos indicar
si la colocacin lineal
se har de forma
vertical u horizontal.
Layout de Tabla
(TableLayout).
Es un modelo de
organizacin basado en
una organizacin con
tablas. El diseo lo
organizaremos en filas
(elemento TableRow) y
dentro de cada fila,
pondremos los
elementos.
Layout Relativo
(RelativeLayout).
Este es el layout
ms flexibles de
todos. Los
elementos se
colocan relativos a
otro elemento o a
otro layout.
Layout de Marco
(FrameLayout).
Este layout consiste
en un marco que
ocupa toda la
pantalla, y donde
los controles se
dispondrn a partir
de la esquina
superior izquierda,
por lo que es
probable que haya
elementos que se
queden ocultos
detrs de otros.
EJERCICIO 7.
Utilizando un layout de
tipo tabla, elaborar la
vista XML de la
aplicacin Calculadora
de Propinas que se
muestra en la figura de
la derecha.
NOTA: La aplicacin no
tendr funcionalidad
todava. El controlador
ser programado en el
siguiente ejercicio.
Eventos
Para darle funcionalidad a nuestros componentes grficos dentro de la
Hay dos maneras de registrar listeners para los eventos. Ejemplo: si queremos
2.
EJERCICIO 8.
Implementar los listeners
necesarios para dar
funcionalidad al ejercicio 7.
b)
c)
d)
e)
f)
Mens
En Android existen tres tipos de mens que podemos utilizar
Para
2.
Para
EJERCICIO 10.
Modificar el ejercicio 9, eliminando
el botn Limpiar y agregando un
men con 2 opciones:
1. Limpiar.
2. Copiar a portapapeles.
2 formas:
1. A travs de puro cdigo, invocando al mtodo add() de la
referencia al objeto de tipo Menu que recibe el mtodo
onCreateContextMenu().
2. A travs de la manera ms recomendada: Inflando un
archivo XML de tipo men, donde deben estar
especificados: su texto, cono, shortcuts, etc.
Para manejar las selecciones de los tems del men contextual,
EJERCICIO 11.
Modificar el ejercicio
10, para utilizar las
mismas opciones en
un men contextual
cuando el usuario
haga long-press en el
nmero a convertir.
Inflado de Views
El inflado de views es utilizado para instanciar archivos XML
EJERCICIO 12.
Utilizando Inflado de Vistas,
realizar una aplicacin que
calcule el promedio de N
calificaciones introducidas
por el usuario.
Conforme el usuario
ingresa el nmero de
calificaciones, de manera
dinmica se debern
mostrar las vistas para
capturar las mismas.
El promedio deber ser
calculado de la misma
manera de forma
automtica.
mensajes personalizados.
Services
A diferencia de las Activities que despliegan interfaces grficas,
EJERCICIO 13.
Analizar la aplicacin SimpleService, que permite
ejecutar y detener un Service que funciona
como Alarma, reproduciendo un mp3 al
cumplirse la fecha y hora .
Broadcast Receivers
Un Broadcast Receiver es un receptor de eventos generados
EJERCICIO 14.
Analizar la aplicacin SimpleBroadcastReceiver,
que ejecuta un Service que despliega un
mensaje en la pantalla cuando el usuario pulsa
el botn de la cmara.
Mensajes de Alerta
Una Alert proporciona un mensaje al usuario, fuera
Analizar la
aplicacin
ShowNotificati
on, que coloca
un mensaje en
la barra de
notificaciones
del sistema.