Android 10 introdujo Mainline (antes llamado componentes del sistema modular en este sitio). Mainline modulariza algunos componentes del sistema Android y les permite actualizarse fuera del ciclo normal de lanzamientos de Android. Esto permite que los socios de Google y Android distribuyan actualizaciones de forma amplia, rápida y sin problemas a los dispositivos de los usuarios finales de manera no invasiva.
Los dispositivos del usuario final pueden recibir actualizaciones de Mainline desde la función de actualización del sistema de Google Play para Android (que se ejecuta en la infraestructura de Google Play Store) o a través de un mecanismo inalámbrico (OTA) proporcionado por un socio.
Arquitectura
La línea principal convierte los componentes del sistema seleccionados en módulos. La arquitectura modular que se muestra en la Figura 1 permite que los componentes del sistema se actualicen con correcciones de errores críticas y otras mejoras según sea necesario, sin afectar las implementaciones de proveedores de nivel inferior ni las apps y los servicios de nivel superior.
Figura 1: Arquitectura de Mainline
Las actualizaciones de módulos no presentan APIs nuevas. Solo usan las APIs del SDK y del sistema que garantiza el conjunto de pruebas de compatibilidad (CTS), se comunican solo entre sí y usan solo APIs de C estables o interfaces de AIDL estables.
Actualizaciones de módulos
Algunos módulos de Mainline usan el formato de contenedor APEX (presentado en Android 10) y otros usan el formato APK.
Los módulos principales actualizados se pueden empaquetar y enviar a los dispositivos del usuario final, ya sea a través de Google, con la función de actualización del sistema de Google Play, o del socio de Android, con un mecanismo inalámbrico proporcionado por el socio. El paquete del módulo se instala y se revierte de forma atómica. Se actualizan todos los módulos que deben actualizarse o ninguno.
Módulos disponibles
Nombre del módulo | Nombre de paquete | Tipo | Lanzamiento |
---|---|---|---|
AdServices | Múltiples | Múltiples | Android 13 |
adbd | com.android.adbd |
APEX | Android 11 |
Android Health |
|
APEX | Android 14 |
AppSearch | com.android.appsearch |
APEX | Android 13 |
ART | com.android.art |
APEX | Android 12 |
Bluetooth |
|
APEX | Android 13 |
Transmisión móvil | com.android.cellbroadcast |
APEX | Android 11 |
Infraestructura de configuración | com.android.configinfrastructure |
APEX | Android 14 |
Conscrypt | com.android.conscrypt |
APEX | Android 10 |
Programación del dispositivo | com.android.scheduling |
APEX | Android 12 |
Resolución de | com.android.resolv |
APEX | Android 10 |
DocumentsUI | com.android.documentsui |
APK | Android 10 |
ExtServices | com.android.ext.services |
APK (Android 10)
APEX (Android 11) |
Android 10 |
Biblioteca de IPsec/IKEv2 | com.android.ipsec |
APEX | Android 11 |
Contenido multimedia | Multimedia: com.android.media Códecs de multimedia: com.android.media.swcodec |
APEX | Android 10 (extractores, API de MediaSession)
Android 11 (API de MediaParser) |
MediaProvider | com.android.mediaprovider |
APEX | Android 11 |
ModuleMetadata | com.android.modulemetadata |
APK | Android 10 |
Pila de red | Configuración de permisos de la pila de red: com.android.networkstack.permissionconfig Acceso al portal cautivo: com.android.captiveportallogin Componentes de red: com.android.networkstack |
APK | Android 10 |
Entorno de ejecución de NNAPI | com.android.neuralnetworks |
APK | Android 11 |
Entorno de ejecución de OnDevicePersonalization | Múltiples | Múltiples | Android 13 |
PermissionController | com.android.permissioncontroller |
APK | Android 10 |
Aprovisionamiento de claves remoto | com.android.rkpd |
APEX | Android 14 |
Extensiones del SDK | com.android.sdkext |
APEX | Android 11 |
Statsd | com.android.os.statsd |
APEX | Android 11 |
Conexión | com.android.tethering |
APEX | Android 11 |
Datos de zona horaria | com.android.tzdata |
APEX | Android 10 |
UWB | com.android.uwb |
APEX | Android 13 |
Wi-Fi | com.android.wifi |
APEX | Android 11 |