Компания Google представила вторую тестовую версию открытой мобильной платформы Android 15. Релиз Android 15 ожидается в третьем квартале 2024 года. Для оценки новых возможностей платформы предложена программа предварительного тестирования. Сборки прошивки подготовлены для устройств Pixel 6/6a/6 Pro, Pixel 7/7a/7 Pro, Pixel 8/8a/8 Pro, Pixel Fold и Pixel Tablet.
Изменения в Android 15 Developer Preview 2 по сравнению с первой предварительной версией:
- Расширены возможности работы через спутниковые каналы связи. Добавлены новые элементы интерфейса для унификации использования спутниковой связи. Приложениям предоставлена возможность определения использования спутникового канала при помощи метода ServiceState.isUsingNonTerrestrialNetwork(). В интерфейсе для работы с
SMS/MMS реализована поддержка отправки и приёма сообщений через спутниковые каналы. - Проведена работа по упрощению использования телефона с поддержкой NFC для оплаты товаров одним касанием (tap to pay). Приложениям предоставлена возможность перевода NFC-адаптера в режим наблюдения, при котором устройство принимает запросы по NFC и отправляет на обработку заданному процессу, но не отвечает и не предаёт данные NFC-ридерам.
- Значительно расширены возможности для отрисовки PDF-документов (API PdfRenderer). Например, предоставлены средства для отрисовки защищённых паролем файлов, показа аннотаций, редактирования форм, поиска внутри документа и выделения областей для копирования через буфер обмена. Добавлены оптимизации, снижающие потребление ресурсов и ускоряющие просмотр локальных PDF-файлов. Реализация API PdfRenderer вынесена в отдельный модуль, обновляемый через Google Play и не привязанный к основной платформе.
- Улучшены возможности для автоматического распознавания языка и переключения языков. Приложениям предоставлены расширенные опции для тонкой настройки переключения языков во время распознавания речи. Например, режим EXTRA_LANGUAGE_SWITCH_INITIAL_ACTIVE_DURATION_TIME_MILLIS допускает переключение только вначале звукового сеанса, а режим EXTRA_LANGUAGE_SWITCH_MATCH_SWITCHES отменяет переключение языка после определённого числа переключений, что может быть востребовано в ситуациях, когда заранее известно, что в одном сеансе будет использован только один язык.
- Предоставлены средства для гибкого управления разрывом строк. В виджете TextView для улучшения читаемости при помощи тегов и можно управлять переносом групп слов или частей слов на другую строку. Например в строке “The power and brains behind Pixel 8 Pro.” фраза “Pixel 8 Pro” будет всегда отображаться в одной строке.
- Расширены возможности фильтрации intent-запросов. При помощи класса [[https://developer.android.com/reference/android/content/UriRelativeFilterGroup]] появилась возможность создания правил для блокирования или пропускания запросов на основе содержимого параметров URL и фрагментов URL. Правила фильтрации могут задаваться через новый тег в манифесте приложения.
- Расширена поддержка API OpenJDK. Например, добавлена поддержка дополнительных методов классов Math и StrictMath, упорядоченных коллекций и списков, использования ByteBuffer в Deflater и обновления ключей.
- Для приложений предоставлена возможность использована небольших вспомогательных экранов (Cover screen), которыми оснащаются некоторые складные смартфоны, такие как Samsung Galaxy Z Flip. Например, вспомогательный экран позволяет быстро ответить на звонок, ответить на сообщение, управлять камерой и выполнять другие действия без раскрытия устройства.
- Добавлен API, позволяющий приложениям определять выполнение записи экрана. Приложение может задать callback-обработчик, который будет вызван, в случае если включена запись экрана и окно приложения попадает в видимую область. Предложенная возможность позволяет показывать пользователю предупреждения о записи в случае отображения конфиденциальных данных.
- Добавлен API ApplicationStartInfo, через который можно получить информацию о состоянии при запуске программы. Например, можно узнать прокэшированы ли компоненты приложения (cold, warm или hot), как долго выполнялись разные стадии запуска, что послужило причиной запуска, а также определить метрики, полезные для оптимизации скорости запуска.
- Изменена обработка остановленного состояния, при котором выполнение приложения приостанавливается до связанного с приложением действия пользователя. В новой версии предоставлены возможности для определения приложением прекращения приостановки: обработка сообщения BOOT_COMPLETED или использование метода ApplicationStartInfo.wasForceStopped().
- Помимо метода StorageStats.getAppBytes(), позволяющего получить общие данные о размере установленного приложения, добавлен метод StorageStats.getAppBytesByDataType(), дающий возможность получить раздельные сведения о размере пакета APK, скопилированном коде, извлечённых и сгенерированных данных.
- Внесены изменения в API запуска приоритетных сервисов (Foreground Service). Добавлен новый тип приоритетных сервисов – mediaProcessing, который можно использовать для ресурсоёмких операциях с мультимедийным содержимым, например, перекодирования из одного формата в другой.
- Предложен новый API для работы с движком хранения на базе СУБД SQLite, предоставляющий доступ к расширенным возможностям SQLite.
- Предоставлена возможность управления запасом яркости для HDR (отношение самого яркого белого цвета на HDR-изображении к яркости белого цвета в изображении в стандартном динамическом диапазоне). Для установки запаса яркости добавлен метод setDesiredHdrHeadroom, при помощи которого можно сбалансировать яркость при отображении
содержимого в SDR и HDR. - Добавлена поддержка стандарта CTA-2075, определяющего возможности для нормализации громкости, позволяющие избежать изменения уровня громкости для разного контента. Согласование громкости достигается через определение метаданных о характеристиках громкоговорителей и громкости звукового AAC-контента. Для нормализации громкости предложен объект LoudnessCodecController и метод OnLoudnessCodecUpdateListener, корректирующий параметры громкости перед обращением к кодеку.
- В AndroidX media3 ExoPlayer 1.0 включено по умолчанию включено использование пространственного звука для многоканального звука, если пространственный звук поддерживается на устройстве. Объявлен устаревшим класс Virtualizer, вместо которого для определения поведения и возможностей пространственного звука следует использовать класс Spatializer.
- Добавлен класс AutomaticZenRules, позволяющий приложениям настроить правила применения режима “не беспокоить” и определить ситуации, когда эти правила должны применяться.
- В виджете TextView по умолчанию включён атрибут elegantTextHeight, при котором вместо компактного шрифта будут использованы шрифты с более крупными вертикальными отступами, улучшающими читаемость текста.
Release.
Ссылка here.