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

Этот документ содержит ответы на общие вопросы о платформе 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, но одни и те же утверждающие несут ответственность за все отправленные материалы, независимо от их происхождения.

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

Совместимость

Что такое совместимость с Android?

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

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

Какова роль Google Play в совместимости?

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

Какие типы устройств могут быть совместимы с Android?

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

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

CDD продолжает развиваться, отражая рыночные реалии. Например, версия 1.6 CDD поддерживает только сотовые телефоны. Но версия 2.1 позволяет устройствам не использовать телефонное оборудование, обеспечивая совместимость устройств, не являющихся телефонами, таких как музыкальные плееры в виде планшетов. Внося эти изменения, мы также дополним Google Play, чтобы позволить разработчикам сохранять контроль над тем, где доступны их приложения. Продолжая пример с телефонией, приложение, которое управляет текстовыми SMS-сообщениями, бесполезно для медиаплеера, поэтому Google Play позволяет разработчику ограничить это приложение исключительно телефонными устройствами.

Если мое устройство совместимо, имеет ли оно автоматически доступ к Google Play и брендингу?

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

Если я не производитель, как мне получить Google Play?

Лицензия на Google Play предоставляется только производителям мобильных телефонов, поставляющим устройства. Если у вас есть вопросы по конкретным случаям, обращайтесь по адресу android-partnerships@google.com .

Как получить доступ к приложениям Google для Android, например к Картам?

Приложения Google для Android, такие как, например, YouTube, Карты Google и Gmail, являются ресурсами Google, которые не являются частью Android и лицензируются отдельно. По вопросам, связанным с этими приложениями, обращайтесь по адресу android-partnerships@google.com .

Совместимость обязательна?

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

Сколько стоит сертификация совместимости?

Получить совместимость с Android для устройства можно бесплатно. Пакет тестов совместимости имеет открытый исходный код и доступен каждому для тестирования устройств.

Сколько времени занимает совместимость?

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

Кто определяет определение совместимости?

Google отвечает за общее развитие Android как платформы и продукта, поэтому Google поддерживает документ определения совместимости (CDD) для каждой версии. Мы разрабатываем CDD для новой версии Android после консультаций с различными OEM-производителями, которые вносят свой вклад.

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

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

Может ли устройство иметь другой пользовательский интерфейс и при этом оставаться совместимым?

Программа совместимости Android определяет, может ли устройство запускать сторонние приложения. Компоненты пользовательского интерфейса, поставляемые с устройством (например, главный экран, номеронабиратель и цветовая схема), обычно не оказывают большого влияния на сторонние приложения. Таким образом, производители устройств могут свободно настраивать пользовательский интерфейс. Документ определения совместимости ограничивает степень, в которой OEM-производителям разрешено изменять пользовательский интерфейс системы в тех областях, которые влияют на сторонние приложения.

Когда будут выпущены определения совместимости для новых версий Android?

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

Как проверяются заявления производителей устройств о совместимости?

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

Что произойдет, если позже обнаружится, что устройство, заявляющее о совместимости, имеет проблемы с совместимостью?

Обычно отношения Google с лицензиатами Google Play позволяют нам просить производителя устройства выпустить обновленные образы системы, устраняющие проблемы.

Набор тестов совместимости (CTS)

Какова цель CTS?

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

Какие вещи проверяет CTS?

В настоящее время CTS проверяет, что все поддерживаемые API строгой типизации Android присутствуют и работают правильно. Он также тестирует другое поведение системы, не связанное с API, например жизненный цикл и производительность приложения. Мы планируем добавить поддержку в будущих версиях CTS для тестирования программных API, таких как намерения.

Будут ли отчеты CTS обнародованы?

Да. Хотя в настоящее время это не реализовано, Google намерен предоставить OEM-производителям веб-инструменты самообслуживания для публикации отчетов CTS, чтобы каждый мог их просмотреть. Производители могут делиться отчетами CTS с любой широкой аудиторией.

Как лицензируется CTS?

CTS лицензируется по той же лицензии Apache Software License 2.0, которую использует большая часть Android.

Принимает ли CTS взносы?

Да, пожалуйста! AOSP принимает вклады в улучшение CTS так же, как и в отношении любого другого компонента. Фактически, улучшение охвата и качества тестовых случаев CTS — один из лучших способов помочь Android.

Может ли кто-нибудь использовать CTS на существующих устройствах?

Документ определения совместимости требует, чтобы на совместимых устройствах была реализована утилита отладки adb . Это означает, что любое совместимое устройство (в том числе доступное в розничной продаже) должно иметь возможность запускать тесты CTS.

Кодеки проверены CTS?

Да. Все обязательные кодеки проверены CTS.