Android Architectura: capas de aplicación, marco, componente

El lanzamiento inicial del sistema operativo Android fue en el año 2008. Incluso en sus inicios, el equipo detrás del sistema operativo lo construyó sobre los hombros de gigantes. Más allá de la interfaz de usuario que presenta el sistema operativo Android a nivel superficial, se compone de múltiples capas. Estas capas incluyen código personalizado y tecnologías de código abierto que han estado en desarrollo continuo durante décadas.

Android se ha desarrollado gracias a enormes esfuerzos de colaboración e inversiones de muchas empresas. La principal empresa detrás del desarrollo de Android es Google. Otras empresas incluyen fabricantes de dispositivos como Samsung, LG; fabricantes de procesadores como Intel y ARM, por nombrar algunos.

Cuando hablamos de Android architectura, nos referimos a cómo se ha diseñado, segmentado en capas y construido el sistema Android para que funcione como un sistema. Construyendo tal complex El sistema requiere una estructuración cuidadosa para garantizar que todos los componentes funcionen juntos de manera cohesiva. Es archiLa tecnología garantiza que los numerosos componentes funcionen como un todo sin fallar.

En este tutorial, aprenderá:

capas

El following son las capas que componen el Android architectura como se indica en el diagrama:

  1. Aplicación
  2. Marco de aplicación
  3. Bibliotecas principales y de tiempo de ejecución de Android
  4. Linux Kernel

El desarrollo de un sistema operativo para dispositivos móviles conlleva una serie de desafíos. Usando esta capa archiLa tecnología garantiza que los diferentes problemas se desglosen y resuelvan en diferentes niveles.

una capa architecture ayuda a separar las preocupaciones y garantizar que los desarrolladores de software de Android no tengan que lidiar con problemas de bajo nivel en todo momento. En cambio, pueden centrarse en ofrecer valor empresarial en relación con la capa en la que están trabajando.

Los desarrolladores están trabajando para que las aplicaciones no tengan que preocuparse por la implementación del marco de la aplicación. Ese trabajo queda para los desarrolladores del sistema que trabajan en el marco de la aplicación.

El marco de aplicaciónk developLos usuarios trabajan en la experiencia del desarrollador y no tienen que preocuparse por los controladores de bajo nivel. Los ingenieros de sistemas de bajo nivel pueden centrarse completamente en componentes de bajo nivel, como controladores de audio o Bluetooth y similares.

La estructura en capas de Android permite aplicar actualizaciones con correcciones de errores o mejoras a cada capa por sí sola. Esto garantiza que los cambios entre capas no interfieran entre sí. Esto hace posible que las personas que trabajan en un nivel diferente del sistema operativo trabajen obstruyéndose entre sí a medida que se realizan nuevas actualizaciones y lanzamientos.

Aplicación para Android

Aplicación para Android
Aplicación para Android

Esta es la capa con la que interactúan los usuarios finales. Es en esta capa donde los desarrolladores de aplicaciones publican sus aplicaciones para ejecutarlas.

Android, de forma predeterminada, viene con un conjunto de aplicaciones que hacen que los dispositivos Android sean utilizables desde el principio.

  1. Inicio: La página de inicio en Android consta de íconos de inicio para aplicaciones de uso común a las que el usuario final puede querer acceder rápidamente. Puede iniciar las aplicaciones haciendo clic en los lanzadores de estas aplicaciones. En la parte superior de la pantalla, tiene widgets que muestran la red, el nivel de la batería, la fecha y la hora.
  2. Contactos: Android, de forma predeterminada, proporciona un medio para almacenar y recuperar contactos. La información de contacto se comparte entre otras aplicaciones para mejorar la funcionalidad.
  3. mensajes: Android ofrece la capacidad de enviar y recibir mensajes SMS.
  4. Correo electrónico: Android viene con soporte nativo para email servicios. Configurar un dispositivo Android requiere una Gmail cuenta. Configurando Gmail activa otros email-Componentes dependientes en dispositivos Android. Algunos email Las características dependientes incluyen mecanismos de seguridad y recuperación. Otra email La característica dependiente es el acceso a Play Store, un mercado para aplicaciones de Android.
  5. Navegador: Android viene con un navegador predeterminado.
  6. Cajón de notificaciones: Al deslizar el dedo hacia abajo en la pantalla se expone el cajón de notificaciones. Proporciona eventos de aplicación que el usuario debe conocer. Encima de la notificación hay un conjunto de accesos directos a algunas configuraciones de dispositivos de uso común que los usuarios pueden alternar. Estas configuraciones incluyen opciones de encendido y apagado para varios componentes de hardware, como Bluetooth y Wifi. Pulsar prolongadamente estos eventos nos permite navegar a su página de configuración.

