Платформа открытой системы Android (AOSP) — это общедоступный и изменяемый исходный код Android. Любой может загрузить и модифицировать AOSP для своего устройства. AOSP обеспечивает полную и полнофункциональную реализацию мобильной платформы Android.
Существует два уровня совместимости устройств, реализующих AOSP: совместимость с AOSP и совместимость с Android. Устройство, совместимое с AOSP, должно соответствовать списку требований в Документе определения совместимости (CDD) . Android-совместимое устройство должно соответствовать списку требований CDD и Vendor Software Requirements (VSR) и тестам, таким как Vendor Test Suite (VTS) и Compatibility Test Suite (CTS) . Дополнительную информацию о совместимости с Android см. в программе совместимости с Android .
Архитектура АОСП
Программный стек для AOSP содержит следующие уровни:
Рис. 1. Архитектура программного стека AOSP.
Ниже приведен список определений терминов, используемых на рисунке 1:
- Android-приложение
- Приложение, созданное исключительно с использованием Android API. Магазин Google Play широко используется для поиска и загрузки приложений для Android, хотя существует множество других альтернатив. В некоторых случаях производитель устройства может захотеть предварительно установить приложение Android для поддержки основных функций устройства. Если вы заинтересованы в разработке приложений для Android, посетите сайт developer.android.com.
- Привилегированное приложение
- Приложение, созданное с использованием комбинации Android и системных API. Эти приложения должны быть предварительно установлены на устройстве как привилегированные приложения.
- Приложение производителя устройства
- Приложение, созданное с использованием комбинации Android API, системного API и прямого доступа к реализации платформы Android. Поскольку производитель устройства может напрямую обращаться к нестабильным API-интерфейсам в среде Android, эти приложения должны быть предварительно установлены на устройстве и могут обновляться только при обновлении системного программного обеспечения устройства.
- Системный API
- Системный API представляет API Android, доступные только партнерам и OEM-производителям для включения в связанные приложения. Эти API помечены как @SystemApi в исходном коде.
- Android-API
- Android API — это общедоступный API для сторонних разработчиков приложений для Android. Сведения об Android API см. в справочнике по Android API .
- Android-фреймворк
- Группа классов Java, интерфейсов и другого предварительно скомпилированного кода, на основе которого создаются приложения. Части платформы общедоступны благодаря использованию Android API. Другие части платформы доступны только OEM-производителям через системные API. Код платформы Android выполняется внутри процесса приложения.
- Системные службы
- Системные службы — это модульные специализированные компоненты, такие как
system_server
, SurfaceFlinger и MediaService. Функциональность, предоставляемая API платформы Android, взаимодействует с системными службами для доступа к базовому оборудованию. - Среда выполнения Android (ART)
- Среда выполнения Java, предоставляемая AOSP. ART выполняет преобразование байт-кода приложения в специфичные для процессора инструкции, которые выполняются средой выполнения устройства.
- Уровень аппаратной абстракции (HAL)
- HAL — это уровень абстракции со стандартным интерфейсом для реализации поставщиками оборудования. HAL позволяют Android не зависеть от реализации драйверов более низкого уровня. Использование HAL позволяет реализовать функциональность, не затрагивая и не изменяя систему более высокого уровня. Дополнительные сведения см. в обзоре HAL .
- Нативные демоны и библиотеки
Собственные демоны этого уровня включают
init
,healthd
,logd
иstoraged
. Эти демоны взаимодействуют непосредственно с ядром или другими интерфейсами и не зависят от реализации HAL на основе пользовательского пространства.Нативные библиотеки этого уровня включают
libc
,liblog
,libutils
,libbinder
иlibselinux
. Эти собственные библиотеки взаимодействуют напрямую с ядром или другими интерфейсами и не зависят от реализации HAL на основе пользовательского пространства.- ядро
Ядро является центральной частью любой операционной системы и общается с базовым оборудованием на устройстве. Там, где это возможно, ядро AOSP разделено на аппаратно-независимые модули и модули, зависящие от производителя. Описание, включая определения, компонентов ядра AOSP см. в обзоре ядра .
Что дальше?
- Если вы новичок в AOSP и хотите начать разработку, обратитесь к разделу Начало работы.
- Если вы хотите узнать больше о конкретном уровне AOSP, щелкните имя раздела в левой панели навигации и начните с обзора этого раздела.