В этом документе содержатся ответы на общие вопросы о платформе 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
.
Дополнительные сведения о синхронизации ветвей см. в разделе Инициализация клиента Repo .
Будет ли код из android-latest-release объединен с aosp-main?
Нет, код не будет объединен с веткой aosp-main
, которая с 27 марта 2025 года доступна только для чтения.
Куда загружен код для следующего релиза?
Google помещает код следующего релиза в последнюю публичную ветку релиза и обновляет манифест android-latest-release
чтобы он указывал на эту ветку.
Будет ли мой запрос на изменение выбран из ветки android-latest-release и перенесен во внутренний Gerrit?
После загрузки предлагаемого изменения Google рассмотрит его и, если оно будет принято, добавит его во внутренний Gerrit.
Как я узнаю, что мой запрос на изменение был принят?
Принятые и отобранные изменения будут добавлены в будущую ветку релиза на хосте Android и могут быть синхронизированы с репозиторием с помощью android-latest-release
. Механизма уведомлений о принятии или отклонении предложенного изменения не предусмотрено.
Каков общий рабочий процесс с момента предложения изменения внешним участником до момента его слияния с последней веткой выпуска?
Внешний участник предлагает изменение в
android-latest-release
(при использовании Repo) или в последней ветке релиза, указанной в манифестеandroid-latest-release
(при прямом использовании Git).Google проверяет изменение. Если изменение:
Принятое изменение Google выбирает и объединяет его с внутренней веткой разработки.
Не принято, Google не делает выборочных изменений.
Внешний участник проверяет наличие своих изменений в
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, прежде чем начинать работу. Подробнее см. в разделе «Вклад» .
Как стать коммиттером Android?
В AOSP нет понятия «коммиттер». Все внесенные изменения (включая те, что были сделаны сотрудниками Google) проходят через веб-систему Gerrit, которая является частью процесса разработки Android. Эта система работает в паре с системой управления исходным кодом Git для обеспечения чёткого управления внесенными изменениями.
Назначенный утверждающий должен рассмотреть и утвердить все предлагаемые изменения. Утверждающими обычно являются сотрудники Google, но они несут ответственность за все представленные изменения, независимо от источника.
Подробности смотрите в разделе Отправка исправлений .