04.10.2022

Выпуск мобильной платформы Android 13

Компания Google опубликовала релиз открытой мобильной платформы Android 13. Связанные с новым выпуском исходные тексты размещены в Git-репозиторий проекта (ветка android-13.0.0_r1). Обновления прошивки подготовлены для устройств серии Pixel. Позднее планируется подготовить обновления прошивок для смартфонов производства Samsung, Asus, HMD (Nokia), iQOO, Motorola, OnePlus, Oppo, Realme, Sharp, Sony, Tecno, vivo и Xiaomi. Дополнительно сформированы универсальные сборки GSI (Generic System Images), подходящие для разных устройств на базе архитектур ARM64 и x86_64.

Основные новшества:

  • Предложен набор предварительно подготовленных вариантов цветового оформления интерфейса, позволяющих немного корректировать цвета в рамках выбранной цветовой схемы. Цветовые варианты влияют на внешний вид всех компонентов операционной системы, включая фоновые обои.
  • Предоставлена возможность адаптации фона пиктограмм любых приложений к цветовой схеме темы оформления или цвету фонового изображения.
  • В интерфейсе управления воспроизведением музыки обеспечено использование в качестве фона изображений обложек воспроизводимых альбомов.
  • Добавлена возможность привязки к приложениям индивидуальных настроек языка, отличающихся от настроек языка, выбранных в системе.
  • Значительно улучшена работа на устройствах с большими экранами, такими как планшетные ПК, Chromebook и смартфоны со складными экранами. Для больших экранов оптимизирована компоновка выпадающего блока с уведомлениями, домашнего экрана и экрана блокировки системы, которые теперь используют всё имеющееся экранное пространство. В блоке, появляющемся при скользящем жесте сверху-вниз, на больших экранах обеспечено разделение в разные столбцы быстрых настроек и списка уведомлений. Добавлена поддержка двухпанельного режима работы в конфигураторе, в котором на больших экранах теперь постоянно видны разделы настроек.

    Улучшены режимы совместимости для приложений. Предложена реализация панели задач, показывающая в нижней части экрана пиктограммы запущенных приложений, позволяющая быстро переключаться между программами и поддерживающая перенос приложений через интерфейс drag&drop в различные области многооконного режима (split-screen), разделяющего экран на части для работы одновременно с несколькими приложениями.

  • Повышено удобство рисования и ввода текста с использованием электронного пера. Добавлена защита от появления ложных мазков при касании сенсорного экрана руками во время рисования стилусом.
  • Для некоторых устройств, таких как Pixel 6, добавлена поддержка полной виртуализации, позволяющая запускать окружения с другими операционными системами. Виртуализация реализована на базе гипервизора KVM и
    инструментария crosvm (VVM, Virtual Machine Manager). Опционально доступен режим pKVM (Protected KVM), обеспечивающий более строгую изоляцию окружений с использованием расширений виртуализации для архитектуры AArch64. В платформе виртуализацию планируют использовать для повышения защиты выполнения стороннего системного кода, например, закрытых исполняемых файлов и компонентов DRM.
  • Добавлена возможность выборочного предоставления полномочий для доступа к мультимедийным файлам. Если раньше для чтения мультимедийных файлов приходилось предоставлять доступ ко всем файлам в локальном хранилище, то теперь доступ можно ограничить только изображениями, звуковыми файлами или видео.
  • Реализован новый интерфейс выбора фотографий и видео, позволяющий предоставить приложению доступ только к выбранным изображениям и видео и блокировать обращение к остальным файлам. Ранее похожий интерфейс был реализован для документов. Возможна работа как с локальными файлами, так и с данными, размещёнными в облачных хранилищах.
  • Добавлен запрос полномочий на вывод уведомлений приложениями. Без получения предварительного права на отображение уведомлений отправка уведомлений приложением будет блокироваться. Для ранее созданных приложений, рассчитанных на использование с прошлыми версиями Android, полномочия будут предоставлены системой от имени пользователя.
  • Сокращено число приложений, требующих доступа к информации о местоположении пользователя. Например, приложениям выполняющим операции сканирования беспроводных сетей теперь не требуются полномочия, связанные с определением местоположения.
  • Расширены возможности, нацеленные на повышение конфиденциальности и информирование пользователя о возможных рисках. Помимо предупреждений о доступе приложения к буферу обмена в новой ветке обеспечено автоматическое удаление истории помещения данных в буфер обмена после определённого времени неактивности.
  • Добавлена новая унифицированная страница с настойками безопасности и конфиденциальности, в которой реализована наглядная цветовая индикация состояния безопасности и предложены рекомендации по усилению защиты.
  • Добавлен новый тип полномочий для Wi-Fi, предоставляющий приложениям, предназначенным для поиска беспроводных сетей и подключения к точкам доступа, возможности доступа к подмножеству API управления Wi-Fi, за исключением вызовов, связанных определением местоположения (ранее приложения, осуществляющие подключение к Wi-Fi, получали и доступ к информации о местоположении).
  • Добавлен API для размещения кнопок в секции с быстрыми настройками в верхней части выпадающей панели уведомлений. При помощи данного API приложение может вывести запрос на размещение своей кнопки с быстрым действием, позволяющий пользователю добавить кнопку не покидая приложение и отдельно не переходя к настройкам.
  • Оптимизирована операция переноса слов (разрыв не умещающихся в строку слов с использованием дефиса). В новой версии производительность переноса увеличена на 200% и теперь практически не влияет на скорость отрисовки.
  • Добавлена поддержка программируемых графических шейдеров (объектов RuntimeShader), определяемых на языке AGSL (Android Graphics Shading Language), представляющем собой подмножество языка GLSL, адаптированное для использования с движком рендеринга платформы Android. Подобные шейдеры уже используются в самой платформе Android для реализации различных визуальных эффектов, таких как пульсация, размытие и растягивание при прокрутке за границу страницы. Подобные эффекты теперь можно создавать и в приложениях.
  • Базовые Java-библиотеки платформы и средства разработки приложений обновлены до OpenJDK 11.
  • В рамках проекта Mainline, позволяющего обновлять отдельные системные компоненты без обновления платформы целиком, подготовлены новые обновляемые системные модули. Обновления затрагивают не привязанные к оборудованию компоненты, которые загружаются через Google Play отдельно от OTA-обновлений прошивки от производителя. Среди новых модулей, которые смогут обновляться через Google Play без обновления прошивки — Bluetooth и Ultra wideband. Через Google Play также распространяются модули с Photo picker и OpenJDK 11.
  • Упрощено тестирование и отладка новых возможностей платформы. Изменения теперь можно выборочно включать для приложений в разделе настроек для разработчиков или через утилиту adb.
  • Добавлен API, позволяющий приложению отказаться от ранее полученных полномочий. Например, если в новой версии потребность в каких-то расширенных правах исчезла, программа в рамках заботы о конфиденциальности пользователя может отозвать ранее полученные права.
  • Предоставлена возможность регистрации обработчиков несистемных широковещательных операций (BroadcastReceiver) в привязке к контексту их использования. Для управления экспортом подобных обработчиков добавлены новые флаги RECEIVER_EXPORTED и RECEIVER_NOT_EXPORTED, которые позволяют исключить использование обработчиков для отправки широковещательных сообщений из других приложений.
  • Добавлена поддержка цветных векторных шрифтов в формате COLRv1 (подмножество шрифтов OpenType, содержащих помимо векторных глифов слой c информацией о цвете). Также добавлен новый набор многоцветных emoji, поставляемый в формате COLRv1. Новый формат предоставляет компактную форму хранения, поддерживает градиенты, наложения и трансформации, обеспечивает эффективное сжатие и допускает повторное использование контуров, что позволяет существенно уменьшить размер шрифта. Например, шрифт Noto Color Emoji в растровом представлении занимает 9MB, а в векторном формате COLRv1 — 1.85MB.
  • В среде выполнения приложений ART реализован более эффективный сборщик мусора, основанный на использовании API ядра Linux userfaultfd, который позволяет создавать обработчики обращений к невыделенным страницам памяти (page faults) в пространстве пользователя. Новый сборщик мусора обеспечивает фиксированные накладные расходы для каждого загруженного объекта, потребляет меньше памяти и приводит к сокращению скомпилированного кода примерно на 10%. Применение нового сборщика мусора также позволяет продлить время автономной работы, избавиться от подвисаний во время сборки мусора и защитить приложений от принудительного завершения при нехватки памяти в системе.

    В ART существенно повышена производительность переключения на нативный код и наоборот — JNI-вызовы теперь выполняются до 2.5 раз быстрее. Код обработки ссылок (reference processing) во время выполнения переведён на работу в неблокирующем режиме для сокращения подвисаний. Добавлен API Reference.refersTo(), который можно использовать для более быстрого возвращения памяти. В интерпретаторе ускорен поиск классов и методов. Добавлена возможность верификации байткода на этапе установки, а не при выполнении, что позволило сократить время запуска приложений.

  • Добавлена поддержка технологии Bluetooth LE Audio (Low Energy), позволяющей снизить энергопотребление при передаче высококачественных звуковых потоков через Bluetooth. В отличие от классического Bluetooth новая технология также позволяет переключаться между разными режимами использования для достижения оптимального соотношения между качеством и энергопотреблением.
  • Добавлена поддержка спецификации MIDI 2.0 и возможность подключения музыкальных инструментов и контроллеров, поддерживающих MIDI 2.0, через порт USB.
  • Для приложений, генерирующих ключи, API Keystore и KeyMint теперь предоставляют более детальные и точные индикаторы ошибок и позволяют использовать исключения java.security.ProviderException для перехвата ошибок.
  • В AudioManager добавлен API для маршрутизации звука, позволяющий определить каким образом будет обработан звуковой поток. Добавлен метод getAudioDevicesForAttributes() для получения списка устройств, в через которые возможен вывод звука, а также метод getDirectProfilesForAttributes() для определения возможности прямого воспроизведения звуковых потоков.

Источник.