Часто задаваемые вопросы по 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 объединен с aosp-main?

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

Куда запихнут код следующего релиза?

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

Будет ли мой запрос на изменение перенесен из ветки последней версии Android во внутренний Gerrit?

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

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

Принятые и выбранные изменения появятся в будущем в ветке выпуска на хосте 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, а не по лицензии с авторским левом . Мы выбрали лицензию 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, прежде чем начинать какую-либо работу. Подробности см. в разделе «Содействие» .

Как мне стать коммиттером Android?

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

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

Подробности см. в разделе «Отправка исправлений» .