Часто задаваемые вопросы по AOSP (FAQ)

В этом документе содержатся ответы на общие вопросы о платформе Android с открытым исходным кодом (AOSP).

О последней версии Android

Почему я не могу отправить заявку в aosp-main?

Вы не можете отправить изменения в aosp-main поскольку эта ветка теперь доступна только для чтения.

Куда мне следует предложить изменения в AOSP?

Вам следует предложить новые изменения в android-latest-release (при использовании Repo) или в ветку последнего релиза, указанную в манифесте android-latest-release (при использовании Git напрямую). Существующие предложенные изменения в других ветках (например, aosp-main ) не нужно перемещать.

С какой веткой мне следует синхронизироваться?

  • При использовании Repo выполните синхронизацию с android-latest-release с помощью следующей команды:

    repo init --partial-clone --no-use-superproject -b android-latest-release -u https://android.googlesource.com/platform/manifest
  • При прямом использовании Git синхронизируйтесь с веткой ревизии по умолчанию, указанной в манифесте android-latest-release .

Более подробную информацию о синхронизации ветвей см. в разделе Инициализация клиента репозитория .

Будет ли код из android-latest-release объединен с aosp-main?

Нет, код не будет объединен с веткой aosp-main , которая с 27 марта 2025 года является веткой только для чтения.

Куда загружен код для следующего релиза?

Google помещает код для следующего релиза в последнюю общедоступную ветку релиза и обновляет манифест android-latest-release чтобы он указывал на эту ветку.

Будет ли мой запрос на изменение выбран из ветки android-latest-release и передан во внутренний Gerrit?

После загрузки предлагаемого изменения Google рассмотрит его и, если оно будет принято, добавит во внутренний Gerrit.

Как я узнаю, что мой запрос на изменение был принят?

Принятые и отобранные изменения появляются в будущем push в ветке релиза на хосте Android и могут быть синхронизированы с репозиторием с помощью android-latest-release . Механизма уведомления о том, когда предложенное изменение принято или отклонено, не существует.

Каков общий рабочий процесс с момента предложения изменения внешним участником до момента его слияния с последней веткой выпуска?

  1. Внешний участник предлагает внести изменения в android-latest-release (при использовании Repo) или в ветку последней версии, указанную в манифесте android-latest-release (при использовании Git напрямую).

  2. Google проверяет изменение. Если изменение:

    • Принятое изменение Google выбирает и объединяет во внутреннюю ветку разработки.

    • Не принято, Google не выбирает изменения выборочно.

  3. Внешний участник проверяет наличие своих изменений в android-latest-release .

Что делать, если мне больше не нужны предложенные изменения?

Если вам больше не нужно предложенное изменение, вы не хотите, чтобы изменение было объединено, или знаете, что Google уже рассмотрел изменение, отмените изменение, чтобы оно осталось в истории предложенных изменений на хосте Android.

Вопросы по открытому исходному коду

Почему Google открыл исходный код Android?

Google запустил AOSP в ответ на наш собственный опыт запуска мобильных приложений. Мы хотели убедиться, что всегда будет открытая платформа, доступная операторам, OEM-производителям и разработчикам для воплощения их инновационных идей в реальность. Мы также хотели избежать какой-либо центральной точки отказа, чтобы ни один игрок отрасли не мог ограничивать или контролировать инновации любого другого. Наша единственная важнейшая цель в AOSP — убедиться, что программное обеспечение Android с открытым исходным кодом внедряется как можно шире и совместимее, на благо всех.

К какому типу проектов с открытым исходным кодом относится Android?

Google контролирует разработку ядра AOSP и работает над созданием надежных сообществ разработчиков и пользователей. По большей части исходный код Android лицензируется по разрешительной лицензии Apache License 2.0, а не по лицензии copyleft . Мы выбрали лицензию Apache 2.0, поскольку считаем, что она способствует широкому принятию программного обеспечения Android. Подробности см. в разделе Лицензии .

Почему Google отвечает за Android?

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

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

Убедившись, что Android пользуется успехом у пользователей, мы помогаем обеспечить жизнеспособность Android как платформы и как проекта с открытым исходным кодом. В конце концов, кому нужен исходный код неудачного продукта?

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

Какова общая стратегия Google по разработке продуктов Android?

Мы выпускаем отличные устройства на конкурентный рынок. Затем мы включаем инновации и улучшения, которые мы сделали в основной платформе, в качестве следующей версии.

