Этот документ содержит ответы на общие вопросы о платформе Android с открытым исходным кодом (AOSP).
Вопросы с открытым исходным кодом
Почему 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) имеет соответствующую ветвь в дереве открытого исходного кода. Самая последняя ветка считается текущей стабильной версией ветки . Это та ветка, которую производители портируют на свои устройства. Эта ветка всегда доступна для выпуска.
В то же время существует текущая экспериментальная ветвь , в которой разрабатываются спекулятивные разработки, такие как крупные функции следующего поколения. Исправления ошибок и другие дополнения могут быть включены в текущую стабильную ветку из экспериментальной ветки, если это необходимо.
Наконец, Google работает над следующей версией платформы Android одновременно с разработкой флагманского устройства. Эта ветка по мере необходимости извлекает изменения из экспериментальной и стабильной веток.
Подробные сведения о строках кода, ветвях и выпусках см. в разделе Управление программным обеспечением Android .
Почему некоторые части Android разрабатываются частным образом?
Обычно вывод устройства на рынок занимает больше года. И, конечно же, производители устройств хотят поставлять новейшее программное обеспечение, какое только могут. Между тем, разработчики не хотят постоянно отслеживать новые версии платформы при написании приложений. Обе группы испытывают напряжение между доставкой продукции и нежеланием отставать.
Чтобы решить эту проблему, некоторые части следующей версии Android, включая API основной платформы, разрабатываются в частной ветке. Эти API составляют следующую версию Android. Наша цель — сосредоточить внимание на текущей стабильной версии исходного кода Android, пока мы создаем следующую версию платформы. Это позволяет разработчикам и OEM-производителям использовать одну версию, не отслеживая незавершенную будущую работу, просто чтобы не отставать. Другие части системы Android, не связанные с совместимостью приложений, разрабатываются открыто. Мы намерены со временем перевести больше этих частей в открытую разработку.
Когда выпускаются версии исходного кода?
Когда они будут готовы. Выпуск исходного кода — довольно сложный процесс. Некоторые части 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, но одни и те же утверждающие несут ответственность за все отправленные материалы, независимо от их происхождения.
Подробности см. в разделе «Отправка исправлений» .