lunes, 30 de abril de 2012

Arquitectura Android

Android es una plataforma que utilizan distintos dispositivos móviles como tableteas ,celulares etc , este contiene una pila de software donde se incluye el sistema operativo, middleware y aplicaciones básicas para el usuario. Su diseño cuenta  con distintas características como :

- Permite la representación de gráficos en 2D y 3D
- Servicio de localización GSM
- Posibilita el uso de base de datos
- Soporta un elevado numero de formatos multmedia
- Cuenta con su propia maquina virtual Dalvik , esta interpreta y ejecuta código java
- Los componentes básicos de las aplicaciones se pueden sustituir facilmente por otros
- Busca que las aplicaciones sean reutilizables  y portables en diferentes dispositivos
- Controla los diferentes hardware como Bluetooth , wi-fi , cámara , gps, infrarrojos  etc
- Ofrece un plug-in para uno de los entornos de desarrollo mas populares, Eclipse  y un emulador integrado

La arquitectura de Android se basa en capas y estas capas utiliza servicios ofrecidos por las anteriores y ademas ofrece a su vez los suyos propios a las capas de niveles superiores , en esta imagen se puede apreciar.


La capa inmediata es la que corresponde al nucleo de Android. Este utiliza el nucleo de Linux 2.6 como una capa de abstraccion para el hardware disponible en los dispositivos moviles . Esta capa lo que hace es contener los drivers necesarios para cualquier componente hardwaere pueda ser utilizado mediante las llamadas correspondientes .

Esto quiere decir que cuando un fabricante incluya algún elemento nuevo de hardware lo primero que debe realizar para que pueda ser utilizado desde Andoid es crear librerías de control o drivers necesarios dentro de este kernel de Linux integrado en el propio Android.

Muchos se preguntan porque la elección de Linux 2.6 esto por su naturaleza de código abierto y libre y se ajusta al tipo de distribución que se buscaba para Android  y la segunda es que este kernel de Linux incluye de por si numerosos drivers , y para contemplar la gestión de memorias , gestión de procesos , módulos de seguridad etc. 

La siguiente capa es la de las librerías utilizadas por Android. Estas se escribieron en C/c++ y proporcionan a Android la mayor parte de sus capacidades mas características.  Esto constituye junto al núcleo el corazón de Android.

Existen muchas librerías pero algunas de las mas importantes son la librería lib que incluye las cabeceras y funciones según el estándar del lenguaje C. , la librería surface manager que se encarga de componer los diferentes elemento de navegación de pantalla, la librería Open GL/Sl y SGL que representan librerías gráficas  y por tanto sustentan la capacidad gráfica de Android .  OpenGL/SL maneja gráficos en 3d y SGL proporciona graficos en 2D , la librería Media libreries que proporciona codecs necesarios para el contenido multimedia soportado en Android.

Ahora además en el mismo nivel de las librerías de Android se sitúa el entorno de ejecución y este lo constituyen las Core Libraries que son librerías con multitud de clases Java y la maquina virtual Davilk

Los 2 últimos niveles de la arquitectura están escritos enteramente en Java .  Todas las aplicaciones creadas por cualquier persona o compañía utilizan el mismo conjunto de API y el mismo framework. Entre las a API mas importantes se encuentran las de Activity Maneger importante conjunto API que gestiona el  ciclo de vida de las aplicaciones , la Window Manager que gestiona las ventanas de las aplicaciones , Telephone Manager incluye todas las API vinculadas a las funcionalidades propias del teléfono como llamadas , mensajes etc. existen muchas mas API pero al mencionarlas todas se haría muy extenso.

Ahora el ultimo nivel del diseño arquitectónico de Andoird son las aplicaciones en este nivel incluye tanto las incluidas por defecto como las que se crean  por nosotros mismos o compañias y todas estas aplicaciones utilizan los servicios , las API y librerías de los niveles anteriores.

1 comentario: