Android 10 introdujo Mainline (anteriormente llamado componentes modulares del sistema 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 Google y los socios de Android distribuyan actualizaciones de forma amplia, rápida y sin problemas a los dispositivos del usuario final de una manera no intrusiva.
Los dispositivos del usuario final pueden recibir actualizaciones de Mainline desde la función de actualización del sistema Android de Google Play (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
Mainline 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íticos 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 introducen APIs nuevas. Solo usan las APIs del SDK y del sistema garantizadas por el Conjunto de pruebas de compatibilidad (CTS), se comunican solo entre sí y usan solo la API de C estable o las interfaces AIDL estables.
Actualizaciones de módulos
Algunos módulos de Mainline usan el formato de contenedor APEX (introducido en Android 10) y otros usan el formato APK.
Los módulos de Mainline actualizados se pueden empaquetar juntos y enviar a los dispositivos del usuario final, ya sea por Google, con la función de actualización del sistema de Google Play, o por el socio de Android, con un mecanismo OTA proporcionado por el socio. El paquete del módulo se instala y revierte de forma atómica; se actualizan todos los módulos que deben actualizarse o no se actualiza ninguno.
Módulos disponibles
| Nombre del módulo | Nombre del paquete | Tipo | Versión introducida |
|---|---|---|---|
| AdServices | com.google.android.adservices |
APEX | Android 13 |
| adbd | com.android.adbd |
APEX | Android 11 |
| Android Health | com.google.android.healthfitness |
APEX | Android 14 |
| AppSearch | com.android.appsearch |
APEX | Android 13 |
| ART | com.android.art |
APEX | Android 12 |
| Bluetooth | com.google.android.bt |
APEX | Android 13 |
| CellBroadcast | com.android.cellbroadcast |
APEX | Android 11 |
| Config Infrastructure | com.android.configinfrastructure |
APEX | Android 14 |
| Conscrypt | com.android.conscrypt |
APEX | Android 10 |
| Device Scheduling | com.android.scheduling |
APEX | Android 12 |
| Resolución de DNS | 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 | Contenido multimedia: com.android.mediaCódecs de medios: 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.permissionconfigAcceso al portal cautivo: com.android.captiveportalloginComponentes 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 |
Funcionalidad principal del paquete: com.google.android.ondevicepersonalization (APEX)Funcionalidad de la API de OnDevicePersonalization: com.google.android.ondevicepersonalization (APK)Funcionalidad de las APIs de FederatedCompute: com.google.android.federatedcompute (APK)
|
APEX y APK | Android 13 |
| PermissionController | com.android.permissioncontroller |
APK | Android 10 |
| Aprovisionamiento de claves remotas | com.android.rkpd |
APEX | Android 14 |
| Extensiones del SDK | com.android.sdkext |
APEX | Android 11 |
| Statsd | com.android.os.statsd |
APEX | Android 11 |
| Tethering | 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 |