Esta capa también se conoce como nivel de usuario en contraste con las capas inferiores que están en su mayoría ajustadas para el desarrollo de aplicaciones. Los desarrolladores de aplicaciones crean y personalizan las experiencias de sus aplicaciones en esta capa. Los desarrolladores de aplicaciones no personalizan las capas debajo de la capa de aplicación. Se consideran parte de la capa del sistema. Estas capas son personalizadas por los fabricantes de dispositivos, los equipos de Android de Google o terceros que desean utilizar el código fuente de Android para su producto o investigación.

Marco de aplicación

El sistema operativo Android expone las bibliotecas y funciones subyacentes del dispositivo Android que utilizan una API de Java. Esto es lo que se conoce como el marco de Android. El marco expone un medio seguro y uniforme para utilizar los recursos del dispositivo Android.

Marco de aplicación
Marco de aplicación

1) Gerente de Actividad

Las aplicaciones utilizan el componente de actividad de Android para presentar un punto de entrada a la aplicación. Las actividades de Android son los componentes que albergan la interfaz de usuario con la que interactúan los usuarios de la aplicación. A medida que los usuarios finales interactúan con el dispositivo Android, inician, detienen y avanzan y retroceden entre muchas aplicaciones. Cada evento de navegación desencadena la activación y desactivación de muchas actividades en las respectivas aplicaciones.

Android ActivityManager es responsable del comportamiento predecible y consistente durante las transiciones de aplicaciones. ActivityManager proporciona un espacio para que los creadores de aplicaciones hagan que sus aplicaciones reaccionen cuando el sistema operativo Android realiza acciones globales. Las aplicaciones pueden escuchar eventos como la rotación del dispositivo, la destrucción de una aplicación debido a la escasez de memoria, el desenfoque de una aplicación, etc.

Algunos ejemplos de la forma en que las aplicaciones pueden reaccionar a estas transiciones incluyen pausar la actividad en un juego o detener la reproducción de música durante una llamada telefónica.

2) Administrador de ventanas

Android puede determinar la información de la pantalla para determinar los requisitos necesarios para crear windows para aplicaciones Windows son las ranuras donde podemos ver la interfaz de usuario de nuestra aplicación. Android utiliza el administrador de ventanas para proporcionar esta información a las aplicaciones y al sistema mientras se ejecutan para que puedan adaptarse al modo en el que se ejecuta el dispositivo.

El Administrador de ventanas ayuda a brindar una experiencia de aplicación personalizada. Las aplicaciones pueden llenar toda la pantalla para una experiencia inmersiva o compartir la pantalla con otras aplicaciones. Android permite esto mediante allowing multi-windows para cada aplicación.

3) Gerente de ubicación

La mayoría de los dispositivos Android están equipados con dispositivos GPS que pueden obtener la ubicación del usuario utilizando información satelital que puede llegar hasta el final con una precisión de metros. Los programadores pueden solicitar permiso de ubicación a los usuarios, entregar ubicación y experiencias conscientes.

Android también puede utilizar tecnologías inalámbricas para enriquecer aún más la ubicación.tails y aumentar la cobertura cuando los dispositivos sean espacios cerrados. Android proporciona estas funciones bajo el paraguas de Location-Manager.

4) Administrador de Telefonía

La mayoría de los dispositivos Android cumplen una función principal en la telefonía. Android utiliza TelephoneManager para combinar componentes de hardware y software para ofrecer funciones de telefonía. Los componentes de hardware incluyen partes externas como la tarjeta SIM y partes del dispositivo como el micrófono, la cámara y los parlantes. Los componentes del software incluyen componentes nativos como teclado de marcación, directorio telefónico y perfiles de tono de llamada. Con TelephoneManager, un desarrollador puede ampliar o ajustar la funcionalidad de llamadas predeterminada.

5) Administrador de recursos

Las aplicaciones de Android suelen venir con algo más que código. También tienen otros recursos como íconos, archivos de audio y video, animaciones, archivos de texto y similares. Android ayuda a garantizar que haya un acceso eficiente y receptivo a estos recursos. También garantiza que se entreguen los recursos adecuados a los usuarios finales. Por ejemplo, se utilizan archivos de texto en el idioma adecuado al completar campos en las aplicaciones.

