SL4A - Arquitectura de Android

La pila de software de Android se compone de diferentes capas, cada capa manifiesta un comportamiento bien definido y proporciona servicios específicos a la capa superior. La siguiente figura presenta una amplia arquitectura de Android con sus componentes principales.

Kernel de Linux

Android se basa en el código del kernel de Linux modificado para ejecutarse en sistemas integrados en comparación con el sistema Linux tradicional. Los controladores de hardware para muchos dispositivos comunes están integrados en el kernel, lo que garantiza la portabilidad del dispositivo. Se basa en un modelo de permiso seguro basado en el usuario, que evita que una aplicación lea la información de otra aplicación o interfiera con su ejecución (por ejemplo, CPU, memoria, dispositivos, etc.).

El acceso basado en ID de grupo a las funciones de red y Bluetooth, registrador, alarma, administración de energía, eliminación de memoria baja, mecanismos Binder IPC son algunas de las mejoras notables del Kernel.

Bibliotecas y tiempo de ejecución

Esto forma la segunda capa de la arquitectura. Incluye un conjunto de bibliotecas C, C ++ optimizadas para hardware, también conocida como capa nativa. Los ejemplos incluyen bibliotecas multimedia, SQLite, SSL, Bionic, WebKit, etc.

Android Runtime consta de dos componentes diferentes: la máquina virtual Dalvik y las bibliotecas centrales. Dalvik VM proporciona un entorno de ejecución para las aplicaciones en la plataforma Android. El conjunto de bibliotecas principales proporciona la mayor parte de la funcionalidad disponible en las API de Java.

Marco de aplicación

Esta capa pone a disposición las Bibliotecas como servicios para las aplicaciones. Algunos de los componentes más importantes dentro de esta capa incluyen el Administrador de ubicaciones, el Administrador de recursos, el Administrador de actividades y el Administrador de notificaciones.

Aplicaciones

De forma predeterminada, Android viene con un amplio conjunto de aplicaciones, incluido el navegador, el programa de SMS, el calendario, el administrador de contactos, los mapas, etc. Google Play ofrece alternativas a estas aplicaciones, si el usuario así lo desea.

Bloques de construcción

Una aplicación puede interactuar con el sistema con cuatro bloques de funciones. Son los siguientes:

  • Activities- Las actividades representan una única pantalla que el usuario ve o con la que interactúa visualmente. Por ejemplo, una aplicación de correo electrónico puede tener una actividad que muestra una lista de correos electrónicos nuevos, otra actividad para redactar un correo electrónico y otra actividad para leer correos electrónicos.

  • Services- Estos servicios realizan la mayor parte del procesamiento de su aplicación. Es la lógica detrás de la interfaz de usuario. Por ejemplo, un servicio puede reproducir música en segundo plano mientras el usuario está en una aplicación diferente, o puede obtener datos a través de la red sin bloquear la interacción del usuario con una actividad.

  • Broadcast Receivers- Un componente que se puede registrar para escuchar eventos del sistema o de la aplicación y emitir notificaciones sobre los mismos. Una instancia de difusión que se origina en el sistema es un 'low battery notification'mientras que una transmisión a nivel de aplicación podría ser un'download successful'notificación.

  • Content Providers- Un proveedor de contenido administra y le ayuda a compartir datos entre múltiples aplicaciones. Por ejemplo, se puede utilizar un proveedor de contenido para compartir los datos de los contactos.

Estos componentes interactúan entre sí a través de mensajes llamados Intents.