Взгляд на обновления Android с точки зрения разработчика
Кода без ошибок не бывает. Питер Нортон говорил: «Идеальному коду место в музее: там ценят всякие древности». А для исправления ошибок – существуют обновления.
Хотелось бы поделиться своим взглядом на обновления с точки зрения разработчика рантайма Android. Часть нашей большой команды находится в России, я занимаюсь подсистемой Java, оптимизацией виртуальной машины и исправлением недочетов по мелочам. Зона нашей ответственности – всё, что выше ядра и ниже приложений. Мы хотим добиваться максимальной эффективности приложений, в том числе — энергоэффективности. Это то подразделение Samsung, которое не видно пользователю, но очень важное, ведь ошибка в этом слое ведет к неправильному поведению многих приложений.
Сегодня мы поговорим о том, как устроено обновление системы Android на текущий момент, каково мнение вендоров на этот счёт, и какие новые тенденции наблюдаются на ближайшие годы. А также советы пользователям: как часто обновляться, какие патчи ставить и как помочь разработчикам быстрее находить баги.
Источник — xkcd
Как обновляться
Есть проблема, которая заключается в том, что большое количество пользователей, как оказалось, вообще не обновляют свой телефон после покупки. Многие ошибки не случились бы, если бы пользователи вовремя обновляли свой телефон. Несколько лет назад обновления ставились не так часто, надо было ставить много галочек, периодически нажимать кнопку апдейта. Сейчас в современных версиях Android все достаточно просто, достаточно поставить галочку при покупке телефона, и оно будет обновляться.
Если апдейты выключить, то мы не получаем исправления критических ошибок. Да, могут обновиться отдельные приложения через Google Play, но серьёзные ошибки, особенно в безопасности, остаются неисправленными, а часть людей, которые не нажали эту кнопку или не знают, как это сделать, продолжают жаловаться на ошибки в приложениях.
Также, достаточно интересен момент, как вендор может повлиять на использование только самых новых образов ОС. Например, в устройствах Samsung за последние несколько лет есть такая фича, как Rollback Prevention: хардверные фьюзы, которые кодируют минимально приемлемые версии ОС. В старых версиях могут содержаться известные уязвимости, поэтому просто так старую операционку вы не загрузите на телефон.
Обновления в корпоративной среде

На B2B рынке есть свои особенности. Там обновляться можно только по рекомендации и под чутким руководством IT и ИБ департаментов. Корпоративным, пользователям нужно внимательно прислушиваться к рекомендациям IT-служб, а IT-службам использовать решения, позволяющие минимизировать риски. Например, Samsung Knox E-FOTA.
Там функционал такой:
- Выборочное обновление определённого списка устройств
- Контроль списка используемых в компании прошивок
- Выбор времени для обновления, согласно графику работы
Как будут выглядеть обновления в будущем
Сейчас идет тенденция на модуляризацию Android. В долгосрочных перспективах, Google ведет разработку новой операционной системы Fuchsia, она ещё достаточно сырая, но принципы, заложенные там, уже потихоньку переходят в Android. Одна из вещей – это модуляризация. Из монолитной операционной системы выделяются некоторые компоненты, которые могут обновляться независимо, через Google Play, точно так же, как приложения. Google пошла на этот шаг, поскольку их тоже не устраивает ситуация, когда люди не ставят обновления, плюс они пытаются уменьшить фрагментацию своих устройств, чтобы компонента была меньше завязана на вендора и больше на Google. Рядовой пользователь не знает, что такое Android Runtime, и говорить «Не хотели бы вы скачать новую версию Android Runtime?» выглядит немножко глупо. Поэтому Google внедряет систему невидимого апдейта. Она в принципе существует давно, например для GMS (Google Mobile Services), эта система основана на плагинах, и там плагины обновляются невидимым образом. Такой же принцип сейчас Google внедряет и для базовых компонентов Android. То есть в какой-то момент мы получим операционную систему, которая будет редко обновлять ядро, но по факту она будет обновляться часто в своих подсистемах. Даже будет не нужна перезагрузка телефона. Сейчас переходный период. У монолитной системы есть плюсы, есть минусы (вспоминаем полемику Торвальдса и Таненбаума 27-летней давности), но сейчас Google пошёл к микроядерной архитектуре и независимому обновлению компонентов.
Девелоперы приложений хотели бы иметь стабильную систему и меньшую степень фрагментации. Но не всегда это плюс для производителей телефонов, поскольку уменьшение фрагментации ведет к меньшей дифференциации, поскольку мы уже не можем внедрять новые оптимизации в этот компонент в случае, если обновление происходит из Google Play. Это другая сторона медали. А пользователь в скором времени будет освобожден от необходимости думать о том, нужно ли ему обновить тот или иной компонент. В дальнейшем Google сделает систему такой, что если вы покупаете телефон и подключаете Google Play, то вы автоматически подписываетесь на все обновления.
Как помочь разработчикам
Очень важен фидбек от пользователей, нужно ставить галочку, чтобы автоматически отсылать его. Какие-то проблемы могут быть решены просто при помощи небольшого обновления операционной системы. На основе фидбека Samsung решает, что же именно нужно исправлять и чем пользователи недовольны, например, отслеживает время старта приложения – конечно, если человек согласился отсылать эти данные и поставил соответствующую галочку.
Итак, подводя итог, что мы, как разработчики, ждем от пользователя:
- Обязательно ставить обновления безопасности, и делать это сразу
- Отправлять фидбек и не стесняться сообщать о том, что что-то не работает
- Если вы корпоративный пользователь, то следовать регламенту, принятому в вашей компании
Как обновляются приложения для Android и как это настроить

