Google делает Android более закрытым?

Примечание редакции Mobile-review.com. Мы подбираем материалы в раздел «Мнение», чтобы показать то, как воспринимают рынок компании в других странах. Мнения в таких материалах зачастую не совпадают со взглядами нашей редакции, но дают понимание рынка, его медийной составляющей.

По материалам: Android Authority

Вне зависимости от производителя у всех Android-смартфонов есть одна общая особенность – базовое ПО. Компании-производители могут очень серьезно перерабатывать то, как выглядит и воспринимается ОС Android на их устройствах, но «под капотом» ключевая функциональность системы берется из одного и того же открытого источника под названием Android Open Source Project. И вот спустя 16 лет Google вносит серьезные изменения в то, как будет развиваться версия Android с открытым исходным кодом, с целью упорядочить ее разработку.

Android Open Source Project, или коротко AOSP, это операционная система, которую Google выпускает под лицензией Apache 2.0. Apache 2.0 – это программная лицензия, которая позволяет свободно использовать и распространять или модифицировать и распространять операционные системы, основанные на AOSP, без необходимости платить какие-либо лицензионные отчисления или публиковать исходный код. Эта лицензия разрешительного типа упростила широкое распространение AOSP, что привело к созданию кастомизированных версий, таких как оболочка One UI от Samsung.

Как и многие другие проекты с открытым исходным кодом, AOSP допускает использование кода от сторонних разработчиков. Однако Google сама осуществляет большую часть разработки AOSP, поскольку «относится к проекту Android как к полномасштабному циклу разработки продукта», чтобы «обеспечить жизнеспособность Android как платформы и как проекта с открытым исходным кодом». Поэтому последнее слово в том, какой код может быть включен в AOSP и когда будет выпущен исходный код новой версии, остается за Google. Компания сама разрабатывает компоненты AOSP, чтобы позволить «разработчикам и OEM-производителям использовать одну версию [Android], не отслеживая незавершенную будущую работу, просто чтобы не отставать».

Скриншот лендинговой страницы Android Open Source Project.

Для того, чтобы сохранять баланс между открытостью AOSP и своей стратегией разработки продуктов, Google поддерживает два основных направления Android: общедоступный AOSP и то, что разрабатывается внутри компании. AOSP доступен всем, в то время как круг доступа к внутреннему направлению Google ограничен компаниями, имеющими лицензионное соглашение GMS (Google Mobile Services).

Хотя некоторые компоненты ОС, такие как стек Bluetooth в Android, относятся к общедоступному направлению AOSP, большинство компонентов, включая основной фреймворк ОС Android, разрабатываются внутри Google. И вот компания Google подтвердила изданию Android Authority, что вскоре перенесет всю разработку ОС Android в свое внутреннее направление, что должно упростить процесс разработки.

Поскольку Google разрабатывает большие части Android в рамках своего внутреннего направления, общедоступное направление AOSP зачастую сильно отстает от того, что доступно в индивидуальном порядке. Эта разница очевидна при сравнении доступности функций и API в чистой сборке AOSP и в последней бета-версии Android 16 от Google, которая была создана внутри компании. Хотя переход к магистральной модели разработки (Trunk) сгладил это несоответствие, оно сохраняется и продолжает создавать проблемы для Google.

Это несоответствие заставляет Google тратить время и усилия на слияние патчей между общедоступным направлением AOSP и своим внутренним. Из-за различий между ними часто возникают конфликты слияния. Возьмем, к примеру, вот этот патч, который включает функциональность экранной лупы для панели навигации и клавиатуры. Патч вводит новую настройку доступности, которая помещается в конец списка настроек доступности. Это создает конфликт слияния, поскольку длина списка различается между AOSP и внутренней разработкой Google. Хотя исправить эту конкретную проблему просто, другие многочисленные патчи AOSP вызывают аналогичные конфликты слияния при интеграции во внутреннюю разработку Google.

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

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

Что это означает для нас?

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

Изменится частота выпуска общедоступного исходного кода для определенных компонентов Android. Некоторые компоненты, например, система сборки, механизм обновления, стек Bluetooth, фреймворк виртуализации и конфигурация SELinux, в данный момент являются AOSP-first, то есть полностью разрабатываются открыто. Большинство компонентов Android, такие как основной фреймворк, в основном разрабатываются внутри компании, хотя некоторые функции, такие как API разблокированной области хранения, по-прежнему разрабатываются в рамках AOSP.

Скриншот AOSP Gerrit, используемой Google системы проверки кода

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

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

Последствия для большинства разработчиков также будут минимальными. Разработчиков приложений они не затронут, поскольку изменения связаны только с разработкой платформы. Для разработчиков платформ, включая тех, кто создает кастомные сборки, в основном также мало что изменится, поскольку их работа обычно базируется на определенных тегах или ветках релизов, а не на основной ветке AOSP. Также и компании, выпускающие форки AOSP, редко используют основную ветку AOSP из-за свойственной ей нестабильности.

Lineage OS 22.2 базируется на релизе AOSP android-15.0.0_r20, который содержит все обновления мартовского ежеквартального релиза

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

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

Что в итоге? Изменения выглядят оправданными, даже если кажутся ухудшающими имидж Google. У компании было три варианта: сохранить статус-кво, перенести всю разработку вовнутрь или сделать всю разработку открытой. Учитывая причины, которые назвала Google для обоснования внутренней разработки Android и ее недавний переход к магистральной разработке (Trunk), абсолютно понятно ее решение объединить работу в рамках единого внутреннего направления, оптимизируя как разработку ОС, так и выпуск исходного кода.

Продолжаем следить за новостями от Google.

[email protected]
наверх