Компания Google начиная со следующей недели переходит на новую модель разработки платформы Android, в соответствии с которой релизы будут развиваться за закрытыми дверями, без публикации в открытом доступе промежуточных результатов разработки и без публичного рецензирования изменений в отдельных компонентах. Платформа продолжит быть открытой и распространяться под лицензией Apache 2.0, но исходный код в репозитории AOSP (Android Open Source Project) будет размещаться только после готовности релизов.
В настоящее время какие-то части платформы, такие как Blutooth-стек, развиваются публично, а какие-то вначале создаются во внутреннем репозитории Google и становятся доступны только при публикации кода очередного релиза. Публикация кода с новыми API зависит от их пригодности для тестирования – для некоторых версий Android код реализаций API публиковался до релиза, а для некоторых – после. Кроме Google доступ к внутренней ветке имеют производители устройств, подписавшие лицензионное соглашение GMS (Google Mobile Services).
Компания Google решила отказаться от практикуемой до сих пор смешанной модели и в будущем перенесёт разработку всех компонентов Android в свою внутреннюю ветку. Вместо двух веток – открытой и внутренней, при разработке будет использоваться только внутренняя ветка, код из которой станет открываться в привязке к релизам.
После перехода на модель разработки с одной активной веткой для сторонних участников код платформы по-прежнему останется доступен, но уже не получится непрерывно отслеживать разработку отдельных компонентов Android, код которых будет размещаться не по мере принятия патчей, а только после готовности релиза. Среди компонентов, разработка которых будет переведена с открытой на внутреннюю ветку упоминаются система сборки, движок обновлений, Blutooth-стек, фреймворк виртуализации и конфигурация SELinux.
Предполагается, что изменение не повлияет на разработчиков производных продуктов и прошивок, основанных на AOSP, так как подобные сборки, как правило, формируются на основе определённых тегов или веток в репозитории, а не используют находящуюся в разработке нестабильную ветку “main”. Затруднения могут возникнуть у разработчиков, заинтересованных в отслеживании изменений – вместо анализа непрерывного потока изменений придётся изучать целиком все изменения в релизе. Усложнится и участие сторонних разработчиков, желающих вносить свой вклад в проект, так как состояние кодовой базы в AOSP будет сильно отставать от ветки, находящейся в разработке.
Целью изменения называется желание упростить процесс разработки Android. Наличие двух веток, при том, что часть компонентов развивается в одной ветке, а часть в другой, приводит к тому, что по мере разработки релиза в ветках накапливаются различия и Google приходится тратить ресурсы на синхронизацию изменений и слияние патчей между открытой и внутренней ветками. Основная работа по развитию API ведётся во внутренней ветке и открытая ветка часто сильно отстаёт от неё, что приводит к возникновению конфликтов при переносе во внутреннюю ветку изменений из компонентов, развиваемых в открытой ветке.