Пару недель назад он сделал приложение «Схема метро» для Москвы и добавил его в Google Play. За это время пользователи оставили несколько комментариев – попросили добавить карты Петербурга и Красноярска. Федор с энтузиазмом занялся делом и уже через три дня добавил новые схемы. Затем он загрузил обновленное приложение в Google Play, описал изменения и сделал пометку, что это следующая версия – 2.0.

Изменения в приложении версии 2.0, скриншот из Google Play
Если те, кто не устанавливал это приложение раньше, попробуют его скачать, то они загрузят версию 2.0 – с картами Москвы, Петербурга и Красноярска.
Те, кто устанавливал первую версию, скачать приложение не смогут – оно уже установлено на их устройствах. Чтобы не удалять приложение и не загружать еще раз, в Andoid есть возможность обновления. Во время обновления следующая версия приложения заменяет предыдущую, а все данные (настройки, файлы) остаются.
Приложения обновляются двумя способами:
- Вручную – каждое приложение придется обновлять самостоятельно;
- Автоматически – все приложения обновляются без вашего участия. Такой способ выбран изначально.
Если не отключить автоматическое обновление, все приложения будут обновляться самостоятельно.
На первый взгляд это логично: зачем делать вручную то, что можно делать автоматически. Но не спешим с выводами, а лучше вернемся к Федору.
Через некоторое время он обновил приложение до версии 20.1.15: добавил схемы всех городов России и Европы, сделал расчет маршрутов и поменял дизайн. Те, кто обновляет приложения автоматически, об изменениях не знали, – смартфон все сделал без дополнительных вопросов.

Изменения в приложении версии 20.1.15, скриншот из Google Play
Дальше мнения разделились: кто-то в восторге от нового дизайна, а кому-то он не нравится настолько, что не может пользоваться приложением. Федор не может угодить всем, поэтому оставляет новый дизайн. Тем, кому дизайн не нравится, остается либо смириться, либо искать другое приложение.

Поток мнений, скриншот из Google Play
Если к новой версии привыкнуть не получается и аналогов нет, то придется искать установочный файл старой версии в интернете или писать Федору. Но это лотерея: файла может не быть или Федор занят и не отвечает. Кроме этого, придется удалить новую версию со всеми данными и только потом ставить старую версию.
Чтобы такого не случилось, обновляйте приложения вручную: перед обновлением можно почитать список изменений и комментарии, чтобы решить, обновляться или нет.
Почему после обновления до Android 9.0 или Android 10 приложение не работает должным образом?
Если приложение перестает работать или не работает должным образом после обновления до Android 9.0 (Pie) или Android 10, вам следует удалить приложение, а затем переустановить его.
Если проблема не была устранена, скорее всего, она будет решена после установки следующего обновления. После этого он будет оптимизирован для новой версии программного обеспечения Android, работающей на вашем устройстве. Если проблемы по-прежнему возникают, обратитесь к поставщику стороннего приложения.
Как удалить приложение из меню настроек
Для Android 9.0 или 10
- Найдите и выберите «Настройки (Settings)» → «Приложения и уведомления (Apps & notifications)» → «Посмотреть все приложение [количество приложений] (See all [number of apps] apps)».
- Найдите и выберите приложения, которое хотите удалить, после чего нажмите на «УДАЛИТЬ (UNINSTALL)».
Как удалить приложение с экрана приложений
Для Android 10
- Найдите приложение, которое вы хотите удалить, после чего нажмите и удерживайте его, пока устройство не завибрирует.
- В открывшемся меню выберите «Информация о приложении (App info)».
- Во вновь открывшемся окне нажмите на кнопку «Удалить (Uninstall)»
Для Android 9.0
- Найдите приложение, которое вы хотите удалить, после чего нажмите и удерживайте его, пока устройство не завибрирует.
- В открывшемся меню нажмите на «Удалить (Uninstall)».
Как обновить приложение с помощью Google Play
Для Android 9.0 или 10
- Найдите и выберите «Play Store».
- Перетащите левый край экрана вправо, после чего выберите «Мои приложения и игры (My Apps & games)».
- Найдите приложение, которое вы хотите обновить, после чего выберите «ОБНОВИТЬ (UPDATE)» рядом с данным приложением.
Для просмотра этого видео в Youtube примите все файлы cookie.
Зайдите в настройки файлов cookie ниже и включите сохранение файлов cookie для Youtube в разделе «Функциональные».
Google нашла новый способ распространять обновления Android

Инженеры компании Google нашли новый способ быстрого распространения обновлений Android среди пользователей. Об этом сообщает издание Android Central.
Журналисты медиа сослались на отчет известного инсайдера Мишаала Рахмана, который заметил упоминание новой функции на сайте проекта Android. В описании опции Android Upgrade Invite говорилось, что пользователи смартфонов смогут получать уведомления о том, что вышла новая версия операционной системы.
По словам Рахмана, потребителям будут напоминать об апдейте двумя способами: непосредственно от Google и производителя того или иного смартфона на базе Android. Уточняется, что доступ к уведомлениям получат только те производители устройств, которые поддерживают сервисы Google. OEM-производители смогут настроить сроки отправки уведомлений и их содержание.
Специалисты отметили, что в уведомлениях пользователям будут рассказывать о преимуществах новой версии Android. Считается, что таким образом владельцы смартфонов будут чаще устанавливать апдейты ОС.
В середине июля Европейский совет запретил выпускать смартфоны без съемной батареи с 2027 года. По словам европейских чиновников, таким образом можно будет снизить количество отходов и повысить эффективность переработки электронного мусора.
