Sunteți pe pagina 1din 32

MATERIAL DE APOYO

SERVICIO NACIONAL DE APRENDIZAJE


DIRECCIN GENERAL
DIRECCIN DE FORMACIN PROFESIONAL
Sistema Integrado de Mejora Continua

FORMATO PE04

Arquitectura de aplicaciones en Android

Android es un entorno operativo completo basado en el kernel Linux V2.6. Inicialmente,


el objetivo de implementacin para Android fue el rea de telfonos mviles, incluso
telfonos inteligentes y dispositivos de telfonos con tapa de bajo costo. Sin embargo, el
rango completo de servicio de computacin de Android y el vasto soporte funcional tienen
el potencial para extenderse ms all del mercado de telfonos mviles. Android puede
ser til para otras plataformas y aplicaciones. En la figura 1, se puede apreciar la
arquitectura de software para el despliegue de servicios basados en Plataforma Android.

Fig 1. Arquitectura para aplicaciones Android. Fuente:


https://sites.google.com/site/swcuc3m/home/android/generalidades/2-2-arquitectura-deandroid.
La plataforma para dispositivos mviles Android contienen una pila de software donde
se incluye un sistema operativo, middleware y aplicaciones bsicas para el usuario. Las
capas de la arquitectura de su arquitectura son:

Aplicaciones: Este nivel contiene, tanto las incluidas por defecto de Android como
aquellas que el usuario vaya aadiendo posteriormente, ya sean de terceras
empresas o de su propio desarrollo. Todas estas aplicaciones utilizan los servicios,
las API y libreras de los niveles anteriores.

Framework de Aplicaciones: Representa fundamentalmente el conjunto de


herramientas de desarrollo de cualquier aplicacin. Toda aplicacin que se
desarrolle para Android, ya sean las propias del dispositivo, las desarrolladas por
Google o terceras compaas, o incluso las que el propio usuario cree, utilizan el
mismo conjunto de API y el mismo "Framework", representado por este nivel.
Entre las API ms importantes ubicadas aqu, se pueden encontrar las siguientes:
Activity Manager: Conjunto de API que gestiona el ciclo de vida de las
aplicaciones en Android.
Window Manager: Gestiona las ventanas de las aplicaciones y utiliza la librera
Surface Manager.
Telephone Manager: Incluye todas las API vinculadas a las funcionalidades
propias del telfono (llamadas, mensajes, etc.).
Content Provider: Permite a cualquier aplicacin compartir sus datos con las
dems aplicaciones de Android. Por ejemplo, gracias a esta API la informacin de
contactos, agenda, mensajes, etc. ser accesible para otras aplicaciones.
View System: Proporciona un gran nmero de elementos para poder construir
interfaces de usuario (GUI), como listas, mosaicos, botones, "check-boxes",
tamao de ventanas, control de las interfaces mediante teclado, etc. Incluye
tambin algunas vistas estndar para las funcionalidades ms frecuentes.
Location Manager: Posibilita a las aplicaciones la obtencin de informacin
de localizacin y posicionamiento.
Notification Manager: Mediante el cual las aplicaciones, usando un mismo
formato, comunican al usuario eventos que ocurran durante su ejecucin: una
llamada entrante, un mensaje recibido, conexin Wi-Fi disponible, ubicacin en un
punto determinado, etc. Si llevan asociada alguna accin, en Android
denominada Intent, (por ejemplo, atender una llamada recibida) sta se activa
mediante un simple clic.
XMPP Service: Coleccin de API para utilizar este protocolo de intercambio de
mensajes basado en XML.

Libreras: La siguiente capa se corresponde con las libreras utilizadas por


Android. stas han sido escritas utilizando C/C++ y proporcionan a Android la
mayor parte de sus capacidades ms caractersticas. Junto al ncleo basado en
Linux, estas libreras constituyen el corazn de Android.
Entre las libreras ms importantes ubicadas aqu, se pueden encontrar las
siguientes:

Librera libc: Incluye todas las cabeceras y funciones segn el estndar del
lenguaje C. Todas las dems libreras se definen en este lenguaje.

Librera Surface Manager: Es la encargada de componer los diferentes


elementos de navegacin de pantalla. Gestiona tambin las ventanas
pertenecientes a las distintas aplicaciones activas en cada momento.

OpenGL/SL y SGL: Representan las libreras grficas y, por tanto, sustentan la