6) Ver sistema

Android también proporciona un medio para crear fácilmente componentes visuales comunes necesarios para la interacción de la aplicación. Estos componentes incluyen widgets como botones, soportes de imágenes como ImageView, componentes para mostrar una lista de elementos como ListView y muchos más. Los componentes están prediseñados pero también se pueden personalizar para adaptarse a las necesidades y la marca de los desarrolladores de aplicaciones.

7) Administrador de notificaciones

El Administrador de notificaciones es responsable de informar a los usuarios de Android sobre los eventos de la aplicación. Para ello, proporciona a los usuarios señales visuales, de audio o de vibración, o una combinación de ellas, cuando ocurre un evento. Estos eventos tienen desencadenantes externos e internos. Algunos ejemplos de activadores internos son eventos de estado de batería baja que activan una notificación para mostrar batería baja. Otro ejemplo son los eventos especificados por el usuario, como una alarma. Algunos ejemplos de activadores externos incluyen nuevos mensajes o nuevas redes wifi detectadas.

Android proporciona un medio para que los programadores y usuarios finales ajusten el sistema de notificaciones. Esto puede ayudar a garantizar que puedan enviar y recibir eventos de notificación de la manera que mejor se adapte a ellos y a sus entornos actuales.

8) Administrador de paquetes

Android también brinda acceso a información sobre las aplicaciones instaladas. Android realiza un seguimiento de la información de la aplicación, como los eventos de instalación y desinstalación, los permisos que solicita la aplicación y la utilización de recursos, como el consumo de memoria.

Esta información puede permitir a los desarrolladores hacer que sus aplicaciones activen o desactiven la funcionalidad según las nuevas funciones presentadas por las aplicaciones complementarias.

9) Proveedor de contenido

Android tiene una forma estandarizada de compartir datos entre aplicaciones en el dispositivo utilizando el proveedor de contenido. Los desarrolladores pueden utilizar el proveedor de contenido para exponer datos a otras aplicaciones. Por ejemplo, pueden hacer que los datos de la aplicación se puedan buscar desde aplicaciones de búsqueda externas. El propio Android expone datos como datos de calendario, datos de contactos y similares utilizando el mismo sistema.

Tiempo de ejecución de Android y bibliotecas principales/nativas

Bibliotecas
Bibliotecas

1) Tiempo de ejecución de Android

Actualmente, Android utiliza Android Runtime (ART) para ejecutar el código de la aplicación. ART está precedido por Dalvik Runtime que compiló el código del desarrollador en archivos ejecutables Dalvik (archivos Dex). Estos entornos de ejecución están optimizados para la plataforma Android teniendo en cuenta las limitaciones de memoria y procesador de los dispositivos móviles.

El tiempo de ejecución traduce el código escrito por los programadores en código de máquina que realiza cálculos y utiliza componentes del marco de Android para ofrecer funcionalidad. Android aloja múltiples aplicaciones y componentes del sistema, cada uno de los cuales se ejecuta en sus procesos.

Bibliotecas principales

En este segmento, analizaremos algunas de las bibliotecas principales que están presentes en el sistema operativo Android.

2) Marco de medios

Android también admite de forma nativa códecs multimedia populares, lo que facilita que las aplicaciones creadas en la plataforma Android utilicen/reproduzcan componentes multimedia fuera del box.

3) SQLite

Android también tiene una Base de datos SQLite que permite que las aplicaciones tengan una funcionalidad de base de datos nativa muy rápida sin la necesidad de bibliotecas de terceros.

4) tipo libre

Android viene con un motor de fuentes rápido y flexible preinstalado. Esto hace posible que los desarrolladores de aplicaciones diseñen los componentes de su aplicación y brinden una experiencia rica que comunique la intención del desarrollador.

5) OpenGL

Android también viene con el sistema de gráficos OpenGL. Es una biblioteca C que ayuda a Android a utilizar componentes de hardware en la representación en tiempo real de gráficos 2D y 3D.

6)SSL

Android también viene con una capa de seguridad incorporada para permitir la comunicación segura entre aplicaciones de Android y otros dispositivos como servidores, otros dispositivos móviles y enrutadores 6.

7) SGL

