Mainline

W Androidzie 10 wprowadzono Mainline (wcześniej na tej stronie nazywany 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 aplikacje i usługi wyższego poziomu.

Architektura Mainline

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 używają tylko 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 wycofywany w sposób niepodzielny. Albo wszystkie moduły, które wymagają aktualizacji, zostaną zaktualizowane, albo żaden z nich nie zostanie zaktualizowany.

Dostępne moduły

Nazwa modułu Nazwa pakietu Typ Wprowadzenie wersji
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
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.media

Kodeki multimediów: com.android.media.swcodec
APEX Android 10 (ekstraktory, interfejs MediaSession API)
Android 11 (interfejs MediaParser API)
MediaProvider com.android.mediaprovider APEXAndroid 11
ModuleMetadata com.android.modulemetadata APK Android 10
Stos sieciowy Konfiguracja uprawnień stosu sieciowego: com.android.networkstack.permissionconfig

Logowanie w sieci Wi-Fi z wymaganiem logowania: com.android.captiveportallogin

Komponenty sieciowe: com.android.networkstack
APK Android 10
NNAPI Czas działania com.android.neuralnetworks APK Android 11
Personalizacja na urządzeniu Czas działania Główne funkcje pakietu: com.google.android.ondevicepersonalization (APEX)

Funkcje interfejsu OnDevicePersonalization API: com.google.android.ondevicepersonalization (APK)

Funkcje interfejsów FederatedCompute API: com.google.android.federatedcompute (APK)
APEX i APK Android 13
PermissionController com.android.permissioncontroller APK Android 10
Zdalne udostępnianie 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