Обзор AOSP

Android — это операционная система для широкого спектра устройств с различными форм-факторами. Документация и исходный код Android доступны любому желающему в рамках проекта Android Open Source Project (AOSP) . Вы можете использовать AOSP для создания собственных вариантов ОС Android для своих устройств.

AOSP разработан таким образом, чтобы исключить централизованную точку отказа, где один игрок отрасли ограничивает или контролирует инновации другого. Поэтому AOSP — это полноценный продукт для разработчиков, готовый к использованию в производственной среде, с открытым исходным кодом для кастомизации и портирования.

Этот раздел документации поможет начинающим разработчикам AOSP освоить платформу и выполнить основные задачи разработки.

Обязательные условия

Ниже приведён список терминов и определений, используемых в документации по началу работы. Перед продолжением следует изучить каждое определение.

разработчик Android-приложений

Разработчики приложений для Android создают приложения , которые работают на Android. Существует два типа разработчиков приложений: разработчики собственных приложений (1p) и разработчики сторонних приложений (3p).

Разработчик собственных приложений для Android
Разработчик Android-приложений, имеющий доступ к API системы AOSP и создающий приложения для привилегированных устройств и приложений от производителей.
Разработчик сторонних приложений для Android
Разработчик Android-приложений, который использует исключительно общедоступный SDK Android для создания Android-приложений.

Если вы хотите разрабатывать сторонние приложения для Android, обратитесь к developer.android.com . Информация на этом сайте предназначена исключительно для тех, кто работает непосредственно с AOSP.

Отладочный мост Android (adb)
Инструмент командной строки ( adb ), позволяющий вашей рабочей станции взаимодействовать с виртуальным, программно-эмулируемым или физическим устройством.
Устройство, совместимое с Android
Устройство, способное запускать любые сторонние приложения, разработанные сторонними разработчиками с использованием Android SDK и NDK. Совместимые с Android устройства должны соответствовать требованиям документа «Определение совместимости» (CDD) и пройти набор тестов на совместимость (CTS) . Совместимые с Android устройства имеют право участвовать в экосистеме Android, что включает в себя потенциальное лицензирование магазина приложений Android Play Store, потенциальное лицензирование пакета приложений и API Google Mobile Services (GMS) , а также использование товарного знака Android. Любой желающий может использовать исходный код Android, но для того, чтобы считаться частью экосистемы Android, устройство должно быть совместимо с Android. Для получения дополнительной информации о совместимости и CTS см. обзор программы совместимости Android.
Документ, определяющий совместимость (CDD)
Документ, в котором перечислены программные и аппаратные требования для устройства, совместимого с Android.
Участник

Участником, вносящим вклад в исходный код AOSP, может быть сотрудник Google, сотрудники других компаний, а также лица, не связанные ни с одной компанией. Все участники AOSP используют одни и те же инструменты, следуют одному и тому же процессу проверки кода и придерживаются одного и того же стиля кодирования. Для использования AOSP не обязательно быть участником; вы можете загрузить AOSP, модифицировать его под свои нужды и развернуть на устройстве, не предоставляя код для использования другими.

Существуют ограничения на типы кода, которые принимает Google. Например, вы можете захотеть внести свой вклад в виде альтернативного API приложения, например, полноценной среды разработки на C++. Google отклонит такой вклад, поскольку Android поощряет запуск приложений в среде выполнения ART. Аналогично, Google не принимает такие вклады, как библиотеки, распространяемые по лицензиям GPL или LGPL, которые несовместимы с целями лицензирования.

Если вы заинтересованы в участии в разработке исходного кода, свяжитесь с Google до начала работы.

Набор тестов на совместимость (CTS)

Бесплатный коммерческий набор тестов, доступный для загрузки в виде бинарного файла или исходного кода в AOSP. CTS — это набор модульных тестов, предназначенных для интеграции в ваш повседневный рабочий процесс. Цель CTS — выявлять несовместимости и обеспечивать совместимость программного обеспечения на протяжении всего процесса разработки.

каракатица

Настраиваемое виртуальное устройство на базе Android, которое может работать удаленно, используя облачные сервисы сторонних разработчиков, такие как Google Cloud Engine, а также локально на машинах Linux x86.

Разработчик

В контексте AOSP разработчиком считается любой, кто так или иначе работает с AOSP. Термин «разработчик» используется в общем смысле для обозначения различных людей, которые могут читать эту документацию, таких как производители оригинального оборудования (OEM), производители мобильных телефонов, операторы связи и создатели систем на кристалле (SoC).

Мобильные сервисы Google (GMS)

Набор приложений и API от Google, которые можно предварительно установить на устройства.

Цель

Вариант устройства, например, конкретная модель или форм-фактор. Например, aosp_cf_x86_64_only_phone-userdebug представляет собой телефон x86 с 65 МБ памяти и отладочной информацией, предназначенный для работы в эмуляторе Cuttlefish.

философия управления

Группа компаний, известная как Open Handset Alliance (OHA), возглавляемая Google, создала Android. Сегодня многие компании — как первоначальные члены OHA, так и другие — вложили значительные средства в Android. Эти компании выделили существенные инженерные ресурсы на улучшение Android и вывод устройств на Android на рынок.

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

Конечно, неконтролируемая настройка может привести к несовместимым реализациям. Для предотвращения несовместимости проект Android Open Source Project (AOSP) поддерживает программу совместимости Android , в которой четко указано, что значит быть совместимым с Android и что требуется от разработчиков устройств для достижения этого статуса. Любой может использовать исходный код Android для любых целей, и Google приветствует все законные способы использования. Однако, чтобы участвовать в общей экосистеме приложений, которые члены OHA разрабатывают на основе Android, разработчики устройств должны участвовать в программе совместимости Android.

AOSP возглавляет Google, которая поддерживает и развивает Android. Хотя Android состоит из множества подпроектов, AOSP — это исключительно управление проектами. Google рассматривает и управляет Android как единым, целостным программным продуктом, а не как дистрибутивом, спецификацией или набором заменяемых компонентов. Цель Google состоит в том, чтобы разработчики устройств портировали Android на свои устройства; они не занимаются реализацией спецификации или курированием дистрибутива.

Что дальше?