Найти тему
Журнал «Код»

Что такое чистый Андроид и зачем он нужен

Там не всё так просто

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

Контекст: что такое Андроид и откуда там грязь

Есть две основные операционные системы для смартфонов — iOS и Android. Первая принадлежит компании Apple и работает только на её устройствах. Вторая создана Google, и её можно использовать на всех остальных устройствах любых производителей. Понятно, что по числу устройств это самая популярная мобильная операционка.

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

Это приводит к тому, что у некоторых производителей в телефонах много «мусора». С ним телефоны могут начать тормозить с первого же дня использования. Поэтому некоторые технически подкованные пользователи хотят себе «чистый Андроид».

Некоторые производители утверждают, что их Андроид чистый. Но это не совсем так: строго говоря, чистый Андроид не стоит ни на одном телефоне. Давайте разберёмся, как такое возможно и что такое «чистый Андроид» на самом деле.

Чистый Андроид — это просто фреймворк для запуска приложений

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

В ядре Linux нет графического интерфейса: ни рабочего стола, ни окон, ни кнопок, ни меню, ни полей ввода. Вместо всего этого там командная строка. Если программе нужны все эти кнопки и поля, она может сама себе их нарисовать.

Разработчики добавили в сборку Андроида специальные графические модули, которые решают простые задачи:

  • нарисовать окно приложения;
  • показать кнопку;
  • сделать окно ввода текста;
  • показать клавиатуру;
  • научить экран правильно передавать нажатия в приложения.

Это и есть чистый Андроид. У него нет своей встроенной графической оболочки с рабочим столом, ярлыками и заставками. Всё это появляется гораздо позже.

Этой сборкой никто не пользуется в чистом виде. Раньше она шла сразу на следующий этап, теперь появился промежуточный — проект Treble.

Если ядро Linux обнаружит серьёзную проблему, то оно прекратит работу и выведет сообщение в текстовом виде, как будто экран телефона — это монитор компьютера. Потому что по сути это Linux, для которого экран телефона ничем не отличается от монитора компьютера
Если ядро Linux обнаружит серьёзную проблему, то оно прекратит работу и выведет сообщение в текстовом виде, как будто экран телефона — это монитор компьютера. Потому что по сути это Linux, для которого экран телефона ничем не отличается от монитора компьютера

Проблема с Андроидом и поддержкой

Представьте, что вы производитель смартфона на Андроиде.

У вас в линейке 30 устройств, выпущенных за последние 6 лет. В них используется 10 разных процессоров, 5 радиомодулей и 10 камер. Всё это частично разработано у вас, частично куплено у других поставщиков.

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

А что делать со старыми смартфонами? Если мы хотим, чтобы наши старые устройства поддерживали новый Андроид, нужно писать новые драйверы и накатывать новые версии нашего софта. Но стоит ли это того?

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

Очевидно, что это какая-то ерунда. Но придумали решение.

-3

Проект Treble

В 2017 году запустился Project Treble. Он должен помочь большинству новых устройств получать обновления в течение четырёх лет после выхода, не особо нагружая производителей.

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

Когда Google выпускает очередную сборку Андроида, инженеры Treble добавляют в неё поддержку разного нового железа — беспроводных модулей, модемов, датчиков и всего остального. Получается такая универсальная авоська: чистый фреймворк Андроида плюс куча вспомогательного софта. Эта версия называется CAF (история названия долгая, просто запомните).

Когда всё готово, CAF-сборка попадает обратно в Google. Там причесывают перышки и собирают единую глобальную сборку — GSI (Generic System Images). На основе этой сборки и происходит выпуск всех версий Андроида, которые долетают до наших смартфонов.

-4

AOSP — универсальный Андроид по версии компании Google

А-а-а, это ещё не последняя сборка.

Google берет свой же Generic System Image и собирает поверх него ещё одну версию Андроида — AOSP. Ее исходный код выкладывают в общий доступ.

AOSP — это аббревиатура от Android Open Source Project (проект Андроида с открытым исходным кодом). Его может скачать, скомпилировать и установить себе кто угодно, но в нём нет:

  • синхронизации данных;
  • возможностей тонкой настройки системы;
  • некоторых дополнительных сервисов.

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

Зато здесь впервые появляется «лончер» — программа, которая отвечает за графический интерфейс: иконки, рабочий стол, уведомления, панель настроек и переключение между приложениями.

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

Интерфейс одной из старых версий AOSP
Интерфейс одной из старых версий AOSP

Pixel Experience — Андроид для телефонов Google

Чтобы дать пользователям всю мощь Андроида, компания Google решила сделать собственный смартфон. Сначала линейку называли Nexus, сейчас — Pixel.

Google не собирают смартфоны сами, а отдают это на аутсорс кому-то из передовых производителей. Раньше их собирали HTC и LG, сейчас этим занимается Foxconn — тот завод, на котором собирают Айфоны. Всякий раз Google старается воплотить в своих смартфонах все свежие технологии и железо последнего поколения. Потом проходит 2–3 года, выходит новое поколение железа, и по новой.

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

Для этого Google делает свою версию Андроида, которую принято называть Pixel Experience. В ней собраны все передовые решения компании, и у этих телефонов самый долгий цикл обновлений. Телефоны стали популярными, и в сети появилась отдельная команда, которая делает прошивки с этой системой под другие телефоны.

По мнению некоторых, именно эта версия считается чистым Андроидом, потому что её делает сама компания Google. Но как тогда быть с AOSP, который тоже делает Google?

-6

Лаунчер Google Pixel
Лаунчер Google Pixel

Интерфейс поиска в Google Pixel 4
Интерфейс поиска в Google Pixel 4

Весь остальной Андроид

Кроме предыдущих двух направлений Андроида, есть ещё третье — когда компании-производители телефонов берут GSI и делают на её основе что-то своё:

  • допиливают драйверы и софт под свои телефоны;
  • добавляют приложения;
  • ставят свой лончер;
  • добавляют новые возможности (например, жесты), которых не было в оригинальном Андроиде;
  • добавляют поддержку оборудования (например, пера);
  • оптимизируют всё во имя быстродействия или экономии энергии.

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

Нужен ли «чистый Андроид?»

С одной стороны, чистый Андроид нужен: там нет никакого лишнего софта и всё должно работать быстрее. А ещё Google не может собирать твои данные (в теории).

С другой стороны, чистый Андроид не нужен, потому что в нём нет оптимизации под конкретное железо. Ну и поставить его — тоже задачка.

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

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

И что мне с этим делать?

Если у вас Айфон — переходите на Андроид, у нас можно платить телефоном в России.

Если у вас старый телефон или планшет на Андроиде, можно установить на него AOSP и посмотреть, каков он — чистый Андроид. Приятного мало, но можно ради науки.

Если хотите потыкать в Андроид на компьютере, установите любую виртуальную машину с соответствующим образом. Их в интернете вагон, всё отлично работает на компьютере.

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

С подпиской рекламы не будет

Подключите Дзен Про за 159 ₽ в месяц