Mainline

W Androidzie 10 wprowadzono usługę Mainline (wcześniej nazywaną w tej witrynie komponentami systemu modułowego). Mainline składa się z niektórych komponentów systemu Android i umożliwia ich aktualizowanie poza normalnym cyklem wersji Androida. Dzięki temu Google i partnerzy Androida mogą rozpowszechniać aktualizacje szeroko, szybko i płynnie na urządzeniach użytkowników w nieinwazyjny sposób.

Urządzenia użytkowników mogą otrzymywać aktualizacje Mainline za pomocą funkcji aktualizacji systemowej Google Play na Androidzie (która działa w infrastrukturze Sklepu Google Play) lub za pomocą mechanizmu bezprzewodowego przesyłania danych przez partnera (OTA).

Architektura

Mainline konwertuje wybrane komponenty systemu na moduły. Architektura modułowa przedstawiona na rys. 1 umożliwia aktualizowanie komponentów systemu o krytyczne poprawki błędów i inne ulepszenia bez wpływu na implementacje dostawców niższego poziomu ani aplikacje i usługi wyższego poziomu.

Architektura główna

Rysunek 1. Architektura głównej linii

Aktualizacje modułów nie wprowadzają nowych interfejsów API. Aplikacje te korzystają tylko z pakietu SDK i interfejsów API systemu, które są gwarantowane przez kompatybilność z testami (CTS), komunikują się tylko ze sobą i korzystają tylko ze stabilnych interfejsów 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 za pomocą funkcji aktualizacji systemu w Google Play lub przez partnera Androida za pomocą mechanizmu OTA udostępnionego przez partnera. Pakiet modułu jest instalowany i wycofywany jako całość. Zaktualizowane są wszystkie moduły, które wymagają aktualizacji, lub żaden z nich.

Dostępne moduły

Nazwa modułu Nazwa pakietu Typ Wprowadzenie wersji
AdServices Wiele Wiele Android 13
adbd com.android.adbd APEX Android 11
Android Health APEX Android 14
AppSearch com.android.appsearch APEX Android 13
ART com.android.art APEX Android 12
Bluetooth APEX Android 13
CellBroadcast com.android.cellbroadcast APEX Android 11
Konfiguracja infrastruktury com.android.configinfrastructure APEX Android 14
Conscrypt com.android.conscrypt APEX Android 10
Planowanie na urządzeniu com.android.scheduling APEX Android 12
DNS Resolver com.android.resolv APEX Android 10
Interfejs Dokumenty 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 multimedialne: com.android.media.swcodec
APEX Android 10 (wyciągarki, interfejs MediaSession API)
Android 11 (MediaParser API)
MediaProvider com.android.mediaprovider APEXAndroid 11
ModuleMetadata com.android.modulemetadata APK Android 10
Sieć Sieć Konfiguracja uprawnień stosu sieci: com.android.networkstack.permissionconfig

Portal logowania: com.android.captiveportallogin

Składniki sieci: com.android.networkstack
APK Android 10
NNAPI Czas działania com.android.neuralnetworks APK Android 11
Personalizacja na urządzeniu Czas działania Wiele Wiele Android 13
PermissionController com.android.permissioncontroller APK Android 10
Zdalne udostępnianie klucza com.android.rkpd APEX Android 14
Pakiet SDK Extensions com.android.sdkext APEX Android 11
Statystyki com.android.os.statsd APEX Android 11
Tethering com.android.tethering APEX Android 11
Strefa czasowa com.android.tzdata APEX Android 10
UWB com.android.uwb APEX Android 13
Wi-Fi com.android.wifi APEX Android 11