Android 10 ha introdotto Mainline (in precedenza chiamato componenti di sistema modulari su questo sito). Mainline modularizza alcuni componenti del sistema Android e consente di aggiornarli al di fuori del normale ciclo di rilascio di Android. Ciò consente a Google e ai partner Android di distribuire gli aggiornamenti in modo ampio, rapido e senza problemi ai dispositivi degli utenti finali in modo non intrusivo.
I dispositivi degli utenti finali possono ricevere gli aggiornamenti Mainline dalla funzionalità di aggiornamento di sistema di Android Google Play (che viene eseguita sull'infrastruttura del Google Play Store) o tramite un meccanismo over-the-air (OTA) fornito dal partner.
Architettura
Mainline converte i componenti di sistema selezionati in moduli. L'architettura modulare mostrata nella Figura 1 consente di aggiornare i componenti di sistema con correzioni di bug critici e altri miglioramenti in base alle necessità, senza influire sulle implementazioni dei fornitori di livello inferiore o su app e servizi di livello superiore.
 
Figura 1. Architettura Mainline
Gli aggiornamenti dei moduli non introducono nuove API. Utilizzano solo l'SDK e le API di sistema garantite dalla Compatibility Test Suite (CTS), comunicano solo tra loro e utilizzano solo API C stabili o interfacce AIDL stabili.
Aggiornamenti dei moduli
Alcuni moduli Mainline utilizzano il formato contenitore APEX (introdotto in Android 10) e altri utilizzano il formato APK.
I moduli Mainline aggiornati possono essere raggruppati e inviati ai dispositivi degli utenti finali da Google, utilizzando la funzionalità di aggiornamento del sistema Google Play, o dal partner Android, utilizzando un meccanismo OTA fornito dal partner. Il pacchetto del modulo viene installato e ripristinato in modo atomico: vengono aggiornati tutti i moduli che devono essere aggiornati o nessuno di loro.
Moduli disponibili
| Nome modulo | Nome pacchetto | Tipo | Release introdotta | 
|---|---|---|---|
| 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.btservices | 
    APEX | Android 13 | 
| CellBroadcast | com.android.cellbroadcast | 
    APEX | Android 11 | 
| Configurazione dell'infrastruttura | com.android.configinfrastructure | 
    APEX | Android 14 | 
| Conscrypt | com.android.conscrypt | 
    APEX | Android 10 | 
| Pianificazione dei dispositivi | com.android.scheduling | 
    APEX | Android 12 | 
| Resolver 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 | 
| IPsec/IKEv2 Library | com.android.ipsec | 
    APEX | Android 11 | 
| Media | Media: com.android.mediaCodec multimediali: com.android.media.swcodec | 
    APEX | Android 10 (estrattori, API MediaSession)
     Android 11 (API MediaParser)  | 
  
| MediaProvider | com.android.mediaprovider | 
    APEX | Android 11 | 
| ModuleMetadata | com.android.modulemetadata | 
    APK | Android 10 | 
| Stack di rete | Configurazione delle autorizzazioni dello stack di rete: com.android.networkstack.permissionconfigCaptive Portal Login: com.android.captiveportalloginNetwork Components: com.android.networkstack  | 
    APK | Android 10 | 
| Runtime NNAPI | com.android.neuralnetworks | 
    APK | Android 11 | 
| OnDevicePersonalization Runtime | 
    Funzionalità principale per il pacchetto: com.google.android.ondevicepersonalization (APEX)Funzionalità dell'API OnDevicePersonalization: com.google.android.ondevicepersonalization (APK)Funzionalità delle API FederatedCompute: com.google.android.federatedcompute (APK)
     | 
    APEX e APK | Android 13 | 
| PermissionController | com.android.permissioncontroller | 
    APK | Android 10 | 
| Provisioning delle chiavi da remoto | com.android.rkpd | 
    APEX | Android 14 | 
| SDK Extensions | com.android.sdkext | 
    APEX | Android 11 | 
| Statsd | com.android.os.statsd | 
    APEX | Android 11 | 
| Tethering | com.android.tethering | 
    APEX | Android 11 | 
| Dati del fuso orario | com.android.tzdata | 
    APEX | Android 10 | 
| UWB | com.android.uwb | 
    APEX | Android 13 | 
| Wi-Fi | com.android.wifi | 
    APEX | Android 11 |