Android viene con una biblioteca de gráficos implementada en código de bajo nivel que representa gráficos de manera eficiente para la plataforma Android. Funciona con los componentes de nivel superior de la canalización de gráficos de Android del marco de Android.

8) Libc

El núcleo de Android contiene bibliotecas escritas en C y C++, que son lenguajes de bajo nivel destinados a uso integrado que ayudan a maximizar el rendimiento. Libc proporciona un medio para exponer funcionalidades del sistema de bajo nivel, como subprocesos, sockets, IO y similares, a estas bibliotecas.

9) kit web

Este es un motor de navegador de código abierto que se utiliza como base para crear navegadores. El navegador predeterminado de Android antes de la versión 4.4, KitKat, lo utiliza para representar páginas web. Permite a los desarrolladores de aplicaciones representar componentes web en el sistema de visualización mediante WebView. Esto permite que las aplicaciones integren componentes web en su funcionalidad.

10) Administrador de superficie

El administrador de superficie es responsable de garantizar la representación fluida de las pantallas de las aplicaciones. Lo hace componiendo gráficos 2D y 3D para renderizar. Además, permite esto al hacer fuera de la pantalla. buffering.

Linux Kernel

El componente raíz del sistema Android es el kernel de Linux. Es el foundationUna pieza que permite todas las funciones de Android.

Linux Kernel

El kernel de Linux es un software probado en batalla que se ha utilizado en el desarrollo sistemas operativos para dispositivos de una amplia gama, desde supercomputadoras hasta pequeños dispositivos. Tiene capacidades de procesamiento limitadas, como pequeños dispositivos conectados en red para Internet de las cosas (IoT).

El kernel de Linux se puede modificar para cumplir con las especificaciones del dispositivo y permitir a los fabricantes fabricar dispositivos Android con diferentes capacidades para adaptarse a la experiencia del usuario.

En lo que respecta a Android, el Kernel es responsable de muchos foundationTodas las funcionalidades incluyen, entre otras, las siguientes:

  1. Controladores de dispositivo
  2. Gestión de la memoria
  3. Gestión de proceso

Ampliemos algunas de las funciones:

Controladores de dispositivo

El kernel de Linux alberga los controladores necesarios para que el sistema operativo pueda funcionar con diferentes componentes de hardware. Estos controladores proporcionan una interfaz estándar con la que pueden funcionar componentes de hardware de diferentes fabricantes.

Esto hace posible que los fabricantes de dispositivos obtengan diferentes componentes, como componentes Bluetooth, componentes Wifi y componentes de cámara. Siempre que los fabricantes cumplan con las especificaciones estándar de Android, la integración es perfecta.

1) Controlador USB

Linux también proporciona a Android un medio para interactuar con dispositivos USB. Los dispositivos modernos vienen con diferentes puertos USB, incluido USB 2.0 y nuevas versiones de USB, incluido USB-C. Estos controladores permiten utilizar el puerto USB para cargar, transferir datos en vivo, como registros desde dispositivos Android, e interactuar con Android. del sistema de archivos.

2) Controlador Bluetooth

El kernel de Linux brinda soporte para la interfaz con componentes de hardware Bluetooth. Proporciona una forma de leer y escribir datos recibidos desde frecuencias de radio bluetooth compatibles. También proporciona un conjunto de funciones para que Android configure Bluetooth.

3) Controlador Wifi

El kernel de Linux proporciona controladores para integrar los componentes de hardware de la red WiFi. Los componentes WiFi integrados en los dispositivos móviles permiten que los dispositivos Android se conecten a redes wifi. El controlador permite que los componentes wifi transmitan redes wifi y creen puntos de acceso.

4) Controlador de pantalla

Android permite interactuar con los componentes de la pantalla. Para la mayoría de los dispositivos, el componente de la interfaz es una pantalla táctil LCD. Permite soporte para configurar y dibujar.wing píxeles.

5) Controlador de audio

Los dispositivos Android suelen venir con componentes de hardware para entrada y salida de audio. Los controladores de audio en el kernel permiten que el sistema Android utilice el audio recibido de estos componentes y también produzca una salida de audio.

6) Administrador de energía

La mayoría de los dispositivos Android se utilizan desconectados de los tomacorrientes. Por lo tanto, dependen de baterías para alimentarse durante una gran parte de su uso. Linux Kernel viene con un sistema de administración de energía que se puede configurar para satisfacer las necesidades de los dispositivos que lo utilizan.

