Google выпустила мобильную платформу Android 13
Google выпустила релиз открытой мобильной платформы Android 13. Исходные тексты выложили в Git-репозиторий проекта (ветка android-13.0.0_r1). Пока обновления подготовили для собственных устройств серии Pixel, а позднее их выпустят для Samsung, Asus, Nokia, iQOO, Motorola, OnePlus, Oppo, Realme, Sharp, Sony, Tecno, Vivo и Xiaomi.
Также сформированы универсальные сборки GSI для разных устройств на базе архитектур ARM64 и x86_64.
добавлен запрос полномочий на вывод уведомлений приложениями;
снизилось число приложений, требующих доступа к информации о местоположении пользователя;
повысилась конфиденциальность и степень информирования пользователя о возможных рисках. Истории помещения данных в буфер обмена после определённого времени неактивности будут удаляться автоматически;
добавлена унифицированная страница с настройками безопасности и конфиденциальности с наглядной цветовой индикацией состояния безопасности;
добавлен новый тип полномочий для Wi-Fi. Он предоставляет приложениям для поиска беспроводных сетей доступ к подмножеству API управления Wi-Fi, за исключением вызовов, связанных определением местоположения;
внедрён API для размещения кнопок в секции с быстрыми настройками в верхней части выпадающей панели уведомлений. Теперь приложение может вывести запрос на размещение своей кнопки с быстрым действием;
оптимизирована операция переноса слов с использованием дефиса. В новой версии производительность переноса увеличена на 200% и практически не влияет на скорость отрисовки;
добавлена поддержка программируемых графических шейдеров (объектов RuntimeShader), определяемых на языке AGSL (Android Graphics Shading Language). Они используются для реализации различных визуальных эффектов, таких как пульсация, размытие и растягивание при прокрутке за границу страницы. Эти эффекты теперь можно создавать и в приложениях;
базовые Java-библиотеки платформы и средства разработки приложений обновили до OpenJDK 11;
в рамках проекта Mainline подготовлены новые обновляемые системные модули (Bluetooth и Ultra wideband). Обновления затрагивают не привязанные к оборудованию компоненты, которые загружаются через Google Play отдельно от OTA-обновлений прошивки от производителя. Через Google Play также распространяются модули с Photo picker и OpenJDK 11;
упрощено тестирование и отладка новых возможностей платформы — изменения теперь можно выборочно включать для приложений в разделе настроек для разработчиков или через утилиту adb;
внедрён API, позволяющий приложению отказаться от ранее полученных полномочий;
появилась возможность регистрации обработчиков несистемных широковещательных операций (BroadcastReceiver) в привязке к контексту их использования. Добавлены новые флаги RECEIVER_EXPORTED и RECEIVER_NOT_EXPORTED, которые позволяют исключить использование обработчиков для отправки широковещательных сообщений из других приложений;
добавлена поддержка цветных векторных шрифтов в формате COLRv1 и новый набор многоцветных emoji, поставляемый в формате COLRv1;
в среде выполнения приложений ART реализован более эффективный сборщик мусора на API ядра Linux userfaultfd, который позволяет создавать обработчики обращений к невыделенным страницам памяти (page faults) в пространстве пользователя;
в ART повысилась производительность переключения на нативный код и наоборот. JNI-вызовы теперь выполняются до 2,5 раз быстрее. Код обработки ссылок во время выполнения переведён на работу в неблокирующем режиме для сокращения подвисаний. Добавлен API Reference.refersTo (), который можно использовать для более быстрого возвращения памяти. В интерпретаторе ускорен поиск классов и методов. Добавлена возможность верификации байткода на этапе установки;
появилась поддержка технологии Bluetooth LE Audio (Low Energy) для снижения энергопотребления при передаче через Bluetooth;
через порт USB добавлена поддержка спецификации MIDI 2.0 и возможность подключения музыкальных инструментов и контроллеров, поддерживающих MIDI 2.0;
для приложений, генерирующих ключи, API Keystore и KeyMint теперь предоставляют более детальные и точные индикаторы ошибок и позволяют использовать исключения java.security.ProviderException для перехвата ошибок;
в AudioManager добавлен API для маршрутизации звука, позволяющий определить способ обработки звукового потока. Добавлен метод getAudioDevicesForAttributes () для получения списка устройств, в через которые возможен вывод звука, а также метод getDirectProfilesForAttributes () для определения возможности прямого воспроизведения звуковых потоков.