Dynamic system updates что это за программа на андроид

Обновлено: 08.07.2024

У пользователей Андроид появилась возможность посмотреть как выглядит новая версия операционной системы от Google и узнать, будут ли в ней работать любимые приложения. Сделать это можно, даже если ваш смартфон еще не получил официальной Андроид 12 от производителя.

Такая возможность особенно понравится разработчикам, которые хотят протестировать свое приложение в Андроид 12. Однако, к сожалению, работает это только на новых смартфонах.

Кто может попробовать Андроид 12

Посмотреть как выглядит Андроид 12 может любой пользователь, смартфон которого поддерживает динамические обновления. Речь идет обо всех устройствах, которые продавались с предустановленными Андроид 10 и Андроид 11. В редких случаях такая возможность может быть доступна пользователям, смартфоны которых продавались с Андроид 9.

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

Google обещала, что в скором будущем попробовать бесшовные обновления можно будет без разблокировки загрузчика. Однако, на данный момент, без этого не обойтись. В противном случае, вы сможете скачать динамическое обновление, но не сможете перезагрузиться, чтобы посмотреть на Андроид 12.

Заменяет ли новая система старую?

Нет, прошивка установленная производителем никуда не денется. Андроид 12 скачивается в отдельный раздел B, тогда как основная система находится в разделе A. Вы всегда можете перезагрузиться обратно, а пользовательские данные удалены не будут.

Таким образом вы можете познакомиться с чистым Андроид 12 без надстроек и оболочек, которые устанавливаются производителем устройства.

Ограничения, которые накладывают динамические обновления

На данный момент в динамической системе Андроид 12 доступно всего несколько гигабайт памяти. Использование такого раздела поможет разработчикам приложений, которые не желают отказываться от стабильной прошивки, но хотят время от времени тестировать новую версию операционной системы от Google. Однако, периодически перезагружаться, чтобы протестировать, не означает, что систему можно использовать на постоянной основе.

Как установить Андроид 12 на Xiaomi

Если загрузчик на вашем смартфоне Xiaomi, Redmi или Poco разблокирован, вы можете попробовать установить динамическое обновление системы. Сделать это несложно:

Шаг 1. Перейдите в настройки Андроид. Для этого, найдите колесико настроек на главном экране или в меню приложений.


Шаг 2. Прокрутите меню вниз и выберите Расширенные настройки.


Шаг 3. Нас интересует пункт Для разработчиков. По умолчанию этот раздел скрыт. Чтобы узнать, как его отобразить, прочитайте статью Как включить режим разработчика на Андроид.


Шаг 4. В разделе Для разработчиков отыщите пункт DSU Loader.


Шаг 5. Для загрузки доступно два возможных варианта:

  • GSI ARM64. Чистый образ Андроид 12 без сервисов Google Play.
  • GSI+GMS ARM64. Аналогичный образ системы Андроид 12, но вместе с сервисами Google Play.


Шаг 7. После того как пакет Dynamic System Updates будет загружен, отобразится кнопка Перезапустить. Нажмите на нее, чтобы перезагрузить систему и опробовать Андроид 12.


Обратите внимание! Если вы случайно смахнули это уведомление, просто перезагрузите смартфон стандартным способом и оно снова появится на верхней панели.

Шаг 8. Для того, чтобы вернуться в основную систему, перезагрузите устройство, нажмите на кнопку питания и выберите Перезагрузить.

Вам также может понравиться

Как проверить телефон на вирусы (Android)

Как проверить аккумулятор Xiaomi

Как ускорить интернет на Андроид

Как транслировать свой экран в конференции Zoom

Как установить Майнкрафт на Андроид


The challenges Huawei faces getting Google apps on the Huawei Mate 30 — хорошая статья о том, как Huawei может выйти из ситуации, когда флагманы компании (линейка Huawei Mate 30) не могут поставляться на рынок с предустановленными приложениями и сервисами Google.

Все это открывает перед производителем возможность установить на свои смартфоны ключевые приложения Google (Google Play Store, Google Chrome, Google Maps и т. д.) и необходимый для их работы набор сервисов (Core Services).

Huawei по причине торговой войны США и Китая больше не может подписать новое соглашение MADA с Google, а потому по закону не имеет права предустанавливать приложения Google на смартфоны, продающиеся на территории большинства стран. Также они не могут дать пользователям возможность установить эти приложения самостоятельно, так как ключевые приложения Google (в первую очередь магазин приложений) и набор сервисов должны иметь расширенные права, а значит, быть предустановлеными в системный раздел.