El sistema operativo Android utiliza el administrador de energía para que otros componentes del dispositivo tengan en cuenta la energía. Lo hace transmitiendo varios estados relacionados con el poder. Estos estados son En espera, Suspensión y Batería baja. En Android, el administrador de energía está ajustado al modo de suspensión predeterminado para garantizar la máxima duración de la batería.

Power Manager expone medios para que las aplicaciones reaccionen a diferentes modos de energía. Las aplicaciones también pueden cambiar su comportamiento para que coincida con el estado de energía actual del dispositivo.

Una aplicación también puede solicitar cambiar las políticas de energía predeterminadas. Las aplicaciones pueden lograr la funcionalidad deseada, como mantener activos los componentes de hardware. Un ejemplo es mantener la pantalla activa cuando se lee un libro para garantizar que no se interrumpa al usuario. Otro ejemplo es mantener los componentes de audio encendidos cuando se escucha música de fondo.

7) Memoria Flash

La mayoría de los dispositivos Android utilizan memoria flash como medio de almacenamiento. La memoria flash es rápida y ocupa menos espacio, lo que la hace perfecta para dispositivos pequeños. El kernel de Linux proporciona un medio para que los dispositivos Android lean y escriban en la memoria flash. Proporciona un medio para particionar la memoria de tal manera que el sistema operativo y otras aplicaciones puedan compartir el recurso de memoria de manera fácil y eficiente.

8) Carpeta

Android aloja muchas aplicaciones y componentes del sistema, cada uno de los cuales se ejecuta en sus procesos. En la mayoría de los casos, estos procesos deben aislarse entre sí para evitar interferencias y corrupción de datos. Sin embargo, hay casos en los que deseamos pasar datos de un proceso a otro.

El kernel de Linux permite la funcionalidad de compartir datos al proporcionar controladores de carpeta. Los controladores de Binder permiten la comunicación entre procesos, IPC. Utilizando procesos IPC se pueden descubrir otros procesos y compartir información.

Gestión de la memoria

Otra responsabilidad del Kernel de Linux es la gestión de la memoria. A medida que se ejecutan diferentes aplicaciones, el Kernel garantiza que el espacio de memoria que utilizan no entre en conflicto ni se sobrescriba entre sí.

También ayuda a garantizar que todas las aplicaciones en ejecución tengan la memoria adecuada para funcionar, asegurándose de que ninguna aplicación ocupe demasiado espacio.

Gestión de proceso

Cada aplicación en Android se ejecuta en un proceso. El Kernel también es responsable de gestionar los procesos. Esto significa que es responsable de crear, pausar, detener, cerrar o finalizar procesos.

El Kernel permite varias funcionalidades, como ejecutar múltiples procesos al mismo tiempo, comunicarse entre procesos, ejecutar procesos en segundo plano, etc.

Como cada proceso requiere su propio espacio de memoria para funcionar correctamente, el Kernel garantiza que los espacios de memoria asignados para cada proceso estén protegidos de otros procesos. También garantiza que recursos como RAM asignados a los procesos se liberan cuando se cierran los procesos.

El Kernel de Linux también se encarga de distribuir el trabajo a los procesadores presentes en el dispositivo. Esto hace posible maximizar el rendimiento de dispositivos con múltiples núcleos, ya que diferentes aplicaciones tendrán procesos ejecutados en un núcleo diferente.

El kernel de Linux realiza más tareas internas, incluida la aplicación de la seguridad.

Resumen:

  • Android archiLa tecnología está organizada en capas.
  • Cada capa resuelve un conjunto único de problemas.
  • Los usuarios finales interactúan con aplicaciones en la capa de aplicación.
  • Los desarrolladores de aplicaciones desarrollan aplicaciones para usar en la capa de Aplicación. Lo hacen utilizando herramientas y abstracciones proporcionadas por Application Framework.
  • La capa de Android Framework simplifica el acceso a componentes de bajo nivel mediante la creación de una API sobre bibliotecas nativas.
  • Android Runtime y Core-Libraries utilizan lenguajes de bajo nivel junto con optimizaciones para dispositivos móviles. Esto garantiza que el código escrito por los desarrolladores de aplicaciones se ejecute sin problemas a pesar de las limitaciones de los dispositivos Android.
  • En la parte inferior de la pila de software de Android se encuentra el kernel de Linux. Interactúa con los componentes de hardware comunes en los dispositivos Android.