Выпуск мобильной платформы Android 11
8 сентября 2020 года
Компания Google опубликовала релиз открытой мобильной платформы Android 11. Связанные с новым выпуском исходные тексты будут размещены в Git-репозиторий проекта (ветка android-11.0.0_r1). Обновления прошивки подготовлены для устройств серии Pixel, а также для смартфонов производства OnePlus, Xiaomi, OPPO и Realme. Также сформированы универсальные сборки GSI (Generic System Images), подходящие для разных устройств на базе архитектур ARM64 и x86_64.
- Внесены изменения, нацеленные на упрощение общения людей при помощи смартфона. В выпадающей сверху области с уведомлениями реализована сводная секция сообщений, позволяющая в одном месте просматривать и отвечать на сообщения из всех приложений (сообщения показываются без разделения на отдельные приложения). Важным чатам можно назначать статус приоритетных, чтобы они находились на видном месте и показывались даже в режиме "не беспокоить".
Активирована концепция "пузырей", всплывающих диалогов для выполнения действия в других приложениях не покидая текущей программы. Например, при помощи пузырей можно продолжать беседу в мессенджере, быстро отправлять сообщения, держать на виду список задач, вести заметки, обращаться к сервисам перевода и получать наглядные напоминания, параллельно c работой в других приложениях.
- В экранной клавиатуре реализована система контекстных подсказок для быстрого ответа на сообщения, предлагающая emoji или типовые ответы, подходящие по смыслу к полученному сообщению (например, при получении сообщения "как прошла встреча?" предлагает "отлично"). Механизм реализован при помощи методов машинного обучения и платформы Federated learning, позволяющей осуществлять подбор рекомендаций на локальном устройстве без обращения к внешним службам.
Предложен интерфейс для быстрого доступа к инструментам управления прикреплёнными устройствами, такими как системы управления умным домом, который вызывается длительным удержанием кнопки включения питания. Например, теперь можно не запуская отдельных программ быстро откорректировать параметры домашнего термостата, включить освещение и разблокировать двери. В интерфейсе также предложены кнопки для быстрого выбора привязанных платёжных систем и электронных посадочных талонов.
Добавлены новые элементы управления воспроизведением мультимедийного контента, позволяющие просто и быстро менять устройство, через которое осуществляется воспроизведение видео или звука. Например, можно быстро переключить воспроизведение музыки с наушников на телевизор или внешние колонки.
- Добавлена поддержка предоставления одноразовых полномочий, позволяющих дать возможность приложению выполнить привилегированную операцию один раз и при следующей попытке доступа запросить подтверждение вновь. Например, можно настроить вывод запроса полномочий при каждом обращении к микрофону, камере или API определения местоположения.
Реализована возможность автоматической блокировки запрашиваемых полномочий для приложений, не запускавшихся более трёх месяцев. При блокировке выводится специальное уведомление со списком давно не запускавшихся приложений, в котором можно вернуть полномочия, удалить приложение или оставить его заблокированным.
- Модернизирована система голосового управления устройством (Voice Access), позволяющая управлять смартфоном исключительно при помощи голосовых команд. Voice Access теперь понимает содержимое экрана и учитывает контекст, а также генерирует метки для accessibility-команд.
- В Android Emulator добавлена экспериментальная возможность запуска исполняемого кода 32- и 64-разрядных приложений, собранных для архитектуры ARM, в окружении запущенного в эмуляторе системного образа Android 11, собранного для архитектуры x86_64. В эмуляторе также появилась поддержка симуляции работы фронтальной и задней камеры. Для задней камеры реализован Camera2 API HW Level 3 с поддержкой переработки YUV и захвата в RAW-режиме.Для передней камеры реализован уровень FULL с поддержкой логической камеры (одно логическое устройство на базе двух физических устройств c узким и широким углом обзора).
- Расширена поддержка стандарта мобильной связи 5G, предоставляющего более высокую пропускную способность и меньшие задержки. Создающие большую сетевую нагрузку приложения, выполняющие такие действия, как просмотр потокового видео с качеством 4K и загрузка игровых ресурсов в высоком разрешении, теперь могут работать не только при соединении через Wi-Fi, но и при работе через сеть сотового оператора связи. Для упрощения адаптации работы приложений с учётом каналов связи 5G, расширен API Dynamic Meteredness, применяемый для проверки тарифицируется ли соединение по трафику и можно ли через него передавать большие объёмы данных. Данный API теперь охватывает сотовые сети и позволяет определить подключение к провайдеру, предоставляющем по настоящему безлимитный тариф при подключении через 5G.
Также расширен API Bandwidth Estimator, позволяющий прогнозировать размер доступной пропускной способности для загрузки или отправки данных, без проведения собственных сетевых тестов.
- Добавлена поддержка новых типов экранов "pinhole" (экран занимает всю лицевую поверхность смартфона, за исключением небольшого кружка в верхнем левом углу для фронтальной камеры) и "waterfall" (экран охватывает также закруглённые боковые грани устройства). Наличие дополнительных видимых и слепых областей на данных экранах приложения теперь могут определять при помощи штатного API Display Сutout. Для охвата боковых граней и организации взаимодействия в областях рядом с краями экранов "waterfall" в API предложены новые вызовы.
- Добавлены дополнительные возможности для обмена сообщениями. В области уведомлений добавлена отдельная секция с активными беседами, позволяющая сразу найти текущие разговоры, не покидая других приложений. Приложения для обмена сообщениями и чата переведены на использование API Bubbles, позволяющего применять концепцию "пузырей" для одновременной работы с несколькими приложениями - можно общаться в чате, не прекращая работу в другой программе. При быстром написании ответа из области уведомления теперь можно прикреплять к сообщениям изображения, копируя их через буфер обмена.
- Добавлены новые опции для контроля за доступом приложений к персональным данным. В дополнение к появившемуся в прошлом выпуске режиму доступа к местоположению только во время работы с программой (в фоне доступ блокируется) в Android 11 представлена поддержка одноразовых полномочий. Пользователь теперь может предоставить приложению временный доступ к ключевым полномочиям, таким как доступ к местоположению, микрофону и камере. Разрешение действует на время текущего сеанса и отзывается как только пользователь переключился на другую программу.
- Внесены изменения, упрощающие миграцию приложений на хранилище Scoped Storage, позволяющее изолировать файлы приложений на внешнем накопителе (например, на SD-карте). При использовании Scoped Storage данные приложения ограничиваются отдельным каталогом, а для получения доступа к общим коллекциям мультимедийных файлов требуется получение отдельных полномочий. В Android 11 реализована поддержка опционального режима доступа к носителю по полным файловым путям,обновлён API DocumentsUI, добавлена возможность выполнения пакетных операций в MediaStore.
- Расширены возможности по использованию биометрических датчиков для аутентификации. В API BiometricPrompt, предлагающем универсальный диалог биометрической аутентификации, появилась поддержка трёх типов аутентификаторов - надёжные, слабые и учётные данные устройства. Упрощена интеграция BiometricPrompt с различными архитектурами приложений, не ограничивающимися применением класса Activity.
- При сборке компонентов платформы, требующих повышенной защиты, задействованы работающие на этапе компиляции механизмы защиты CFI (Control Flow Integrity), BoundSan, IntSan (Integer Overflow Sanitization) и Shadow-Call Stack. Для выявления проблем при работе с памятью в приложениях включена проверка указателей в куче на основе привязанных к ним тегов (heap pointer tagging). Для поиска ошибок работы с памятью предложен дополнительный системный образ, в котором включён отладочный механизм HWAsan (Hardware-assisted AddressSanitizer).
- Подготовлен API BlobStoreManager, позволяющий организовать безопасный обмен бинарными данными между приложениями. Например, данный API можно использовать для предоставления нескольким приложениям доступа к моделям машинного обучения, при запуске этих приложений одним пользователем.
- Добавлена поддержка платформ для безопасного хранения и извлечения проверяемых идентификационных документов, таких как электронные водительские удостоверения.
- В рамках проекта Mainline, позволяющего обновлять отдельные системные компоненты без обновления платформы целиком, подготовлены 12 новых обновляемых модулей в дополнение к 10 модулям, доступным в Android 10. Обновления затрагивают не привязанные к оборудованию компоненты, которые загружаются через Google Play отдельно от OTA-обновлений прошивки от производителя. Среди новых модулей, которые смогут обновляться через Google Play без обновления прошивки - модуль для управления полномочиями, модуль для работы с накопителями (с поддержкой Scoped Storage) и модуль с NNAPI (Neural Networks API).
- Проведена работа по снижению влияния изменения поведения некоторых подсистем на работу приложений. Новшества, которые могут повлиять на работу приложений теперь могут быть опционально отключены и отрегулированы на уровне SDK. Для упрощения тестирования совместимости приложений с Android 11 в интерфейсе Developer Options и в утилите adb предоставлены настройки для включения и отключения возможностей, влияющих на совместимость (позволяю обойтись при тестировании без изменения targetSdkVersion и без пересборки приложения). Обновлены серые списки ограниченных программных интерфейсов, не предоставляемых в SDK.
- Добавлен фреймворк Resource Loader, позволяющий во время выполнения приложения динамически загружать дополнительные ресурсы.
- В сервис проверки звонков добавлена возможность передачи приложениям статуса верификации входящего звонка, который может использоваться для формирования после обработки звонка кастомизированных диалогов, например, включающих дополнительные действия для пометки звонка как спам или добавления в адресную книгу.
- Улучшен API Wifi Suggest, позволяющий приложению (менеджеру подключения к сети) влиять на алгоритм выбора предпочитаемых беспроводных сетей путём передачи ранжированного списка сетей, а также учитывающий при выборе сети дополнительные метрики, такие как сведения о пропускной способности и качества канала связи при прошлом подключении. Добавлена возможность управления беспроводными сетями, поддерживающими стандарт Hotspot 2.0 (Passpoint), в том числе обеспечен учёт времени истечения действия профиля пользователя и реализована возможность использования в профилях самоподписанных сертификатов.
- В API ImageDecoder добавлена поддержка декодирования и отображения анимированных изображений в формате HEIF (HEIC у Apple), использующем методы сжатия HEVC (H.265). По сравнению с анимированными изображениями GIF формат HEIF позволяет существенно сократить размер файла.
- В NDK добавлен API для использования в нативном коде операций кодирования и декодирования изображений (JPEG, PNG, WebP и т.п.), без привлечения сторонних библиотек. Новый API даёт возможность сократить размер APK-файлов с нативными приложениями и решить проблему с обновлением встраиваемых библиотек, которые могут содержать уязвимости.
- Приложения для работы с камерой теперь могут временно отключать виброзвонок (например, при выводе уведомлений) для блокирования его срабатывания во время сеанса с камерой.
- Предоставлена возможность включения режимов Боке (размытие фона на снимке) для устройств с их поддержкой (например, режим still обеспечивает более высокое качество снимка, а режим continuous более точное соответствие данным с сенсора).
- Добавлен API для проверки и настройки режимов воспроизведения видео с низкими задержками, востребованных в приложениях для потокового вещания в реальном времени. Кроме того, добавлена поддержка режима работы HDMI с низкими задержками (игровой режим), при котором для сокращения задержек на телевизоре или внешнем мониторе отключается постобработка графики.
- Добавлен 5G state API, дающий возможность приложению быстро определить подключение через 5G в режимах New Radio или Non-Standalone.
- Для устройств со сгибающимися складными экранами добавлен API для получения информации от датчика угла раскрытия половинок экрана. При помощи нового API приложения могут определять точный угол раскрытия и адаптировать вывод с его учётом.
- API для проверки звонков расширен возможностями для выявления автообзвонов. Для приложений фильтрующих звонки реализована поддержка проверки статуса входящего звонка через STIR/SHAKEN на предмет фальсификации идентификатора звонящего, а также возможность возвращать причину блокировки вызова и менять содержимое системного экрана, отображаемого после завершения звонка для пометки вызова как спам или добавления в адресную книгу.
- Расширен API Neural Networks, предоставляющий приложениям возможности по задействованию средств аппаратного ускорения для систем машинного обучения. API позиционируется как базовая прослойка для функционирования в Android фреймворков машинного обучения, таких как TensorFlow Lite и Caffe2. Добавлена поддержка функции активации Swish, позволяющей сократить время обучения нейронной сети и повысить точность выполнения определённых задач, например, ускорить работу с моделями компьютерного зрения на базе MobileNetV3. Добавлена операция Control, позволяющая создавать более продвинутые модели машинного обучения, поддерживающие ветвления и циклы. Реализован API Asynchronous Command Queue для сокращения задержек при запуске по цепочке мелких связанных моделей. Для использования на мобильных устройствах предложен ряд готовых моделей нейронных сетей, в том числе MobileNets (распознавание объектов на фотографиях), Inception v3 (компьютерное зрение) и [https://research.googleblog.com/2017/11/on-device-conversational-modeling-with.html Smart
Reply] (подбор вариантов ответа на сообщения). В новом выпуске реализована поддержка расширенного квантования с использованием знаковых целых чисел вместо чисел с плавающей запятой, которое позволяет сократить размер моделей и ускорить работу с ними. Кроме того, в API Quality of Service добавлены возможности для управления приоритетами и таймаутами при выполнении моделей, а API Memory Domain расширено для снижения операций копировании и преобразования памяти при последовательном выполнении моделей.
- Добавлены отдельные типы фоновых сервисов для камеры и микрофона, которые нужно будет запрашивать, если приложению необходимо получить доступ к камере и микрофону в момент неактивности.
- Добавлена поддержка миграции файлов со старой модели хранения в хранилище Scoped Storage, изолирующее файлы приложений на внешнем накопителе (например, на SD-карте). При использовании Scoped Storage данные приложения ограничиваются отдельным каталогом, а для получения доступа к общим коллекциям мультимедийных файлов требуется получение отдельных полномочий. Улучшено управление прокэшированными файлами.
- Добавлены новые API для синхронизации вывода элементов интерфейса приложений с появлением экранной клавиатуры для организации более плавной анимации вывода за счёт информирования приложения об изменениях на уровне отдельных кадров.
- Добавлен API для управления частотой обновления экрана, позволяющий для окон определённых игр и приложений установить другую частоту (например, по умолчанию Android использует частоту обновления 60Hz, но некоторые устройства позволяют увеличить её до 90Hz).
- Реализован режим бесшовного продолжения работы после установки OTA-обновления прошивки, требующего перезагрузки устройства. Новый режим позволяет приложениям сохранить доступ к шифрованному хранилищу без необходимости разблокировки устройства пользователем после перезагрузки, т.е. приложения сразу смогут продолжить выполнять свои функции и получать сообщения. Например, автоматическая установка OTA-обновления может быть запланирована на ночное время и проведена без участия пользователя.
- Добавлен API для получения информации о причинах завершения работы программы, позволяющий определить завершилась программа по инициативе пользователя, в результате сбоя или была принудительно завершена операционной системой. API также даёт возможность оценить состояние программы непосредственно перед завершением.
- Добавлен GWP-ASan, анализатор памяти в куче, позволяющий находить и исправлять проблемы, вызванные небезопасной работой с памятью. GWP-ASan с минимальными накладными расходами анализирует операции распределения памяти и выявляет аномалии. По умолчанию GWP-ASan включен для исполняемых файлов платформы и системных приложений. Для применения GWP-ASan к своим приложениям требуется отдельное включение.
- В утилиту ADB (Android Debug Bridge) добавлен инкрементальный режим установки APK-пакетов ("adb install --incremental"), позволяющий существенно ускорить установку больших программ, таких как игры, в процессе их разработки. Суть режима в том, что при установке первым делом переносятся необходимые для запуска части пакета, а остальное догружается в фоне, не блокируя возможность запуска программы. Например, при установке APK-файлов, размером более 2GB, в новом режиме время до возможности запуска сокращается до 10 раз. Инкрементальные установки пока работают только на устройствах Pixel 4 и 4XL, к релизу число поддерживаемых устройств будет расширено.
- Полностью переработан режим отладки с запуском ADB поверх беспроводного соединения. В отличие от отладки с соединением по TCP/IP, отладка через Wi-Fi не требует подключения кабеля для настройки и может запоминать ранее произведённые сопряжения устройств. В планах также реализация более простой схемы сопряжения по QR-коду, показываемому в Android Studio.
- Обновлены средства для аудита доступа к данным, позволяющие проанализировать к каким пользовательским данным обращается приложение и после каких действий пользователя. Переименованы некоторые вызовы API аудита.
Источники
правитьЛюбой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.
Комментарии
Если вы хотите сообщить о проблеме в статье (например, фактическая ошибка и т. д.), пожалуйста, используйте обычную страницу обсуждения.
Комментарии на этой странице могут не соответствовать политике нейтральной точки зрения, однако, пожалуйста, придерживайтесь темы и попытайтесь избежать брани, оскорбительных или подстрекательных комментариев. Попробуйте написать такие комментарии, которые заставят задуматься, будут проницательными или спорными. Цивилизованная дискуссия и вежливый спор делают страницу комментариев дружелюбным местом. Пожалуйста, подумайте об этом.
Несколько советов по оформлению реплик:
- Новые темы начинайте, пожалуйста, снизу.
- Используйте символ звёздочки «*» в начале строки для начала новой темы. Далее пишите свой текст.
- Для ответа в начале строки укажите на одну звёздочку больше, чем в предыдущей реплике.
- Пожалуйста, подписывайте все свои сообщения, используя четыре тильды (~~~~). При предварительном просмотре и сохранении они будут автоматически заменены на ваше имя и дату.
Обращаем ваше внимание, что комментарии не предназначены для размещения ссылок на внешние ресурсы не по теме статьи, которые могут быть удалены или скрыты любым участником. Тем не менее, на странице комментариев вы можете сообщить о статьях в СМИ, которые ссылаются на эту заметку, а также о её обсуждении на сторонних ресурсах.