Архитектура АОСП

Платформа открытой системы Android (AOSP) — это общедоступный и изменяемый исходный код Android. Любой может загрузить и модифицировать AOSP для своего устройства. AOSP обеспечивает полную и полнофункциональную реализацию мобильной платформы Android.

Существует два уровня совместимости устройств, реализующих AOSP: совместимость с AOSP и совместимость с Android. Устройство, совместимое с AOSP, должно соответствовать списку требований в Документе определения совместимости (CDD) . Android-совместимое устройство должно соответствовать списку требований в CDD и требованиях к программному обеспечению поставщика (VSR) и тестам, например, в наборе тестов поставщика (VTS) и наборе тестов совместимости (CTS) . Дополнительную информацию о совместимости с Android см. в программе совместимости с Android .

Архитектура АОСП

Программный стек для AOSP содержит следующие уровни:

Архитектура программного стека AOSP
Рис. 1. Архитектура программного стека AOSP.
  • Android-приложение. Приложение, созданное исключительно с использованием Android API в составе Android SDK. Магазин Google Play широко используется для поиска и загрузки приложений для Android, хотя существует множество других альтернатив. В некоторых случаях производитель устройства может захотеть предварительно установить приложение Android для поддержки основных функций устройства. Если вы заинтересованы в разработке приложений для Android, перейдите на страницу developer.android.com .
  • Привилегированное приложение. Приложение, созданное с использованием комбинации Android и системных API. Эти приложения должны быть предварительно установлены на устройстве как привилегированные приложения.
  • Приложение для производства устройств. Приложение, созданное с использованием комбинации Android API, системного API и прямого доступа к реализации платформы Android. Поскольку производитель устройства может напрямую обращаться к нестабильным API-интерфейсам в среде Android, эти приложения должны быть предварительно установлены на устройстве и могут обновляться только при обновлении системного программного обеспечения устройства.
  • Фреймворк андроид. Группа классов Java, интерфейсов и другого предварительно скомпилированного кода, на основе которого создаются приложения. Части платформы общедоступны благодаря использованию API-интерфейсов Android SDK для Android. Другие части платформы доступны только OEM-производителям с помощью системных API-интерфейсов Android SDK. Код платформы Android выполняется внутри процесса приложения.
  • Android SDK. Комплект разработки программного обеспечения для использования при создании приложений, взаимодействующих с платформой Android. Android SDK состоит из Android API, доступного для всех приложений, и системного API, доступного только для привилегированных приложений. Для получения дополнительной информации об Android API пакета SDK для Android перейдите на страницу developer.android.com . Обратите внимание, что существует также собственный комплект разработки для Android (NDK) , который позволяет вам писать часть вашего приложения для 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, щелкните имя уровня в левой панели навигации и начните с обзора этого уровня.