Поначалу казалось, что у Huawei есть выход. Дело в том, что в прошлом они (а также компания Xiaomi и другие китайские производители) уже научились обходить такие ограничения. Трюк состоит в том, чтобы предустановить в систему только набор сервисов Google и добавить разрешения для приложений Google в общесистемный файл разрешений. В таком случае установленные из сторонних источников приложения Google автоматически получат нужные разрешения и будут полностью работоспособны. Осталось только дать пользователям какой-то инсталлятор для автоматической доустановки маркета и всего остального софта.



Динамические обновления Android

Функция Dynamic System Updates (DSU) появилась в третьей бета-версии Android 10 как ответ на необходимость временной установки тестовых версий ОС, при которой не затрагивается основная версия Android, установленная на смартфон. DSU базируется на технологии Dynamic Partitions, которая позволяет «сдвинуть» раздел data и создать в освободившемся месте новые разделы system и data , которые будут использованы для установки еще одной прошивки рядом с основной.

В финальной версии Android 10 DSU доступен в смартфонах линейки Pixel, но только для так называемых GSI-образов ОС (Generic System Image), которые выпускает сама Google на базе AOSP. Но совсем недавно в AOSP появился коммит, по содержимому которого можно понять, что функциональность DSU вскоре будет расширена для поддержки тестовых прошивок производителей смартфонов.

Что из этого всего следует? Во-первых, это не способ организовать мультизагрузку на смартфоне (по аналогии с MultiROM). Это лишь способ тестирования прошивок, после перезагрузки происходит автоматический откат к основной прошивке. Во-вторых, это действительно удобный способ для тестирования бета-версий прошивок без необходимости удалять основную прошивку.

Еще в Google анонсировали поддержку так называемой разметки «диска» Virtual A/B. Это развитие идеи разметки A/B, появившейся еще в Android 8 и предполагающей существование сразу двух разделов system . В одном разделе установлена текущая версия прошивки, в другой устанавливается обновление. После перезагрузки они меняются местами.

Разметка A/B позволяет устанавливать обновления прошивки в фоне и защищает от ситуаций, когда обновление может окирпичить смартфон (в этом случае смартфон автоматически загрузится со «старого» раздела system ). Однако кроме самой Google мало какой производитель захотел использовать такую разметку ввиду банальной экономии пространства в памяти устройства. Virtual A/B позволяет решить эту проблему путем создания временного раздела system , который может быть удален после удачного обновления.

Продолжение доступно только участникам

Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее

Вариант 2. Открой один материал

Евгений Зобнин

Редактор рубрики X-Mobile. По совместительству сисадмин. Большой фанат Linux, Plan 9, гаджетов и древних видеоигр.

В Android 10 Q можно устанавливать второй образ операционной системы

В недавно вышедшей четвёртой сборке Android 10 Q появились несколько нововведений, одно из которых наверняка заинтересует разработчиков, гиков и просто любознательных пользователей. Функция под названием «Динамические обновления системы» (Dynamic System Updates) позволяет временно запустить новую версию операционной системы без её полноценной установки — переключение между стандартной и временной версиями Android происходит после перезагрузки устройства.

В Android 10 Q можно устанавливать второй образ операционной системы
В Android 10 Q можно устанавливать второй образ операционной системы
В Android 10 Q можно устанавливать второй образ операционной системы

«Динамические обновления системы» работают следующим образом: пользователю достаточно перейти в настройки Android и скачать нечто вроде установочного файла новой версии операционной системы через команды в «Терминале» — конечно, если обновление доступно (его распространением занимается Google или OEM-производители). После этого, необходимо нажать на кнопку «Перезагрузить устройство» в появившемся уведомлении, ввести пароль или просканировать отпечаток пальца для подтверждения своих намерений и дождаться перезагрузки — активируется AOSP-версия нового Android. Чтобы закончить использование запущенного таким образом обновлённого «зелёного робота», необходимо перезагрузить устройство. По всей видимости, функция «Динамические обновления системы» является своеобразной реализацией возможности устанавливать второй образ операционной системы на устройство.

В Android 10 Q можно устанавливать второй образ операционной системы
В Android 10 Q можно устанавливать второй образ операционной системы

