Сейчас будет текст о мире мобильной разработки и операционных систем. Это полезно для общего развития, но в первую очередь — тем, кто планирует разрабатывать приложения под самую популярную мобильную операционную систему.
Контекст: что такое Андроид и откуда там грязь
Есть две основные операционные системы для смартфонов — iOS и Android. Первая принадлежит компании Apple и работает только на её устройствах. Вторая создана Google, и её можно использовать на всех остальных устройствах любых производителей. Понятно, что по числу устройств это самая популярная мобильная операционка.
Каждый производитель лицензирует Android для себя и пишет под него свои расширения: настраивает внешний вид окон, ставит какие-то свои панели управления, добавляет новые возможности и т. д. Эти надстройки дают производителям конкурентное преимущество: без них все телефоны работали бы одинаково, покупать один вместо другого не было бы смысла. А так каждый производитель пытается изобрести что-то своё.
Это приводит к тому, что у некоторых производителей в телефонах много «мусора». С ним телефоны могут начать тормозить с первого же дня использования. Поэтому некоторые технически подкованные пользователи хотят себе «чистый Андроид».
Некоторые производители утверждают, что их Андроид чистый. Но это не совсем так: строго говоря, чистый Андроид не стоит ни на одном телефоне. Давайте разберёмся, как такое возможно и что такое «чистый Андроид» на самом деле.
Чистый Андроид — это просто фреймворк для запуска приложений
Когда компания Google в 2008 году решила сделать операционную систему для мобильных устройств, то за основу она взяла ядро Linux.
В ядре Linux нет графического интерфейса: ни рабочего стола, ни окон, ни кнопок, ни меню, ни полей ввода. Вместо всего этого там командная строка. Если программе нужны все эти кнопки и поля, она может сама себе их нарисовать.
Разработчики добавили в сборку Андроида специальные графические модули, которые решают простые задачи:
- нарисовать окно приложения;
- показать кнопку;
- сделать окно ввода текста;
- показать клавиатуру;
- научить экран правильно передавать нажатия в приложения.
👉 Это и есть чистый Андроид. У него нет своей встроенной графической оболочки с рабочим столом, ярлыками и заставками. Всё это появляется гораздо позже.
Этой сборкой никто не пользуется в чистом виде. Раньше она шла сразу на следующий этап, теперь появился промежуточный — проект Treble.
Проблема с Андроидом и поддержкой
Представьте, что вы производитель смартфона на Андроиде.
У вас в линейке 30 устройств, выпущенных за последние 6 лет. В них используется 10 разных процессоров, 5 радиомодулей и 10 камер. Всё это частично разработано у вас, частично куплено у других поставщиков.
Когда вы делали все эти устройства, вы писали под всё драйверы. Пять лет назад, например, был Android 10, и все смартфоны того времени получили драйверы на эту версию. Через какое-то время вышел Android 11, и все смартфоны того года получили новые драйверы. И так каждый год для новых устройств.
А что делать со старыми смартфонами? Если мы хотим, чтобы наши старые устройства поддерживали новый Андроид, нужно писать новые драйверы и накатывать новые версии нашего софта. Но стоит ли это того?
- Если поддерживать старые устройства, нужно проделать кучу работы. А выхлоп непонятен: ну накатишь ты на старые смартфоны новую операционку, и что? Теперь этим людям не нужно покупать новый смартфон, это тебе же минус.
- Если не поддерживать, то клиенты будут недовольны. И в следующий раз они купят телефон у того производителя, который обещает поддержку на много лет.
Очевидно, что это какая-то ерунда. Но придумали решение.
Проект Treble
В 2017 году запустился Project Treble. Он должен помочь большинству новых устройств получать обновления в течение четырёх лет после выхода, не особо нагружая производителей.
Основную роль в проекте играет Qualcomm — один из крупнейших производителей процессоров для мобильных устройств. Он заинтересован, чтобы все закупали у него процессоры, поэтому разворачивает всю эту программу поддержки.
Когда Google выпускает очередную сборку Андроида, инженеры Treble добавляют в неё поддержку разного нового железа — беспроводных модулей, модемов, датчиков и всего остального. Получается такая универсальная авоська: чистый фреймворк Андроида плюс куча вспомогательного софта. Эта версия называется CAF (история названия долгая, просто запомните).
Когда всё готово, CAF-сборка попадает обратно в Google. Там причесывают перышки и собирают единую глобальную сборку — GSI (Generic System Images). На основе этой сборки и происходит выпуск всех версий Андроида, которые долетают до наших смартфонов.
AOSP — универсальный Андроид по версии компании Google
А-а-а, это ещё не последняя сборка.
Google берет свой же Generic System Image и собирает поверх него ещё одну версию Андроида — AOSP. Ее исходный код выкладывают в общий доступ.
AOSP — это аббревиатура от Android Open Source Project (проект Андроида с открытым исходным кодом). Его может скачать, скомпилировать и установить себе кто угодно, но в нём нет:
- синхронизации данных;
- возможностей тонкой настройки системы;
- голосового поиска;
- некоторых дополнительных сервисов.
А главное — эта сборка не заточена под конкретное устройство и в ней нет сервисов Google. Это значит, что все приложения нужно ставить из сторонних источников или закачивать на телефон самостоятельно в виде файлов. А ещё эта сборка не покажет самые быстрые результаты работы на телефоне — для этого нужно оптимизировать софт под конкретное железо.
Зато здесь впервые появляется «лончер» — программа, которая отвечает за графический интерфейс: иконки, рабочий стол, уведомления, панель настроек и переключение между приложениями.
AOSP — это как раз то, что принято называть чистым Андроидом. Есть любители, которые его используют, но для повседневной работы он подходит мало.
Pixel Experience — Андроид для телефонов Google
Чтобы дать пользователям всю мощь Андроида, компания Google решила сделать собственный смартфон. Сначала линейку называли Nexus, сейчас — Pixel.
Google не собирают смартфоны сами, а отдают это на аутсорс кому-то из передовых производителей. Раньше их собирали HTC и LG, сейчас этим занимается Foxconn — тот завод, на котором собирают Айфоны. Всякий раз Google старается воплотить в своих смартфонах все свежие технологии и железо последнего поколения. Потом проходит 2–3 года, выходит новое поколение железа, и по новой.
Софт под эти смартфоны Google делают сами. Идея в том, чтобы заточить сборку GSI под конкретный телефон и реализовать весь потенциал операционной системы.
Для этого Google делает свою версию Андроида, которую принято называть Pixel Experience. В ней собраны все передовые решения компании, и у этих телефонов самый долгий цикл обновлений. Телефоны стали популярными, и в сети появилась отдельная команда, которая делает прошивки с этой системой под другие телефоны.
По мнению некоторых, именно эта версия считается чистым Андроидом, потому что её делает сама компания Google. Но как тогда быть с AOSP, который тоже делает Google?
Весь остальной Андроид
Кроме предыдущих двух направлений Андроида, есть ещё третье — когда компании-производители телефонов берут GSI и делают на её основе что-то своё:
- допиливают драйверы и софт под свои телефоны;
- добавляют приложения;
- ставят свой лончер;
- добавляют новые возможности (например, жесты), которых не было в оригинальном Андроиде;
- добавляют поддержку оборудования (например, пера);
- оптимизируют всё во имя быстродействия или экономии энергии.
Это тоже Андроид, но заточенный под конкретного производителя и модель устройства. Это точно не чистый Андроид, но иногда он работает быстрее, чем AOSP, установленный на том же телефоне.
Нужен ли «чистый Андроид?»
С одной стороны, чистый Андроид нужен: там нет никакого лишнего софта и всё должно работать быстрее. А ещё Google не может собирать твои данные (в теории).
С другой стороны, чистый Андроид не нужен, потому что в нём нет оптимизации под конкретное железо. Ну и поставить его — тоже задачка.
В обычной жизни людям важнее, чтобы в телефоне были нужные им функции, а не чтобы какое-то действие происходило на микросекунду быстрее. Поэтому не заморачивайтесь и пользуйтесь стандартной прошивкой Андроида от производителя.
С другой стороны, если вы хакер или у вас на смартфоне развёрнут веб-сервер или ферма для майнинга, то для вас чистый Андроид может быть полезен.
И что мне с этим делать?
Если у вас Айфон — переходите на Андроид, у нас можно платить телефоном в России.
Если у вас старый телефон или планшет на Андроиде, можно установить на него AOSP и посмотреть, каков он — чистый Андроид. Приятного мало, но можно ради науки.
Если хотите потыкать в Андроид на компьютере, установите любую виртуальную машину с соответствующим образом. Их в интернете вагон, всё отлично работает на компьютере.
Если хотите писать приложения на Android, будьте готовы изучать Java и приходите на курс Практикума, баннер ниже.