viernes, 1 de abril de 2011

--- Plataforma Android: su arquitectura ---

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.

CAPA DE APLICACIONES Y WIDGETS: Miremos esta capa superior como la punta del iceberg Android, ya que los usuarios finales sólo verán los programas de esta capa, sin saber de todas las acciones que pasan por debajo de la línea de flotación. En esta capa nos encontramos con las aplicaciones creadas con la plataforma Android, como un cliente de email, el calendario, los programas para envío de SMS, mapas, el navegador, los contactos, y algunos otros servicios mínimos. Estas aplicaciones, todas escritas en el lenguaje de programación Java, se encuentran cargadas ya en el dispositivo cuando lo compramos. Usando el Android Market, el usuario será capaz de descargar nuevos programas para ejecutar en su teléfono inteligente.

CAPA MARCO DE TRABAJO (FRAMEWORK) DE APLICACIONES: Debajo de la capa de Aplicaciones y Widgets, y encima de la capa de bibliotecas nativas y tiempo de ejecución, encontramos la capa del Framework de aplicaciones. Esta capa nos brinda los bloques de construcción de alto nivel que vamos a utilizar para crear las aplicaciones. El Framework viene preinstalado con Android, pero también se puede ampliar con sus propios componentes según sea necesario. Todos los desarrolladores de aplicaciones Android, tienen acceso total al código fuente, así de esta forma, no se generan cientos de componentes de aplicaciones distintas, que respondan a la misma acción, dando la posibilidad de que los programas sean modificados o reemplazados por cualquier usuario sin tener que empezar a programar sus aplicaciones desde el principio.

Las partes más importantes de esta capa son las siguientes:

Activity Manager: es quien controla el ciclo de vida de las aplicaciones y mantiene un "historial" para la navegación del usuario.

Content providers: Son los proveedores de contenido, que encapsulan los datos que necesita ser compartidos entre las aplicaciones, como por ejemplo, las listas de los contactos.

Resource Manager: es el gerente de Recursos, recordando que los recursos son cualquier cosa que acompañe a una aplicación que no sea código fuente.

Manager de Notificaciones: Nos permite administrar como Eventos los mensajes que llegan y alertas como por ejemplo, para mostrárselo al usuario de forma agradable.

CAPA DE LIBRERIAS:
Debajo del Framework de aplicaciones está la capa de bibliotecas nativas de Android, que incluye un set de librerías C/C++, que son expuestas a todos los desarrolladores a través del Framework de las aplicaciones. Estas bibliotecas compartidas están escritas en C/ C++, compiladas según la arquitectura de hardware particular utilizado por el teléfono, y preinstalado por el proveedor de teléfono.

Algunas de las librerías nativas más importantes son las siguientes:

Surface Manager: es el gestor de ventanas de Android similar a Vista o Compiz, pero es mucho más simple. En lugar de dibujar, informa directamente al búfer de pantalla, los comandos de dibujo.

Gráficos 2D y 3D, códecs multimedia: Android puede reproducir vídeo, grabar y reproducir

audio en una variedad de formatos, incluyendo AAC, AVC, MP3, y MPEG-4.

Base de datos SQL y WebKit como motor de navegación y renderizado de HTML.

CAPA DE RUNTIME DE ANDROID: S
obre el Kernel de Linux, encontramos el runtime de Android, que incluye la maquina virtual Dalvik y el núcleo de las bibliotecas Java. Es la capa de tiempo de ejecución Android, incorpora un set de librerías que aportan la mayor parte de las funcionalidades disponibles en las librerías base del lenguaje de programación Java. La Máquina Virtual está basada en registros, y corre clases compiladas por el compilador de Java que anteriormente han sido transformadas al formato .dex (Dalvik Executable) por la herramienta ''dx''.

Aquí nos tenemos que detener y aclarar que el núcleo de las bibliotecas Java que viene con Android son diferentes de las librerías Java Standard Edition (Java SE) y de las bibliotecas Java Mobile Edition (Java ME). Existe una cantidad sustancial de coincidencias, sin embargo, existen diferencias y podríamos realizar una comparación de Android y bibliotecas estándar de Java, pero escapan al objetivo de este libro.

CAPA DEL KERNEL DE LINUX: El Kernel de Linux es utilizado en Android, es decir en la base de la arquitectura está el kernel de Linux, proporcionando una capa de abstracción de hardware para Android y el resto del software.

Internamente, Android utiliza Linux para los servicios base del sistema como seguridad, gestión de memoria, gestión de procesos, red y controladores. El usuario final nunca se entera de que está Linux en la base, gracias a una buena arquitectura en capas.

No hay comentarios:

Publicar un comentario