В Android 10 была представлена Mainline (ранее на этом сайте она называлась модульными системными компонентами). Mainline модулирует некоторые системные компоненты Android и позволяет обновлять их вне обычного цикла выпуска Android. Это позволяет Google и партнерам Android распространять обновления широко, быстро и беспрепятственно на устройства конечных пользователей, не создавая при этом лишних помех.
Пользователи могут получать обновления основной ветки (Mainline) через функцию обновления системы Android Google Play (работающую на инфраструктуре Google Play Store) или через предоставляемый партнерами механизм беспроводного обновления (OTA).
Архитектура
Mainline преобразует выбранные компоненты системы в модули . Модульная архитектура, показанная на рисунке 1, позволяет обновлять компоненты системы, исправляя критически важные ошибки и внося другие необходимые улучшения, без влияния на реализации нижнего уровня от поставщиков или приложения и сервисы верхнего уровня.

Рисунок 1. Основная архитектура.
Обновления модулей не вводят новые API. Они используют только API SDK и системные API, гарантированные набором тестов совместимости (CTS) , взаимодействуют только друг с другом и используют только стабильные интерфейсы C API или AIDL .
Обновления модулей
Некоторые модули основной ветки используют формат контейнера APEX (представленный в Android 10), а некоторые — формат APK.
Обновленные модули основной ветки могут быть объединены в пакеты и отправлены на устройства конечных пользователей либо компанией Google с помощью функции обновления системы Google Play, либо партнером Android с помощью предоставленного партнером механизма OTA. Пакет модуля устанавливается и откатывается атомарно; либо обновляются все модули, которые необходимо обновить, либо ни один из них.
Доступные модули
| Название модуля | Название пакета | Тип | Представлен релиз |
|---|---|---|---|
| AdServices | com.google.android.adservices | АПЕКС | Android 13 |
| адбд | com.android.adbd | АПЕКС | Android 11 |
| Здоровье Android | com.google.android.healthfitness | АПЕКС | Android 14 |
| Поиск приложений | com.android.appsearch | АПЕКС | Android 13 |
| ИСКУССТВО | com.android.art | АПЕКС | Android 12 |
| Bluetooth | com.google.android.bt | АПЕКС | Android 13 |
| CellBroadcast | com.android.cellbroadcast | АПЕКС | Android 11 |
| Конфигурационная инфраструктура | com.android.configinfrastructure | АПЕКС | Android 14 |
| Шифрование | com.android.conscrypt | АПЕКС | Android 10 |
| Планирование работы устройств | com.android.scheduling | АПЕКС | Android 12 |
| DNS-резолвер | com.android.resolv | АПЕКС | Android 10 |
| DocumentsUI | com.android.documentsui | APK | Android 10 |
| ExtServices | com.android.ext.services | APK (Android 10) APEX (Android 11) | Android 10 |
| Библиотека IPsec/IKEv2 | com.android.ipsec | АПЕКС | Android 11 |
| СМИ | Медиа: com.android.mediaМедиакодеки: com.android.media.swcodec | АПЕКС | Android 10 (экстракторы, API MediaSession) Android 11 (MediaParser API) |
| Медиапровайдер | com.android.mediaprovider | АПЕКС | Android 11 |
| Метаданные модуля | com.android.modulemetadata | APK | Android 10 |
| Сетевой стек | Настройка разрешений сетевого стека: com.android.networkstack.permissionconfigВход через Captive Portal: com.android.captiveportalloginКомпоненты сети: com.android.networkstack | APK | Android 10 |
| Среда выполнения NNAPI | com.android.neuralnetworks | APK | Android 11 |
| OnDevicePersonalization Runtime | Основная функциональность пакета: com.google.android.ondevicepersonalization (APEX)Функциональность API OnDevicePersonalization: com.google.android.ondevicepersonalization (APK)Функциональность API FederatedCompute: com.google.android.federatedcompute (APK) | APEX и APK | Android 13 |
| PermissionController | com.android.permissioncontroller | APK | Android 10 |
| Удалённое предоставление ключей | com.android.rkpd | АПЕКС | Android 14 |
| Расширения SDK | com.android.sdkext | АПЕКС | Android 11 |
| Статсд | com.android.os.statsd | АПЕКС | Android 11 |
| Привязка | com.android.tethering | АПЕКС | Android 11 |
| Данные о часовых поясах | com.android.tzdata | АПЕКС | Android 10 |
| UWB | com.android.uwb | АПЕКС | Android 13 |
| Wi-Fi | com.android.wifi | АПЕКС | Android 11 |