Android 11
Дата выхода: предварительная версия выпущена 19 февраля 2020 года, релиз - 8 сентября 2020 года.
API: 30.
Сладкое название: Red Velvet Cake (торт «Красный бархат»).
Визуальные изменения
Улучшена поддержка нестандартных дисплеев (pinhole - экраны с разными формами вырезов, waterfall - экран обтекает края устройства, устройства со сгибающимися складными экранами).
- Добавлен новый раздел в уведомления - Conversations. Идея в том, чтобы пользователи быстрее находили текущие диалоги из приложений для обмена сообщениями и могли на них реагировать:
- добавить в Bublles (если приложение их поддерживает);
- создать для этого диалога ярлык на рабочем столе;
- отложить уведомления для этого диалога;
- отметить диалог как “важный”.
Bublles. Каждый диалог можно свернуть в “пузырёк”, который будет отображаться на экране поверх остальных приложений, а при клике - открывать окно с диалогом.
Видеозапись экрана.
- Визуальные индикаторы для 5G.
Конфиденциальность и безопасность
Новые ограничения для повышения конфиденциальности пользователей. Например, приложение сможет использовать полученное разрешение на доступ к камере, микрофону и геолокации только один раз. При следующем запуске такого приложения будет повторно запрашиваться разрешение.
Обновлена биометрическая аутентификация, а именно добавлен интерфейс, который позволяет указать тип аутентификации - Strong, Weak, Device credential.
Добавлен API BlobStoreManager для безопасного обмена бинарными данными между приложениями.
Производительность и качество
Беспроводная отладка приложений.
В ADB добавлен инкрементальный режим установки APK-пакетов. Цель - ускорить установку больших (2гб+) приложений в процессе их разработки. Сначала будут устанавливаться данные, необходимые для запуска приложения, а все остальное догружаться в фоне.
Добавлен GWP-ASan - анализатор памяти, который позволяет находить и исправлять проблемы, вызванные небезопасной работой с памятью.
Расширен и улучшен API Neural Networks.
Улучшена работа с экранными клавиатурами: отображение, скрытие, проверка видна ли клавиатура в данный момент. Пример использования.
- Обновлен API MediaCodec:
- Новый способ распределения буферов.
- Декодирование с низкой задержкой.
Устарело API OpenSL ES. Вместо него рекомендуется использовать Oboe.
Добавлена новая функция AAudioStream_release(), которая освобождает поток, но не закрывает его.
Добавлен MediaParser - низкоуровневый API для извлечения данных из медиа-контейнера.
Поддержка 5G.
Новые возможности для Wi-Fi Passpoint.
Расширен API Wi-Fi suggestion.
Встроенный декодер изображений.
Frame rate API - позволяет информировать систему о предполагаемой частоте кадров. На основе этой информации система определяет и выставляет оптимальную частоту кадров.
Режим HDMI с низкой задержкой (известен как “игровой режим”) - позволяет отключить постобработку графики на телевизоре или внешнем мониторе.
Для более эффективного тестирования в отлаживаемое приложение теперь можно загружать внешние графические слои (GLES, Vulkan).
Возможность запуска приложения, используя ANGLE, чтобы оценить производительность и решить, должно ли конкретное приложение использовать ANGLE, а не собственные драйверы OpenGL ES.
Приложения, которые работают с камерой устройства, теперь смогут отключать виброзвонок во время работы с камерой с помощью метода setCameraAudioRestriction().
Улучшены возможности камеры эмулятора Android.
Улучшена поддержка анимированных файлов формата HEIF. Теперь метод ImageDecoder.decodeDrawable () возвращает всю последовательность изображений в виде AnimatedImageDrawable (раньше возвращался один кадр). Также можно извлечь отдельный кадр с помощью метода MediaMetadataRetriever.getImageAtIndex().
- Обновлены сервисы, которые позволяют создавать более доступные приложения для людей с ограниченными возможностями.
Другие обновления
Добавлен API, который позволяет получать информацию о причинах завершения работы приложения: по инициативе пользователя, из-за сбоя, принудительно завершено системой.
Добавлен API ResourcesLoader, благодаря которому можно динамически загружать какие-либо ресурсы во время работы приложения.
Динамические intent-фильтры.
Улучшены сервисы автозаполнения:
- Для AssistStructure.ViewNode добавлен новый метод getHintIdEntry(), который возвращает идентификатор, используемый для установки подсказки, связанной с view.
- Чтобы помочь сервисам автозаполнения улучшить свои подсказки, был добавлен способ выявления случаев, когда пользователю были предоставлены варианты автозаполнения, но он ни один не выбрал. FillEventHistory в этом случае регистрирует событие типа TYPE_DATASETS_SHOWN.
Полезные ссылки
Android 11 - официальная документация.
Android API Differences Report(API 29 -> DP4).
Ключевые новшества Android 11 на opennet: первый, второй и третий выпуски.
The Android 11 feature list - полный список изменений.
Android 11 for developers - новость о релизе в блоге.
Android 11 - список изменений с акцентом на визуальную составляющую.