Управление программным обеспечением Android

Android Open Source Project (AOSP) поддерживает полный программный стек, который может быть перенесен OEM-производителями и другими разработчиками устройств и запущен на их собственном оборудовании. Чтобы поддерживать качество Android, Google предоставил штатных инженеров, менеджеров по продуктам, дизайнеров пользовательских интерфейсов, тестеров по обеспечению качества и всех других должностей, необходимых для вывода современных устройств на рынок.

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

Управление кодом AOSP

На приведенной ниже диаграмме показаны концепции управления кодом и выпусками AOSP.

диаграмма кодовой строки
Рисунок 1. Код и выпуски AOSP
  1. В любой момент существует последняя версия платформы Android. Обычно это принимает форму ветки на дереве.
  2. Создатели устройств и участники работают с текущим последним выпуском, исправляя ошибки, запуская новые устройства, экспериментируя с новыми функциями и т. Д.
  3. Параллельно Google внутренне работает над следующей версией платформы и фреймворка Android в соответствии с потребностями и целями продукта. Мы разрабатываем следующую версию Android, работая с партнером по разработке флагманского устройства, спецификации которого выбраны для продвижения Android в том направлении, в котором, по нашему мнению, он должен двигаться.
  4. Когда n + 1-я версия готова, она публикуется в дереве общедоступных исходных кодов и становится новым последним выпуском.

Условия и оговорки

  • Релиз соответствует официальной версии платформы Android, например 1.5 или 8.1. Выпуск платформы соответствует версии в поле SdkVersion файлов AndroidManifest.xml и определен в frameworks/base/api в дереве исходного кода.
  • Восходящий проект - это проект с открытым исходным кодом, из которого стек Android извлекает код. Помимо таких проектов, как ядро ​​Linux и WebKit, мы продолжаем перенос некоторых полуавтономных проектов Android, таких как ART, инструменты Android SDK и Bionic, для работы в качестве восходящих проектов. Как правило, эти проекты полностью разрабатываются в публичном дереве. В некоторых восходящих проектах разработчики вносят непосредственный вклад в восходящий проект. Для получения дополнительной информации см. Upstream проекты . В обоих случаях моментальные снимки периодически переносятся в выпуски.
  • Строка кода выпуска (которая может состоять из нескольких веток в git) всегда считается единственным каноническим исходным кодом для данной версии платформы Android. OEM-производители и другие группы, создающие устройства, должны получать только из ветки выпуска.
  • Экспериментальные кодовые строки созданы, чтобы фиксировать изменения сообщества, чтобы их можно было повторять с прицелом на стабильность.
  • Изменения, которые оказались стабильными, в конечном итоге переносятся в ветку выпуска. Это относится только к исправлениям ошибок, улучшениям приложений и другим изменениям, которые не влияют на API платформы.
  • При необходимости изменения переносятся в ветки выпуска из исходных проектов (включая исходные проекты Android).
  • Версия n + 1 (следующая основная версия API фреймворка и платформы) разрабатывается внутри компании Google. Для получения дополнительной информации см. Частные кодовые строки .
  • При необходимости изменения переносятся из исходной, выпускной и экспериментальной ветвей в частную ветвь Google.
  • Когда API-интерфейсы платформы для следующей версии стабилизированы и полностью протестированы, Google сокращает выпуск следующей версии платформы (в частности, новой SdkVersion ). Это соответствует внутренней кодовой строке, которая становится общедоступной ветвью выпуска, и новой текущей кодовой строке платформы.
  • Когда вырезается новая версия платформы, одновременно создается соответствующая экспериментальная кодовая строка.

Частные кодовые строки

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

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

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

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