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 release di Android. In questo modo, Google e i partner Android possono distribuire gli aggiornamenti in modo ampio, rapido e senza interruzioni ai dispositivi degli utenti finali in modo non intrusivo.
I dispositivi degli utenti finali possono ricevere gli aggiornamenti di Mainline tramite la funzionalità di aggiornamento del sistema Android Google Play (che viene eseguita sull'infrastruttura di Google Play Store) o tramite un meccanismo OTA (Over-the-Air) 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, se necessario, senza influire sulle implementazioni dei fornitori di livello inferiore o sulle app e sui servizi di livello superiore.
Figura 1. Architettura di Mainline
Gli aggiornamenti dei moduli non introducono nuove API. Utilizzano solo le API SDK e di sistema garantite dalla Compatibility Test Suite (CTS), comunicano solo tra loro e utilizzano solo interfacce API C stabili o AIDL stabili.
Aggiornamenti dei moduli
Alcuni moduli Mainline utilizzano il formato del 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 sottoposto a rollback in modo atomico; tutti i moduli che devono essere aggiornati vengono aggiornati o nessuno viene aggiornato.
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.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 |
| Media | Media: com.android.mediaMedia Codecs: 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 |
| Network Stack | Network Stack Permission Configuration: com.android.networkstack.permissionconfigCaptive Portal Login: com.android.captiveportalloginNetwork Components: com.android.networkstack |
APK | Android 10 |
| NNAPI Runtime | 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 |
| Remote Key Provisioning | 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 |
| Time Zone Data | com.android.tzdata |
APEX | Android 10 |
| UWB | com.android.uwb |
APEX | Android 13 |
| Wi-Fi | com.android.wifi |
APEX | Android 11 |