capacidad grfica de Android. OpenGL/SL maneja grficos en 3D y permite utilizar,
en caso de que est disponible en el propio dispositivo mvil, el hardware
encargado de proporcionar grficos 3D. Por otro lado, SGL proporciona grficos en
2D, por lo que ser la librera ms habitualmente utilizada por la mayora de las
aplicaciones. Una caracterstica importante de la capacidad grfica de Android es
que es posible desarrollar aplicaciones que combinen grficos en 3D y 2D.
Librera Media Libraries: Proporciona todos los cdecs necesarios para el
contenido multimedia soportado en Android (vdeo, audio, imgenes estticas y
animadas, etc.)
FreeType: Permite trabajar de forma rpida y sencilla con distintos tipos de
fuentes.
Librera SSL: Posibilita la utilizacin de dicho protocolo para establecer
comunicaciones seguras.
Librera SQLite: Creacin y gestin de bases de datos relacionales.
Librera WebKit: Proporciona un motor para las aplicaciones de tipo navegador y
forma el ncleo del actual navegador incluido por defecto en la plataforma Android.

Tiempo de ejecucin de Android: Al mismo nivel que las libreras de Android se


sita el entorno de ejecucin. ste lo constituyen las Core Libraries, que son
librerias con mulititud de clases Java y la mquina virtual Dalvik.

Ncleo Linux: Android utiliza el ncleo de Linux 2.6 como una capa de
abstraccin para el hardware disponible en los dispositivos mviles. Esta capa
contiene los drivers necesarios para que cualquier componente hardware pueda
ser utilizado mediante las llamadas correspondientes. Siempre que un fabricante
incluye un nuevo elemento de hardware, lo primero que se debe realizar para que
pueda ser utilizado desde Android es crear las libreras de control o drivers
necesarios dentro de este kernel de Linux embebido en el propio Android.

DESARROLLO DE APLICACIONES EN PLATAFORMA ANDROID


Teniendo un IDE para android, desde el men de opciones seleccionamos : File -> New
-> Android Application Project

En este dilogo especificamos el nombre de la aplicacin y proyecto (pueden ser


iguales) y el nombre del paquete java donde se almacenarn los archivos java que
creemos (normalmente la url de su empresa al revs).
Ahora empezaremos a presionar el botn next para pasar a otras configuraciones
de nuestra aplicacin, por el momento dejaremos todos los valores por defecto en
cada una de los dilogos que aparece (son 5 dilogos actualmente), en el ltimo
dilogo
debe
aparecer
el
botn
"Finish"
el
cual
presionamos.

El ADT nos genera todos los directorios y archivos bsicos para iniciar nuestro
proyecto:

La interfaz visual de nuestro programa para Android se almacena en un archivo


XML en la carpeta res, subcarpeta layout y el archivo se llama activity_main.xml.
En esta carpeta tenemos creada nuestra primer pantalla.
Al seleccionar este archivo el ADT nos permite visualizar el contenido en "vista de
diseo (Graphical Layout)":

Si seleccionamos la otra pestaa podemos visualizar el archivo activity_main.xml


en formato de texto:

El ADT ya insert un control de tipo RelativeLayout que permite ingresar controles


visuales alineados a los bordes y a otros controles que haya en la ventana (ms
adelante analizaremos este layout).
Ya veremos que podemos modificar todo este archivo para que se adapte a la
aplicacin que queremos desarrollar.
Luego contenido en el control RelativeLayout hay otro control de tipo TextView que
es bsicamente una etiqueta o label que mostrar en pantalla el valor almacenado
en la propiedad text.
Podemos modificar directamente el archivo xml o en "vista de diseo" modificar los
valores de las propiedades. Elegimos nuevamente la pestaa "Graphical Layout" y
seleccionamos el TextView con el mouse y vemos que en la parte derecha de la
pantalla aparece una ventana llamada "properties":

Y estando seleccionado el TextView buscamos la propiedad Text y cargamos: "Mi


primer programa para Android" y presionamos enter, podemos ver que se
actualiza la vista:

Con esto ya podemos probar nuestra primer aplicacin para un dispositivo


Android. SELECCIONAMOS con el mouse en la ventana de la izquierda (Package

Explorer) el proyecto001 y presionamos el cono de Run (tringulo verde) o desde


el men. Seleccionamos que se ejecute como aplicacin "Android Application".
Ahora se abrir el AVD(Android Virtual Device) esto tarda bastante tiempo, es muy
importante recordar que luego de ver ejecutndose el programa NO debemos
cerrar el AVD para que la prxima ejecucin se inicie ms rpido (podemos
minimizar el AVD)
Ahora podemos ver nuestra primer aplicacin corriendo en el emulador de
Android:

Actividades, Controles y Layouts

La Actividad en una aplicacin Android es una clase java que contiene todo el
cdigo necesario para llevar a cabo una determinada tarea. Si tomamos como
ejemplo una aplicacin para leer email, podemos identificar fcilmente tareas que
pueden ser tratadas como actividades:

Descargar del servidor los nuevos mensajes recibidos


Presentar la lista de mensajes existentes
Leer un mensaje
Responder a un mensaje
Escribir un nuevo mensaje

Normalmente, la realizacin de una actividad requiere algn tipo de interaccin


con el usuario. Para conseguir esta interaccin, la actividad crea en la pantalla una
serie de elementos grficos denominados genricamente controles como lo
son: Las cajas de texto, botones, campos de formulario, imgenes, etc
La disposicin de los controles sobre la pantalla est determinada por un
conjuntos de Layouts. Layout es la denominacin genrica que se aplica tanto
a Views como a ViewGroups, en donde:

Un View es un conjunto de controles dispuestos de determinada manera.


Un ViewGroup es un conjunto de Vistas dispuestas de determinada manera.

Una aplicacin sencilla constar de una nica Actividad, y un nico Layout que
contiene uno o varios Controles.
Ejemplo de Actividad
En el proyecto Hola que acabamos de crear, la Actividad est en el fichero
src/com/javaya/Proyecto001/MainActivity.java y su contenido es el siguiente:

Como vemos, la Actividad extiende la clase Activity, en la que se definen los


mtodos por defecto para todos los eventos que pueden generarse.
El programador debe realizar implementaciones especficas de estos mtodos
mediante la keyword @Override. Normalmente, se implementan los mtodos
onCreate y onCreateOptionsMenu. El mtodo onCreate simplemente realiza una
llamada a setContentView para visualizar el layout activity_main.
Ejemplo de Layout
El layout activity_main que utiliza la aplicacin se encuentra definido en el fichero
res/layout/activity_main.xml, y su contenido es:

Como vemos, se trata de un layout que ocupa toda la pantalla (el valor de with y
height es match_parent), y que slo contiene un elemento de tipo TextView. El
elemento se inicializa en la lnea 11 con el valor literal @string/hello_world.
Eventos del Botn
Los eventos del botn en una aplicacin de Android deben ser activados desde la
interfaz (xml) y realizar las operaciones respectivas de captura del tipo String y
posteriormente parsear los datos para su operacin. En el siguiente ejemplo se
muestra una aplicacin que permite sumar dos nmeros y ejecutar el mtodo
escucha del botn para desplegar el resultado.
La interfaz se va a disear de la siguiente forma:

Desde la ventana "Palette" seleccionamos de la pestaa "Form Widgets" el control


"TextView" y lo arrastramos a la ventana de diseo de nuestra interfaz:

Ahora lo seleccionamos y en la ventana de propiedades especificamos la


propiedad text y escribimos el texto "Ingrese el primer valor:"

Tambin vamos a especificar la propiedad "Id", la misma aparece primera en la


paleta de propiedades y le asignaremos el valor @+id/tv1 (el nombre es el que se
indica luego de la barra es decir cambiamos textView1 por tv1) Cuidado de no
borrar @+id/

Hemos entonces asignado como nombre a este objeto: tv1 (recordemos que se
trata de un objeto de la clase TextView)
Ahora de la paleta de componentes seleccionamos la pestaa "Text Fields" y
arrastramos el primero (el que tiene la etiqueta abc)

En la ventana de properties estando seleccionado el EditText configuramos la


propiedad Id... con el nombre et1 (este nombre haremos referencia posteriormente
desde Java)
Efectuamos los mismos pasos para crear el segundo TextView y EditText
(inicializamos las propiedades respectivas) Definimos los id con los nombres tv2 y
et2,
el
resultado
visual
debe
ser
algo
semejante
a
esto:

De la pestaa "Form Widgets" arrastramos un control de tipo "Button":

Inicializamos la propiedad text con el texto "Sumar" y la propiedad id la dejamos


con el valor ya creado llamado "button1".
Para terminar con nuestra interfaz visual arrastramos un tercer objeto de tipo
TextView y definimos la propiedad id con el valor "tv3" y la propiedad text con el
texto "resultado", recordemos que la interfaz final debe ser semejante a esta:

Si en este momento ejecutamos la aplicacin aparece la interfaz visual


