La arquitectura interna de la plataforma Android,
está básicamente formada por 5 capas: la de Aplicaciones y Widgets, la del Framework de Aplicaciones, las librerías, el
Runtime de Android y el Kernel de Linux.
Estudiemos ahora esta arquitectura en capas, más
detalladamente, para saber con qué contamos, comenzando con la superior, y
descendiendo hasta el kernel.
v Aplicaciones: Este nivel contiene, tanto las incluidas por
defecto de Android como aquellas que el usuario vaya añadiendo
posteriormente, ya sean de terceras empresas o de su propio desarrollo. Todas
estas aplicaciones utilizan los servicios, las API y librerías de los niveles
anteriores.
v Framework de Aplicaciones: Representa fundamentalmente el conjunto de
herramientas de desarrollo de cualquier aplicación. Toda aplicación que se
desarrolle para Android, ya sean las propias del dispositivo, las desarrolladas
por Google o terceras compañías, o incluso las que el propio usuario cree,
utilizan el mismo conjunto de API y el mismo "framework",
representado por este nivel.
v Librerías: La siguiente capa se corresponde con las librerías
utilizadas por Android. Éstas han sido escritas utilizando C/C++ y proporcionan
a Android la mayor parte de sus capacidades más características. Junto al
núcleo basado en Linux, estas librerías constituyen el corazón de Android.
v Tiempo de ejecución de Android: Al mismo nivel que las librerías de Android se sitúa
el entorno de ejecución. Éste lo constituyen las Core Libraries, que son
librerías con multitud de clases Java y la máquina virtual Dalvik.
v Núcleo Linux: Android utiliza el núcleo de Linux
2.6 como una capa de abstracción para el hardware disponible en los
dispositivos móviles. 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 librerías de control o drivers necesarios dentro de este kernel de
Linux embebido en el propio Android.
“MAQUINA
VIRTUAL DALVIK”
Dalvik es
la maquina virtual que utiliza la plataforma para dispositivos
móviles Andoid. Dalvik ha sido diseñada por Dan Bornstein con
contribuciones de otros ingenieros de Google.
La Máquina
Virtual Dalvik (DVM) permite ejecutar aplicaciones programadas
en Java. La DVM no afirma ser una máquina virtual de java (JVM) debido a
que le ocasionaría problemas de licenciamiento, sin embargo cumple ese
propósito. La mayoría de los programas escritos en Java 5 pueden correr sobre
la DVM.
“COMPONENTES
DE UNA APLICACIÓN ANDROID”
Vista (View)
Las vistas son
los elementos que componen la interfaz de usuario de una aplicación: por
ejemplo, un botón o una entrada de texto. Todas las vistas van a ser objetos
descendientes de la clase View, y por tanto, pueden ser definidas utilizando
código Java. Sin embargo, lo habitual será definir las vistas utilizando un
fichero XML y dejar que el sistema cree los objetos por nosotros a partir de
este fichero. Esta forma de trabajar es muy similar a la definición de una
página web utilizando código HTML.
Layout
Un layout es
un conjunto de vistas agrupadas de una determinada forma. Vamos a disponer de
diferentes tipos de layouts para organizar las vistas de forma
lineal, en cuadrícula o indicando la posición absoluta de cada vista. Los layouts también
son objetos descendientes de la clase View. Igual que las vistas, los layouts pueden
ser definidos en código, aunque la forma habitual de definirlos es utilizando
código XML.
Actividad (Activity)
Una aplicación en
Android va a estar formada por un conjunto de elementos básicos de
visualización, coloquialmente conocidos como pantallas de la aplicación. En
Android cada uno de estos elementos, o pantallas, se conoce como actividad.
Su función principal es la creación del interfaz de usuario. Una aplicación
suelen necesitar varias actividades para crear el interfaz de
usuario. Las diferentes actividades creadas serán
independientes entre sí, aunque todas trabajarán para un objetivo común. Toda
actividad ha de pertenecer a una clase descendiente de Activity.
Servicio (Service)
Un servicio es
un proceso que se ejecuta “detrás”, sin la necesidad de una interacción con el
usuario. Es algo parecido a un demonio en Unix o a un servicio en
Windows. En Android disponemos de dos tipos de servicios: servicios locales,
que son ejecutados en el mismo proceso y servicios remotos, que son ejecutados
en procesos separados. Los servicios son estudiados en el CAPÍTULO 8.
Intención (Intent)
Una intención representa
la voluntad de realizar alguna acción; como realizar una llamada de teléfono,
visualizar una página web. Se utiliza cada vez que queramos:
- lanzar una actividad
- lanzar un servicio
- enviar un anuncio de tipo
broadcast
- Comunicarnos con un servicio
Los componentes lanzados
pueden ser internos o externos a nuestra aplicación. También utilizaremos lasintenciones para
el intercambio de información entre estos componentes.
Fragment
La llegada de las
tabletas trajo el problema de que las aplicaciones de Android ahora deben
soportar pantallas más grandes. Si diseñamos una aplicación pensada para un
dispositivo móvil y luego la ejecutamos en una tableta, el resultado no suele
resultar satisfactorio.
Para ayudar al
diseñador a resolver este problema, en la versión 3.0 de Android aparecen
los fragments. Unfragment está formado por la unión de
varias vistas para crear un bloque funcional de la interfaz de usuario. Una vez
creados los fragments, podemos combinar uno o varios fragments dentro
de una actividad, según el tamaño de pantalla disponible.
El uso de fragments puede
ser algo complejo, por lo que recomendamos dominar primero conceptos comoactividad, vista y layout antes
de abordar su aprendizaje. No obstante, es un concepto importante en Android y
todo programador en esta plataforma ha de saber utilizarlos. Véase el anexo A
para aprender más sobrefragments.
Receptor de
anuncios (Broadcast receiver)
Un receptor
de anuncios recibe y reacciona ante anuncios de tipo broadcast. Los
anuncios broadcast pueden ser originados por el sistema o por
las aplicaciones. Algunos tipos de anuncios originados por el sistema son: Batería
baja, llamada entrante,... Las aplicaciones también pueden crear y lanzar
nuevos tipos deanuncios broadcast. Los receptores de anuncios no
disponen de interfaz de usuario, aunque pueden iniciar una actividad si lo
estiman oportuno.
Proveedores de
Contenido (Content Provider)
En muchas ocasiones
las aplicaciones instaladas en un terminal Android necesitan compartir
información. Android define un mecanismo estándar para que las aplicaciones
puedan compartir datos sin necesidad de comprometer la seguridad del sistema de
ficheros. Con este mecanismo podremos acceder a datos de otras aplicaciones,
como la lista de contactos, o proporcionar datos a otras aplicaciones.
Los Content Provider son estudiados en el 9.
No hay comentarios:
Publicar un comentario