На практике это означает, что команда инженеров Android фокусируется на небольшом количестве «флагманских» устройств и разрабатывает следующую версию программного обеспечения Android для поддержки запуска этих продуктов. Эти флагманские устройства поглощают большую часть риска продукта и прокладывают путь для широкого сообщества OEM, которое следует за ними с большим количеством устройств, использующих новые функции. Таким образом, мы гарантируем, что платформа Android будет развиваться в соответствии с потребностями реальных устройств.

Как разрабатывается программное обеспечение Android?

Каждая версия платформы Android (например, 1.5 или 8.1) имеет соответствующую ветку в дереве с открытым исходным кодом. Самая последняя ветка считается текущей стабильной версией ветки , на которую указывает манифест android-latest-release . Это ветка, которую производители переносят на свои устройства. Эта ветка всегда поддерживается в пригодном для выпуска виде.

Наконец, Google работает над следующей версией платформы Android параллельно с разработкой флагманского устройства.

Почему некоторые части Android разрабатываются в частном порядке?

Обычно требуется больше года, чтобы вывести устройство на рынок. И, конечно, производители устройств хотят поставлять новейшее программное обеспечение, которое они могут. Между тем, разработчики не хотят постоянно отслеживать новые версии платформы при написании приложений. Обе группы испытывают напряжение между поставкой продуктов и нежеланием отставать.

Чтобы решить эту проблему, некоторые части следующей версии Android, включая основные API платформы, разрабатываются в закрытой ветке. Эти API составляют следующую версию Android. Наша цель — сосредоточить внимание на текущей стабильной версии исходного кода Android, пока мы создаем следующую версию платформы. Это позволяет разработчикам и OEM-производителям использовать одну версию, не отслеживая незаконченную будущую работу, просто чтобы не отставать.

Когда публикуется исходный код?

Когда они готовы. Выпуск исходного кода — довольно сложный процесс. Некоторые части Android, такие как ядро, разрабатываются открыто, и этот исходный код всегда доступен. Другие части сначала разрабатываются в закрытом дереве, и этот исходный код выпускается, когда готова следующая версия платформы.

В некоторых выпусках основные API платформы готовы достаточно заранее, чтобы мы могли выложить исходный код для раннего просмотра до выпуска устройства. В других выпусках это невозможно. Во всех случаях мы выпускаем исходный код платформы, когда чувствуем, что версия стабильна, и когда позволяет процесс разработки.

Что подразумевает публикация исходного кода новой версии Android?

Выпуск исходного кода для новой версии платформы Android — это важный процесс. Сначала программное обеспечение встраивается в системный образ для устройства и проходит различные формы сертификации, включая государственную нормативную сертификацию для регионов, где будут развернуты телефоны. Код также проходит тестирование оператором. Это важный этап процесса, поскольку он помогает обнаружить ошибки программного обеспечения.

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

Одновременно с массовым производством команда Google начинает несколько усилий по подготовке релиза с открытым исходным кодом. Эти усилия включают в себя внесение окончательных изменений API, обновление документации (например, для отражения любых изменений, которые были сделаны во время квалификационного тестирования), подготовку SDK для новой версии и запуск информации о совместимости платформы.

Наша юридическая команда делает финальное одобрение для выпуска кода в открытый исходный код. Так же, как участники открытого исходного кода должны подписать Лицензионное соглашение участников, подтверждающее их право собственности на интеллектуальную собственность своего вклада, Google должен проверить, что источник имеет право вносить вклады.

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

Как AOSP связана с Программой совместимости Android?

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

Функция Программы совместимости Android заключается в определении базовой реализации Android, совместимой со сторонними приложениями, написанными разработчиками. Устройства, совместимые с Android, имеют право участвовать в экосистеме Android, включая Google Play; устройства, не соответствующие требованиям совместимости, существуют за пределами этой экосистемы.

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

Как я могу внести свой вклад в Android?

Вы можете сообщать об ошибках, писать приложения для Android или вносить исходный код в AOSP.

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

Мы призываем тех, кто заинтересован в предоставлении исходного кода, связаться с нами по каналам, указанным в Android Community, прежде чем начинать какую-либо работу. Подробности см. в разделе Contributing .

Как стать участником Android-сообщества?

В AOSP на самом деле нет понятия коммиттера. Все вклады (включая те, которые были созданы сотрудниками Google) проходят через веб-систему, известную как Gerrit, которая является частью процесса разработки Android. Эта система работает в тандеме с системой управления исходным кодом Git для чистого управления вкладами исходного кода.

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

Подробную информацию см. в разделе Отправка исправлений .