Часто задаваемые вопросы

На этой странице представлены ответы на некоторые часто задаваемые вопросы (FAQ).

Открытый исходный код

Что такое проект Android с открытым исходным кодом?

Android Open Source Project (AOSP) относится к людям, процессам и исходному коду, из которых состоит Android.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Дополнительные сведения о кодовых линиях, ответвлениях и выпусках см. в разделе Управление кодом AOSP .

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

В проекте с открытым исходным кодом Android на самом деле нет понятия коммиттера . Все материалы (в том числе созданные сотрудниками 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 Maps и Gmail, являются собственностью Google, не являющейся частью Android и лицензируются отдельно. По вопросам, связанным с этими приложениями, обращайтесь по адресу android-partnerships@google.com .

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

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

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

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

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

Процесс автоматизирован. Compatibility Test Suite создает отчет, который может быть предоставлен 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 всегда выпускаются после первого устройства. Однако там, где это целесообразно, мы выпускаем черновые версии компакт-дисков.

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

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

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

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

Вернуться к вершине

Набор тестов совместимости

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

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

Какие вещи тестирует CTS?

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

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

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

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

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

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

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

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

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

Проверяются ли кодеки CTS?

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

Вернуться к вершине