По данным профильного портала 9To5Google, редакторы которого уже протестировали Dynamic System Updates, новая функция необходима прежде всего разработчикам: она позволяет тестировать новые версии операционной системы, избегая использования эмуляторов или установки зачастую глючных тестовых сборок нового Android на основное устройство.

Стоит учитывать, что с помощью «Динамических обновлений системы» можно установить только «голый» Android (AOSP), если его распространяет Google или производитель устройства. Возможно, это ограничение можно будет обойти с помощью прав суперпользователя и получится запустить любой загружённый из интернета образ операционной системы, но это лишь догадки.

Вряд ли стоит использовать на постоянной основе установленную таким образом новую версию операционной системы, поскольку через Dynamic System Updates наверняка будут распространяться только альфа- и бета-сборки Android, которые переполнены различными багами и недоработками.


The challenges Huawei faces getting Google apps on the Huawei Mate 30 — хорошая статья о том, как Huawei может выйти из ситуации, когда флагманы компании (линейка Huawei Mate 30) не могут поставляться на рынок с предустановленными приложениями и сервисами Google .

Все это открывает перед производителем возможность установить на свои смартфоны ключевые приложения Google ( Google Play Store, Google Chrome , Google Maps и т. д.) и необходимый для их работы набор сервисов (Core Services).

Huawei по причине торговой войны США и Китая больше не может подписать новое соглашение MADA с Google , а потому по закону не имеет права предустанавливать приложения Google на смартфоны, продающиеся на территории большинства стран. Также они не могут дать пользователям возможность установить эти приложения самостоятельно, так как ключевые приложения Google (в первую очередь магазин приложений) и набор сервисов должны иметь расширенные права, а значит, быть предустановлеными в системный раздел.

Поначалу казалось, что у Huawei есть выход. Дело в том, что в прошлом они (а также компания Xiaomi и другие китайские производители) уже научились обходить такие ограничения. Трюк состоит в том, чтобы предустановить в систему только набор сервисов Google и добавить разрешения для приложений Google в общесистемный файл разрешений. В таком случае установленные из сторонних источников приложения Google автоматически получат нужные разрешения и будут полностью работоспособны. Осталось только дать пользователям какой-то инсталлятор для автоматической доустановки маркета и всего остального софта.



Динамические обновления Android

Функция Dynamic System Updates (DSU) появилась в третьей бета-версии Android 10 как ответ на необходимость временной установки тестовых версий ОС, при которой не затрагивается основная версия Android , установленная на смартфон. DSU базируется на технологии Dynamic Partitions, которая позволяет «сдвинуть» раздел data и создать в освободившемся месте новые разделы system и data , которые будут использованы для установки еще одной прошивки рядом с основной.

В финальной версии Android 10 DSU доступен в смартфонах линейки Pixel, но только для так называемых GSI-образов ОС (Generic System Image), которые выпускает сама Google на базе AOSP. Но совсем недавно в AOSP появился коммит, по содержимому которого можно понять, что функциональность DSU вскоре будет расширена для поддержки тестовых прошивок производителей смартфонов.

Что из этого всего следует? Во-первых, это не способ организовать мультизагрузку на смартфоне (по аналогии с MultiROM). Это лишь способ тестирования прошивок, после перезагрузки происходит автоматический откат к основной прошивке. Во-вторых, это действительно удобный способ для тестирования бета-версий прошивок без необходимости удалять основную прошивку.

Еще в Google анонсировали поддержку так называемой разметки «диска» Virtual A/B. Это развитие идеи разметки A/B, появившейся еще в Android 8 и предполагающей существование сразу двух разделов system . В одном разделе установлена текущая версия прошивки, в другой устанавливается обновление. После перезагрузки они меняются местами.

Разметка A/B позволяет устанавливать обновления прошивки в фоне и защищает от ситуаций, когда обновление может окирпичить смартфон (в этом случае смартфон автоматически загрузится со «старого» раздела system ). Однако кроме самой Google мало какой производитель захотел использовать такую разметку ввиду банальной экономии пространства в памяти устройства. Virtual A/B позволяет решить эту проблему путем создания временного раздела system , который может быть удален после удачного обновления.

Какой телефон использовал бы Эдвард Сноуден