correctamente pero cuando presionemos el botn no mostrar la suma.
Es fundamental una vez finalizada la interfaz visual proceder a grabarla
(icono de los diskettes) o la opcin File->Save para que se actualicen los
archivos que se generan automticamente.
Hasta ahora hemos trabajado solo con el archivo xml (activity_main.xml) donde se
definen los controles visuales de la ventana que estamos creando.

Abrimos seguidamente el archivo MainActivity.java que lo podemos ubicar en la


carpeta src:

Captura de eventos.

Ahora viene la parte donde definimos variables en java donde almacenamos las
referencias a los objetos definidos en el archivo XML.
Definimos tres variables, dos de tipo EditText y finalmente una de tipo TextView
(estas dos clases se declaran en el paquete android.widget, es necesario importar
dichas clases para poder definir las variables de dichas clases). Tambien se define
un metdo sumar para ejecutar las operaciones:

Ahora debemos ir al archivo XML e inicializar la propiedad OnClick del objeto


button1 con el nombre del mtodo que acabamos de crear (este paso es
fundamental para que el objeto de la clase Button pueda llamar al mtodo sumar
que acabamos de crear):

Finalmente implementamos la lgica para realizar la suma, quedando la clase


completa de la siguiente forma:

Si ejecutamos nuestro programa podemos ver ahora que luego de cargar dos
valores al presionar el botn aparece en el tercer TextView el resultado de la suma
de los dos EditText:

RadioGroup y RadioButton
Para implementar una seleccin exclusiva en android, se debe implementar un
grupo de botones del tipo radio, y luego realizar las estructuras condicionales para
validar los datos seleccionados.

Ejemplo
Pedir dos nmeros por teclado y con un RadioGroup seleccionar si quiere realizar
una suma o una resta
Solucin:
Inicialmente se debe agregar un elemento del tipo ButtonGroup (este control se
encuentra en la paleta de componentes en la pestaa Form Widgets)

Cuando arrastramos el control RadioGroup al formulario se generan


automticamente 3 objetos de la clase RadioButton contenidos dentro del
RadioGroup, podemos fcilmente identificar que los controles RadioButton
pertenecen a dicho RadioGroup viendo la ventana de "Outline" del Eclipse (donde
nos muestra todos los controles insertados hasta el momento):

La implementacin de la actividad quedara de la siguiente forma:

Checkbox en Android
El checkbox permite la seleccin de uno o varios Items para ejecutar una accin del tipo
actividad.
Ejemplo:

Control Spinner
El control Spinner en una aplicacin Android muestra una lista de String y nos permite
seleccionar uno de ellos. Cuando se lo selecciona se abre y muestra todos sus elementos
para permitir seleccionar el que se necesite

Ejemplo
Solicitar dos numero y por medio de un elemento de control tipo Spinner seleccionar si
queremos sumar, restar, multiplicar o dividir dichos valores. Finalmente mediante un
control de tipo Button efectuamos la operacin respectiva. Mostramos el resultado en un
TextView.

ListView
El control ListView a diferencia del Spinner que se cierra luego de seleccionar un
elemento permanecen visibles varios elementos (se lo utiliza cuando hay que
mostrar muchos elementos)
Si la lista no entra en el espacio que hemos fijado para el ListView nos permite
hacer scroll de los mismos.El control ListView se encuentra en la pestaa
"Compositive".
Ejemplo:
Disponer un ListView con los nombres de paises de sudamrica. Cuando se
seleccione un pas mostrar en un TextView la cantidad de habitantes del pas
seleccionado.

AlertDialog
Los AlertDialog son ventanas que se muestran delante de las actividades, y pueden
recibir acciones del usuario. El dilogo de tipo alerta se crea a partir de una instancia
de la clase AlertDialog y puede contener:

un ttulo (icono + texto),

un mensaje de texto,

de 1 a 3 botones,

una lista de Radiobuttons o Checkboxes,

En el siguiente ejemplo se puede apreciar el uso de alertas con botones y textos


simples (Toast. makeText).
Inicialmente importamos la librera AlertDialog y definimos una instancia para crear un
objeto del tipo AlertDialog denominado dialogo 1.

Luego implementamos el contenido del mensaje a desplegar en la alerta, y las


acciones de los botonos aceptar y cancelar al ser presionados.

Al implementar las acciones de los botones aceptar y cancelar, se invocar en el metodo


aceptar un elemento del tipo Toast.makeText que se encarga de imprimir una alerta de texto
basica, al llamar al metodo cancelar se cierra la ventana por medio del metodo finish().

S-ar putea să vă placă și