Android 10 wprowadził Mainline (wcześniej nazywany na tej stronie modułowymi komponentami systemu). Mainline dzieli niektóre komponenty systemu Android na moduły i umożliwia ich aktualizowanie poza normalnym cyklem wydawania Androida. Umożliwia to Google i partnerom Androida rozpowszechnianie aktualizacji na urządzeniach użytkowników w sposób szybki, bezproblemowy i nieinwazyjny.
Urządzenia użytkowników mogą otrzymywać aktualizacje Mainline za pomocą funkcji aktualizacji systemu Android w Google Play (która działa w infrastrukturze Sklepu Google Play) lub za pomocą mechanizmu OTA dostarczonego przez partnera.
Architektura
Mainline przekształca wybrane komponenty systemu w moduły. Modułowa architektura przedstawiona na rysunku 1 umożliwia aktualizowanie komponentów systemu o krytyczne poprawki błędów i inne ulepszenia w razie potrzeby bez wpływu na implementacje dostawców niższego poziomu ani na aplikacje i usługi wyższego poziomu.
Rysunek 1. Architektura Mainline
Aktualizacje modułów nie wprowadzają nowych interfejsów API. Korzystają one tylko z pakietu SDK i interfejsów API systemu, które są gwarantowane przez Compatibility Test Suite (CTS), komunikują się tylko ze sobą i korzystają tylko ze stabilnego interfejsu C API lub stabilnych interfejsów AIDL.
Aktualizacje modułów
Niektóre moduły Mainline używają formatu kontenera APEX (wprowadzonego w Androidzie 10), a niektóre formatu APK.
Zaktualizowane moduły Mainline można spakować i przesłać na urządzenia użytkowników końcowych. Może to zrobić Google za pomocą funkcji aktualizacji systemu Google Play lub partner Androida za pomocą mechanizmu OTA dostarczonego przez partnera. Pakiet modułów jest instalowany i przywracany w sposób niepodzielny. Oznacza to, że wszystkie moduły, które wymagają aktualizacji, są aktualizowane lub żaden z nich nie jest aktualizowany.
Dostępne moduły
| Nazwa modułu | Nazwa pakietu | Typ | Wprowadzenie wersji |
|---|---|---|---|
| adbd | com.android.adbd |
APEX | Android 11 |
| AdServices | com.google.android.adservices |
APEX | Android 13 |
| 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 |
| Konfigurowanie infrastruktury | com.android.configinfrastructure |
APEX | Android 14 |
| Conscrypt | com.android.conscrypt |
APEX | Android 10 |
| Harmonogram urządzeń | 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 Biblioteka | com.android.ipsec |
APEX | Android 11 |
| Media |
Multimedia:com.android.mediaKodeki multimedialne: com.android.media.swcodec
|
APEX | Android 10 (ekstraktory, interfejs MediaSession API)
Android 11 (interfejs MediaParser API) |
| MediaProvider | com.android.mediaprovider |
APEX | Android 11 |
| ModuleMetadata | com.android.modulemetadata |
APK | Android 10 |
| Stos sieciowy |
Konfiguracja uprawnień stosu sieciowego:com.android.networkstack.permissionconfigLogowanie w sieci z portalem uwierzytelniającym: com.android.captiveportalloginKomponenty sieciowe: com.android.networkstack
|
APK | Android 10 |
| NNAPI Czas działania | com.android.neuralnetworks |
APK | Android 11 |
| OnDevicePersonalization Runtime |
Główne funkcje pakietu (APEX):com.google.android.ondevicepersonalizationFunkcje interfejsu OnDevicePersonalization API (APK): com.google.android.ondevicepersonalizationFunkcje interfejsów FederatedCompute API (APK): com.google.android.federatedcompute
|
APEX i APK | Android 13 |
| PermissionController | com.android.permissioncontroller |
APK | Android 10 |
| Zdalna obsługa kluczy | com.android.rkpd |
APEX | Android 14 |
| Rozszerzenia pakietu SDK | com.android.sdkext |
APEX | Android 11 |
| Statsd | com.android.os.statsd |
APEX | Android 11 |
| Tethering | com.android.tethering |
APEX | Android 11 |
| Dane strefy czasowej | com.android.tzdata |
APEX | Android 10 |
| UWB | com.android.uwb |
APEX | Android 13 |
| Wi-Fi | com.android.wifi |
APEX | Android 11 |