How Edward Snowden Would Use A Smartphone — компиляция твитов Эдварда Сноудена о том, какой сетап следует использовать для сохранения конфиденциальности при использовании смартфона. Тезисы:

  • прошивка GrapheneOS (от создателя CopperheadOS);
  • выход в интернет только через Tor;
  • использование Ethernet (!) вместо Wi-Fi и мобильной сети (это действительно можно сделать с помощью USB-донгла);
  • блокировщик рекламы;
  • файрвол с блокировкой доступа к интернету для большинства приложений (можно использовать AFWall);
  • блокировка сторонних кукисов в браузере;
  • никакого e-mail;
  • общение только в Signal и Wire.

Разработчику

Умные анимации

Motional Intelligence: Build smarter animations — статья одного из разработчиков Android , посвященная созданию консистентных умных анимаций, способных работать в паре с реактивными UI-фреймворками.

В качестве примера автор приводит следующую функцию, предназначенную для анимации появления/исчезновения элемента на экране:

Эта функция будет отлично работать в приложении, написанном в классической манере без использования реактивных фреймворков и паттернов (MVVM, MVI). Если же мы используем реактивный подход, когда модель данных может изменяться непредсказуемо, а UI должен незамедлительно реагировать на изменения, то мы получим минимум две проблемы.

  1. Приложение не готово к получению новых данных во время проигрывания анимации, нужен способ сбросить все листенеры и остановить анимацию.
  2. Анимация всегда начинается с начала (с максимального или минимального значения альфа-канала), поэтому — даже если решить первую проблему — анимация станет «дерганой», когда данные будут приходить во время проигрывания анимации.

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

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

Далее нам необходимо сделать так, чтобы текущая анимация останавливалась перед началом следующей. Для этого можно нагородить огород костылей, а можно просто заменить ObjectAnimator на метод View.animate() :

Это все. Теперь у нас есть анимация, которая всегда будет выглядеть консистентно.

В статье автор также приводит пример решения этих проблем для анимации перемещения элементов, но это уже совсем другая история.

Типы Unit, Nothing, Any в Kotlin

Kotlin Pearls 7: Unit, Nothing, Any (and null) — статья, поясняющая суть типов данных Unit, Nothing и Any в языке Kotlin.

Unit — эквивалент типа void в Java. Другими словами, он нужен для того, чтобы показать, что функция ничего не возвращает. Unit наследуется от типа Any, а при работе с Java-кодом автоматически транслируется в void .

Nothing — класс, являющийся субклассом любого класса (именно так) и не позволяющий создать объект своего типа (конструктор приватный). Используется для представления результата исполнения функции, которая никогда не завершается (скажем, потому что она выбрасывает исключение). Пример:

Any — родитель всех остальных классов. Аналог Object в Java.

Обзор новой функции биндинга View-элементов в Android Studio

Exploring View Binding on Android — рассказ о новой функции Android Studio, появившейся в версии 3.6 Canary 11. View Binding позволяет получить доступ к View-элементам, определенным в XML, простым и типобезопасным способом, не требующим использовать функцию findViewById() .

Чтобы продемонстрировать, как это работает, возьмем следующий XML, описывающий простенький интерфейс ( add_profile.xml ):

Теперь открываем код активности и пишем следующее:

Этот код покажет на экране приведенный выше интерфейс, а также присвоит TextView под именем text_title строку R.string.some_string и назначит на кнопку button_add_profile какое-то действие.

Может показаться, что автор пропустил важную часть кода, но это не так. Функция View Binding автоматически создает для каждого XML-файла класс, получающий имя XML-файла с отброшенными символами подчеркивания и словом Binding в конце. В данном примере Android Studio создал класс AddProfileBinding для файла add_profile_xml .

Используя этот класс, мы затем отобразили интерфейс на экране и получили доступ к TextView и кнопке, которые по аналогии с именем класса получили имена на основе их id в XML-файле. Идентификатор text_title стал textTitle , а button_add_profile стала buttonAddProfile .

Это действительно все. Больше никаких проблем с поиском View с помощью findViewById() , никаких null на месте ненайденных элементов и ошибок типов. Просто и ясно.

Чтобы все это работало, необходимо установить Android Studio 3.6 Canary 11 и добавить в build.gradle следующую строку:

Как работает View Binding

Как работает View Binding

Инструменты повышения производительности приложения

Android third party tools to increase the performance of your app — небольшой обзор сторонних инструментов и библиотек, позволяющих повысить стабильность и производительность приложения.

Читайте также: