Android Architectura: capas de aplicación, marco, componente
Android El lanzamiento inicial del sistema operativo 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 el Android El sistema operativo se presenta a nivel superficial y 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 Android se ha desarrollado gracias a los 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 y LG, fabricantes de procesadores como Intel y ARM, por nombrar solo algunos.
Cuando hablamos de Android arquitectura, nos referimos a cómo la Android El sistema ha sido diseñado, segmentado en capas y construido para funcionar como un sistema. Construir un sistema tan complejo requiere una estructuración cuidadosa para garantizar que todos los componentes funcionen juntos de manera cohesiva. Su arquitectura garantiza que los diversos componentes funcionen como un todo sin fallar.
capas
Las siguientes son las capas que componen el Android Arquitectura tal como se indica en el diagrama:
- Solicitud
- Marco de aplicación
- Android Bibliotecas principales y de tiempo de ejecución
- Linux Kernel
El desarrollo de un sistema operativo para dispositivos móviles implica una serie de desafíos. El uso de esta arquitectura en capas garantiza que los distintos problemas se dividan y resuelvan en distintos niveles.
Una arquitectura en capas ayuda a separar las preocupaciones y garantiza que los desarrolladores de software de Android no tengan que lidiar con problemas de bajo nivel en todo momento. En cambio, pueden concentrarse en brindar valor comercial relacionado 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.
Los desarrolladores de Application Framework trabajan en base a la experiencia del desarrollador y no tienen que preocuparse por los controladores de bajo nivel. Los ingenieros de sistemas de bajo nivel pueden concentrarse completamente en componentes de bajo nivel, como controladores de Bluetooth o de audio, entre otros.
AndroidLa estructura en capas 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.
Android Solicitud
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, por defecto, viene con un conjunto de aplicaciones que hacen que los dispositivos Android sean utilizables desde el principio.
- 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.
- 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.
- Mensajes: Android proporciona la capacidad de enviar y recibir mensajes SMS.
- Email: Android viene con soporte nativo para servicios de correo electrónico. Configurar un Android El dispositivo requiere una cuenta de Gmail. Al configurar Gmail se activan otros componentes que dependen del correo electrónico. Android dispositivos. Algunas funciones que dependen del correo electrónico incluyen mecanismos de seguridad y recuperación. Otra función que depende del correo electrónico es el acceso a Play Store, una tienda de aplicaciones para Android aplicaciones.
- Navegador: Android viene con un navegador predeterminado.
- 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 principalmente optimizadas 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 inferiores a 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 Google Android o terceros que desean utilizar la aplicación. Android código fuente de su producto o investigación.
Marco de aplicación
El Android El sistema operativo expone las bibliotecas y características subyacentes del Android dispositivo que utiliza un Java API. Esto es lo que se conoce como el Android estructura. El marco expone un medio seguro y uniforme para utilizar Android recursos del dispositivo.
1) Gerente de Actividad
Las aplicaciones utilizan el Android Componente de actividad para presentar un punto de entrada a la aplicación. Android Las actividades 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 Android dispositivo, inician, detienen y saltan hacia adelante y hacia atrás entre muchas aplicaciones. Cada evento de navegación desencadena la activación y desactivación de muchas actividades en las respectivas aplicaciones.
El 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 Android El sistema operativo realiza acciones globales. Las aplicaciones pueden escuchar eventos como la rotación del dispositivo, la destrucción de una aplicación debido a la falta de memoria, el desplazamiento de una aplicación fuera de foco, 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 ventanas para las 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 al permitir múltiples ventanas para cada aplicación.
3) Gerente de ubicación
La mayoría de las Android Los dispositivos están equipados con dispositivos GPS que pueden obtener la ubicación del usuario utilizando información satelital que puede llegar hasta metros de precisión. 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 los detalles de ubicación y aumentar la cobertura cuando los dispositivos se encuentran en espacios cerrados. Android proporciona estas funciones bajo el paraguas de Location-Manager.
4) Administrador de Telefonía
La mayoría de las Android Los dispositivos desempeñan un papel primordial 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
Android La aplicación suele 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 Responsable de Notificaciones es el responsable de informar Android usuarios de eventos de aplicaciones. 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 proporciona 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. Android él mismo expone datos como datos de calendario, datos de contacto y similares utilizando el mismo sistema.
Android Bibliotecas en tiempo de ejecución y principales/nativas
1) Android Runtime
Android actualmente usa Android Tiempo de ejecución (ART) para ejecutar el código de la aplicación. ART está precedido por el tiempo de ejecución Dalvik que compila 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 procesador y memoria de los dispositivos móviles.
El entorno de ejecución traduce el código escrito por programadores en código de máquina que realiza cálculos y utiliza componentes del marco de Android para brindar 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 Android sistema operativo.
2) Marco de medios
Android También admite de forma nativa códecs multimedia populares, lo que facilita que las aplicaciones creadas en el Android Plataforma para utilizar/reproducir componentes multimedia listos para usar.
3) SQLite
Android también tiene un SQLite base de datos 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 Android Utilice 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 en Android y otros dispositivos como servidores, otros dispositivos móviles, 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 Android marco Android canalización de gráficos.
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 valor por defecto Android El navegador anterior a la versión 4.4 KitKat lo usa 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 superficies es responsable de garantizar la representación fluida de las pantallas de la aplicación. Para ello, compone gráficos 2D y 3D para la representación. Además, lo permite mediante el almacenamiento en búfer fuera de la pantalla.
Linux Kernel
El componente raíz de la Android El sistema es el núcleo de Linux. Es la pieza fundamental que permite que todo funcione. Androidla funcionalidad de.
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 realizar Android Dispositivos con diferentes capacidades para adaptarse a la experiencia del usuario.
Con respecto a AndroidEl kernel es responsable de muchas funcionalidades fundamentales, incluidas, entre otras, las siguientes:
- Controladores de dispositivo
- Gestión de la memoria
- Gestión de proceso
Ampliemos algunas de las funciones:
Controladores de dispositivo
El núcleo de Linux contiene 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 trabajar los 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 y cuando los fabricantes coincidan con los Android especificaciones estándar, la integración es perfecta.
1) Controlador USB
Linux también proporciona Android con 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 el Android dispositivos e interactuar con el 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 instalaciones para Android para configurar 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 Android Dispositivos para conectarse 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 componentes de visualización. En la mayoría de los dispositivos, el componente de interfaz es una pantalla táctil LCD. Permite configurar y dibujar píxeles.
5) Controlador de audio
Android Los dispositivos suelen venir con componentes de hardware para entrada y salida de audio. Los controladores de audio en el kernel permiten la Android sistema para utilizar el audio recibido de estos componentes y también producir salida de audio.
6) Administrador de energía
La mayoría de las Android Los dispositivos se utilizan mientras están desconectados de las tomas de corriente. 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.
Android El sistema operativo 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 se ajusta 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 las Android Los dispositivos utilizan la 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 Android dispositivos para leer y escribir 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.
Resum
- Android La arquitectura 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.
- Android La capa de marco 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 Android limitaciones del dispositivo.
- En la parte inferior de la Android La pila de software es el kernel de Linux. Interactúa con los componentes de hardware comunes en Android dispositivos.