Выпуск мобильной платформы Android 12
4 октября 2021 года
Компания Google опубликовала релиз открытой мобильной платформы Android 12. Связанные с новым выпуском исходные тексты размещены в Git-репозиторий проекта (ветка android-12.0.0_r1). Обновления прошивки подготовлены для устройств серии Pixel, а также для смартфонов производства Samsung Galaxy, OnePlus, Oppo, Realme, Tecno, Vivo и Xiaomi. Дополнительно сформированы универсальные сборки GSI (Generic System Images), подходящие для разных устройств на базе архитектур ARM64 и x86_64.
- Предложено одно из наиболее значительных обновлений оформления интерфейса в истории проекта. Новый дизайн реализует концепцию "Material You", преподносимую как вариант Material Design следующего поколения. Новая концепция будет автоматически применена для всех платформ и элементов интерфейса, и не потребует от разработчиков приложений внесения каких-либо изменений. В июле разработчикам приложений планируется предоставить первый стабильный выпуск нового тулкита для разработки графических интерфейсов - Jetpack Compose(недоступная ссылка).
В самой платформе выделяется новое оформление виджетов. Виджеты сделаны более заметными, усилено скругление углов, предоставлена возможность использования динамических цветов, соответствующих системной теме оформления. Добавлены интерактивные элементы управления, такие как флажки и переключатели (CheckBox, Switch и RadioButton), например, позволяющие в виджете TODO редактировать списки задач, не открывая приложение.
Реализован более гладкий визуальный переход к приложениям, запущенным из виджетов. Упрощена персонализация виджетов - добавлена кнопка (кружок с карандашом) для быстрой перенастройки размещения виджета на экране, появляющаяся при длительном касании к виджету.
Предоставлены дополнительные режимы ограничения размера виджета и возможность использования адаптивной раскладки элементов виджета ( responsive layout) для создания типовых раскладок, меняющихся в зависимости от размера видимой области (например, можно сформировать раздельные раскладки для планшетов и смартфонов). В интерфейсе выбора виджетов (widget picker) реализован динамический предпросмотр и возможность отображения описания виджета.
- Добавлена возможность автоматической адаптации системной палитры к цвету выбранных обоев - система автоматически определяет преобладающие цвета, корректирует текущую палитру и применяет изменения ко всем элементам интерфейса, включая область уведомлений, экран блокировки, виджеты и регулятор громкости.
- Реализованы новые анимированные эффекты, такие как постепенное увеличение масштаба и плавный сдвиг областей при прокрутке, появлении и перемещении элементов на экране. Например, при отмене уведомления на экране блокировки, индикатор времени автоматически увеличивается и занимает пространство, которое ранее занимало уведомление.
- Переработано оформление выпадающей области с уведомлениями и быстрыми настройками. В число быстрых настроек добавлены опции для Google Pay и управления умным домом. При удержании кнопки включения питания обеспечен вызов Google Assistant, которому можно дать команду для совершения звонка, вызова приложения или прочтения вслух статьи. К общему виду приведены уведомления с содержимым, заданным приложением.
- Добавлен эффект растягивания границ прокрутки ( Stretch overscroll), дающий понять, что пользователь вышел за предел обрасти прокрутки и достиг конца содержимого. Изображение содержимого при новом эффекте как бы растягивается и отпружинивает назад. Новый режим индикации конца прокрутки активирован по умолчанию, но в настройках предусмотрена опция для возврата старого поведения.
- Оптимизирован интерфейс для устройств со складными экранами.
- Реализованы (Архивная копия от 17 сентября 2021 на Wayback Machine) более гладкие звуковые переходы - при переключении от одного приложения, выводящего звук, к другому, звучание первого теперь плавно приглушается, а второго плавно нарастает, без наложения одного звука на другой.
- Модернизирован интерфейс управления сетевыми соединениями в блоке быстрых настроек, панели и системном конфигураторе. Добавлена новая панель Internet, позволяющая быстро переключаться между разными провайдерами и проводить диагностику проблем.
- Добавлена возможность создания скриншотов, охватывающих не только видимую область, но и содержимое в области прокрутки. Возможность сохранения содержимого вне видимой области работает для всех приложений, использующих для вывода класс View. Для реализации поддержки прокручиваемых скриншотов в программах, использующих специфичные интерфейсы, предложен API ScrollCapture.
- Улучшена функция автоматического поворота содержимого экрана, которая теперь может использовать распознавание лица передней камерой для определения необходимости поворота экрана, например, когда человек использует телефон лёжа. Для обеспечения конфиденциальности информация обрабатывается на лету без промежуточного сохранения изображений. Возможность пока доступна только на смартфонах Pixel 4 и более новых моделях.
- Улучшен режим "картинка в картинке" (PIP, Picture in Picture) и повышена плавность переходных эффектов. В случае включения автоматического перехода в PIP при жесте up-to-home (сдвиг низа экрана вверх) приложение теперь сразу переводится в режим
PIP, не дожидаясь завершения анимации. Улучшено изменение размера PIP-окон с содержимым, отличным от видео. Добавлена возможность спрятать PIP-окно через его перетаскивание к левому или правому краю экрана. Изменено поведение при касании к PIP-окну - одно касание теперь приводит к отображению кнопок управления, а двойное меняет размер окна.
- Оптимизации производительности:
- Проведена значительная оптимизация производительности системы - нагрузка на CPU основных системных сервисов снизилась на 22%, что в свою очередь привело к увеличению времени автономной работы на 15%.
За счёт снижение конкуренции блокировок, сокращения задержек и оптимизации ввода/вывода повышена производительность перехода от одного приложений к другому и сокращено время запуска приложений.
В PackageManager при работе со снапшотами в режиме только для чтения конкурирование блокировок снижено на 92%. В механизме межпроцессного взаимодействия Binder применено легковесное кэширование, позволившее сократить задержки в 47 раз для некоторых видов вызовов. Повышена производительность обработки файлов dex, odex и vdex, что привело к сокращению времени загрузки приложений, особенно на устройствах с небольшим объёмом памяти. Ускорен запуск приложений из уведомлений, например, запуск Google Photos из уведомления теперь выполняется на 34% быстрее.
Повышена производительность запросов к БД через применение inline-оптимизаций в операции CursorWindow. Для небольших объёмов данных CursorWindow стал быстрее на 36%, а для наборов, включающих более 1000 строк, ускорение может достигать 49 раз.
Предложены критерии для классификации устройств по производительности. В зависимости от возможностей устройства ему присваивается класс производительности, который затем может использоваться в приложениях для ограничения функциональности кодеков на маломощных устройствах или для работы с мультимедийным контентом более высокого качества на мощном оборудовании.
- Реализован режим гибернации приложений, позволяющий если пользователь давно явно не взаимодействовал с программой автоматически сбросить ранее выданные приложению полномочия, остановить выполнение, вернуть используемые приложением ресурсы, такие как память, и заблокировать запуск фоновых работ и отправку push-уведомлений. Режим может применяться для большинства приложений и позволяет защитить данные пользователя, к которым продолжают иметь доступ давно забытые программы. При желании режим гибернации можно выборочно отключить в настройках.
- Оптимизирована анимация при повороте экрана, что позволило снизить задержку перед поворотом примерно на 25%.
- В состав включён новый высокопроизводительный поисковый движок AppSearch, позволяющий индексировать информацию на устройстве и выполнять полнотекстовый поиск с ранжированием результатов. AppSearch предоставляет два типа индексов - для организации поиска в отдельных приложениях и для поиска во всей системе.
- Добавлен API Game Mode (Архивная копия от 4 октября 2021 на Wayback Machine) и соответствующие настройки, позволяющие управлять профилем производительности игры - например, можно пожертвовать производительностью для продления автономной работы или использовать все доступные ресурсы для достижения максимального FPS.
- Добавлена функция play-as-you-download для загрузки игровых ресурсов в фоне в процессе установки, что позволяет начать играть ещё до того как завершиться загрузка.
приложением.
- Повышена отзывчивость и скорость реакции при работе с уведомлениями. Например, при касании пользователя к уведомлению теперь осуществляется мгновенный переход на связанное с ним приложение. В приложениях ограничено использование промежуточных обработчиков уведомлений (notification trampoline).
- Проведена оптимизация IPC-вызовов в Binder. Благодаря применению новой стратегии кэширования и устранению конфликтов при блокировках удалось значительно сократить задержки. В общем виде производительность вызовов Binder увеличилась примерно в два раза, но в не которых областях удалось добиться ещё более существенного ускорения. Например, вызов refContentProvider() стал быстрее в 47 раз, releaseWakeLock() в 15 раз, а JobScheduler.schedule() в 7.9 раза.
- С целью предотвращения возможных проблем с производительностью приложениям запрещено запускать приоритетные сервисы (foreground service) во время работы в фоновом режиме, за исключением нескольких специальных случаев. Для запуска работ при нахождении в фоне рекомендовано использовать WorkManager. Для упрощения перехода предложен новый тип работ в JobScheduler, который запускается сразу, имеет повышенный приоритет и доступ к сети.
- Изменения, влияющие на безопасность и конфиденциальность:
- Реализован интерфейс Privacy Dashboard с общим обзором всех настроек полномочий, позволяющий понять к каким данным пользователя приложения имеют доступ. В интерфейсе также доступна шкала времени, визуализирующая историю доступа приложений к микрофону, камере и данным о местоположении. Для каждого приложения можно просмотреть детали и причины обращения к конфиденциальным данным.
- В панель добавлены индикаторы активности микрофона и камеры, появляющиеся, когда приложение обращается к камере или микрофону. При клике на индикаторы появляется диалог с настройками, позволяющий определить какое именно приложение работает с камерой или микрофоном, и при необходимости отозвать полномочия.
- Во всплывающий блок быстрых настроек добавлены переключатели, при помощи которых можно принудительного выключить микрофон и камеру. После выключения попытки обращения к камере и микрофону будут приводить к выводу уведомления и передаче приложению пустых данных.
- Добавлено новое уведомление, показываемое внизу экрана каждый раз, когда приложение пытается прочитать содержимое буфера обмена через вызов функции getPrimaryClip(). Если содержимое из буфера обмена копируется в том же приложении, в котором оно было добавлено, уведомление не выводится.
- Добавлено отдельное полномочие BLUETOOTH_SCAN для сканирования близлежащих устройств по Bluetooth. Ранее данная возможность предоставлялась при наличии доступа к информации о местоположении устройства, что приводило к необходимости предоставления дополнительных полномочий приложениям, которым требуется сопряжение c другим устройством по Bluetooth.
Источники
править
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.
Комментарии
Если вы хотите сообщить о проблеме в статье (например, фактическая ошибка и т. д.), пожалуйста, используйте обычную страницу обсуждения.
Комментарии на этой странице могут не соответствовать политике нейтральной точки зрения, однако, пожалуйста, придерживайтесь темы и попытайтесь избежать брани, оскорбительных или подстрекательных комментариев. Попробуйте написать такие комментарии, которые заставят задуматься, будут проницательными или спорными. Цивилизованная дискуссия и вежливый спор делают страницу комментариев дружелюбным местом. Пожалуйста, подумайте об этом.
Несколько советов по оформлению реплик:
- Новые темы начинайте, пожалуйста, снизу.
- Используйте символ звёздочки «*» в начале строки для начала новой темы. Далее пишите свой текст.
- Для ответа в начале строки укажите на одну звёздочку больше, чем в предыдущей реплике.
- Пожалуйста, подписывайте все свои сообщения, используя четыре тильды (~~~~). При предварительном просмотре и сохранении они будут автоматически заменены на ваше имя и дату.
Обращаем ваше внимание, что комментарии не предназначены для размещения ссылок на внешние ресурсы не по теме статьи, которые могут быть удалены или скрыты любым участником. Тем не менее, на странице комментариев вы можете сообщить о статьях в СМИ, которые ссылаются на эту заметку, а также о её обсуждении на сторонних ресурсах.