Обзор AOSP

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

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

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

Требуемые термины

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

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

Разработчики приложений для 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 Open Source Project (AOSP) поддерживает программу совместимости с Android , которая разъясняет, что означает совместимость с Android и что требуется от производителей устройств для достижения этого статуса. Любой может использовать исходный код Android в любых целях, и Google приветствует любое законное использование. Однако, чтобы участвовать в общей экосистеме приложений, создаваемых членами OHA на основе Android, производители устройств должны участвовать в программе совместимости с Android.

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

Что дальше?