En la tesis de Aranaz, publicada el año 2011 con el titulo “Desarrollo de aplicaciones para dispositivos móviles sobre la plataforma Android de Google”, se hace referencia a una visión global por capas acerca de la arquitectura de Android. Cada una de estas capas utiliza servicios ofrecidos por las anteriores, y ofrece a la vez los suyos propios a las capas de niveles superiores. La capa más inmediata es la que corresponde al núcleo de Android. El sistema operativo 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 incluya un nuevo elemento de hardware, lo primero que se debe realizar para que pueda ser utilizado desde Android es crear las bibliotecas de control necesarias dentro de este kernel de Linux embebido en el propio Android. La elección de Linux 2.6 se debe principalmente a dos razones: La primera, su naturaleza de código abierto y libre se ajusta al tipo de distribución que se buscaba para Android; la segunda es que el kernel de Linux incluye de por sí numerosos drivers, además de contemplar la gestión de memoria, gestión de procesos, módulos de seguridad, comunicación en red y otras muchas responsabilidades propias de un sistemas operativo.
La siguiente capa se corresponde con las bibliotecas utilizadas por Android. Éstas han sido escritas utilizando el lenguaje C o el lenguaje C++ y proporcionan a Android la mayor parte de sus capacidades más características. Junto al núcleo basado en Linux, estas bibliotecas constituyen el corazón de Android. Entre las bibliotecas más importantes de este nivel, se pueden mencionar las siguientes: (1) La biblioteca libc incluye todas las cabeceras y funciones según el estándar del lenguaje C. Todas las demás bibliotecas se definen en este lenguaje. (2) La biblioteca Surface Manager es la encargada de componer los diferentes elementos de navegación de pantalla. Gestiona también las ventanas pertenecientes a las distintas aplicaciones activas en cada momento. (3) OpenGL/SL y SGL representan las bibliotecas gráficas y, por tanto, sustentan la capacidad gráfica de Android. OpenGL/SL maneja gráficos en tres dimensiones y permite utilizar, en caso de que esté disponible en el propio dispositivo móvil, el hardware encargado de proporcionar gráficos en tres dimensiones. (4) La biblioteca Media Libraries proporciona todos los códecs necesarios para el contenido multimedia soportado en Android, entre las cuales se cuenta: Vídeo, audio, imágenes estáticas y animadas, y otros. (5) FreeType, permite trabajar de forma rápida y sencilla con distintos tipos de fuentes. (6) La biblioteca SSL posibilita la utilización de dicho protocolo para establecer comunicaciones seguras. (7) A través de la biblioteca SQLite, Android ofrece la creación y gestión de bases de datos relacionales, pudiendo transformar estructuras de datos en objetos fáciles de manejar por las aplicaciones. (8) La biblioteca WebKit proporciona un motor para las aplicaciones de tipo navegador, y forma el núcleo del actual navegador incluido por defecto en la plataforma Android. Al mismo nivel que las bibliotecas de Android se sitúa el entorno de ejecución. Éste lo constituyen las bibliotecas de núcleo, que son librerías con multitud de clases de Java, y la máquina virtual Dalvik.
No hay comentarios:
Publicar un comentario