Android 10 a introduit Mainline (anciennement appelé composants système modulaires sur ce site). Mainline modularise certains composants système Android et permet leur mise à jour en dehors du cycle normal de publication d'Android. Cela permet à Google et aux partenaires Android de distribuer des mises à jour de manière large, rapide et transparente aux appareils des utilisateurs finaux, sans être intrusif.
Les appareils des utilisateurs finaux peuvent recevoir des mises à jour Mainline à partir de la fonctionnalité de mise à jour du système Android Google Play (qui s'exécute sur l'infrastructure Google Play Store) ou via un mécanisme OTA fourni par un partenaire.
Architecture
Mainline convertit certains composants système en modules. L'architecture modulaire illustrée à la figure 1 permet de mettre à jour les composants système avec des correctifs de bugs critiques et d'autres améliorations, si nécessaire, sans affecter les implémentations de fournisseurs de niveau inférieur ni les applications et services de niveau supérieur.
Figure 1. Architecture Mainline
Les mises à jour de module n'introduisent pas de nouvelles API. Elles n'utilisent que les API SDK et système garanties par la Compatibility Test Suite (CTS), ne communiquent qu'entre elles et n'utilisent que des interfaces C API ou AIDL stables.
Mises à jour de module
Certains modules Mainline utilisent le format de conteneur APEX (introduit dans Android 10) et d'autres utilisent le format APK.
Les modules Mainline mis à jour peuvent être regroupés et envoyés aux appareils des utilisateurs finaux, soit par Google, à l'aide de la fonctionnalité de mise à jour du système Google Play, soit par le partenaire Android, à l'aide d'un mécanisme OTA fourni par le partenaire. Le package de module s'installe et est restauré de manière atomique. Tous les modules qui doivent être mis à jour sont mis à jour, ou aucun ne l'est.
Modules disponibles
| Nom du module | Nom du package | Type | Version introduite |
|---|---|---|---|
| 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 |
| DNS Resolver | 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 |
| IPsec/IKEv2 Library | com.android.ipsec |
APEX | Android 11 |
| Multimédia | Multimédia : com.android.mediaCodecs multimédias : com.android.media.swcodec |
APEX | Android 10 (extracteurs, API MediaSession)
Android 11 (API MediaParser) |
| MediaProvider | com.android.mediaprovider |
APEX | Android 11 |
| ModuleMetadata | com.android.modulemetadata |
APK | Android 10 |
| Réseau Pile | Configuration des autorisations de la pile réseau : com.android.networkstack.permissionconfigConnexion au portail captif : com.android.captiveportalloginComposants réseau : com.android.networkstack |
APK | Android 10 |
| Environnement d'exécution NNAPI | com.android.neuralnetworks |
APK | Android 11 |
| OnDevicePersonalization Environnement d'exécution |
Fonctionnalité principale du package : com.google.android.ondevicepersonalization (APEX)Fonctionnalité de l'API OnDevicePersonalization : com.google.android.ondevicepersonalization (APK)Fonctionnalité des API FederatedCompute : com.google.android.federatedcompute (APK)
|
APEX et APK | Android 13 |
| PermissionController | com.android.permissioncontroller |
APK | Android 10 |
| Provisionnement de clés à distance | com.android.rkpd |
APEX | Android 14 |
| SDK Extensions | com.android.sdkext |
APEX | Android 11 |
| Statsd | com.android.os.statsd |
APEX | Android 11 |
| Partage de connexion | com.android.tethering |
APEX | Android 11 |
| Données de fuseau horaire | com.android.tzdata |
APEX | Android 10 |
| UWB | com.android.uwb |
APEX | Android 13 |
| Wi-Fi | com.android.wifi |
APEX | Android 11 |