Android. La arquitectura del sistema se basa en 4 capas (todas ellas desarrolladas con software libre).
- Linux Kernel
- Android Runtime
- Application Framework
- Applications
Arquitectura de Android |
Las capas están producidas como un stack, desarrollando en primer lugar la capa inferior y después su superior.
1) Linux Kernel
- El núcleo del sistema es una capa del Kernel de Linux versión 2.6.
- Esta capa resuelve servicios esenciales como el manejo de memoria, multiproceso, pila de protocolos, drivers...
- Es la única capa que realmente depende del hardware del dispositivo, por lo que es responsabilidad de fabricante su óptimo funcionamiento.
2) Runtime de Android
- Se basa en un concepto de máquina virtual Java.
- Fue necesario crear un nuevo tipo de máquina virtual, llamada Dalvik, la cual su principal función es la optimización de la capacidades de proceso del sistema.
- Cada Aplicación que se ejecuta en el sistema, corre en su propio proceso, por lo que se instancia una máquina virtual Dalvik para cada aplicación en ejecución.
- Contiene Core Library con las librerías más importantes de Java.
- En lugar de manejar ficheros .class habituales de Java, se utiliza ficheros .dex de la máquina virtual Dalvik, los cuales se suponen que están desarrollados para ahorrar memoria.
- Esta basado en registros.
- Lo interesante de esta máquina virtual es que delega al Kernel el manejo de memoria a bajo nivel.
Dentro de esta capa también encontramos las Librerías Nativas, que es un conjunto de librerías la mayoría de ellas desarrolladas en C/C++, la mayoría de las librerías que podemos encontrar son de código abierto.
Entre ellas podemos destacar:
- System C Library, que es una derivación estándar de la librería BSD de C (libc), adaptada para dispositivos embebidos basados en Linux.
- PacketVideo´s OpenCORE, que es la librería que contiene los codecs multimedia, tanto de grabación como de reproducción y personalmente opino que ya es hora de añadir aun más codecs al sistema ya que hay formatos de video y audio que aun no soportan, por lo que empobrece al visor de video nativo de Android y los usuarios del bicho verde tienen que recurrir a aplicaciones de terceros para poder reproducir sus videos o audio.
-Webkit, es el motor de renderizado del navegador web, Google Chorme, y añadir que tambien es el de Safari de Apple.
- SSL, Secure Socket Layer, para conexiones algo más seguras con servicios de encriptación.
- FreeType, para fuentes y bitmaps renderizados vectorialmente.
- Y por último que comentar y para mi parecer lo más importante de hoy en día de los sistemas móviles y sus respectivas aplicaciones, es el uso de SQLite, un motor de base de datos en la que almacena toda la información de las aplicaciones.
3) Entorno de Aplicacion
- Proporciona una plataforma de desarrollo libre para funciones mas novedosas como sensores, localización por GPS, acelerómetro...
- Views, parte visual de los componentes.
- Content Providers, mecanismo sencillo para acceder a datos de otras aplicaciones (como los contactos, llamadas perdidas...).
- Notification Manager, permite a las aplicaciones mostrar alarmas customizadas en la barra de estado.
4) Aplicaciones
- Lo que realmente interactua el usuario con todas las funcionalidades de su dispositivo es mediante las aplicaciones tales como el teléfono, el navegador o algunos juegos absurdos.
- Hay dos maneras de desarrollar aplicaciones para Android.
- Para la máquina virtual Dalvik, con código Java mediante el SDK (Software Development Kit) de Android.
- O bien, utilizar el código nativo de nuestro propio terminal, las aplicaciones suelen ser escritas en C/C++ mediante NDK (Native Development Kit) de Android.
Y con esto le he pegado un pequeñito repaso a la arquitectura de Android, que no esta de más en una tecnología tan puntera como es este gran sistema operativo.
Fuente: Universitat Politècnica de València - UPV
Saludos | *
Diego Oliva
No hay comentarios:
Publicar un comentario