Статьи Android 10
Post
Cancel

Android 10

android-10

Дата выхода: 3 сентября 2019.
API: 29.
Сладкое название: Quince Tart (пирог с айвой).


Визуальные изменения

  • Навигация жестами. В данном режиме всё экранное пространство выделяется под контент, а для управления используются экранные жесты. Подробнее в гайде.

  • Тёмная тема. Тема добавлена на уровне системы и может быть включена в настройках. Применяется как для системы, так и для приложений. При этом можно использовать функцию Force Dark, которая анализирует внешний вид приложения и автоматически применяет к нему тёмную тему. Подробнее в гайде.

  • Панель настроек. Позволяет показывать настройки приложения в всплывающей панели. При этом настройки ограничены следующими типами:
    • ACTION_INTERNET_CONNECTIVITY - настройки, связанные с подключением к интернету (режим полёта, wi-fi, мобильные сети).
    • ACTION_WIFI - настройки wi-fi.
    • ACTION_NFC - настройки, связанные с беспроводной передачей данных между устройствами.
    • ACTION_VOLUME - настройки громкости.

  • Улучшено меню отправки контента.

  • Рекомендации в уведомлениях. Данная функция обновлена и теперь в уведомлениях можно увидеть рекомендуемые ответы и действия. При этом эти действия могут генерироваться системой автоматически. Либо приложение может предоставлять свои собственные действия, а системные отключить.

  • Автоматические субтитры. Эта функция автоматически создает субтитры к видеороликам, подкастам, голосовым сообщениям и даже записям, которые вы сделали сами. Чтобы включить ее, достаточно одного нажатия. Подключение к Интернету при этом не требуется.

  • Усилитель звука. С помощью приложения “Усилитель звука” можно усилить нужные звуки, отфильтровать фоновый шум и отрегулировать настройки для максимально комфортного звучания.

  • Режим концентрации внимания. Если вам нужно сосредоточиться на важных задачах, включите режим концентрации внимания, выберите приложения, которые вас отвлекают, и приостановите их работу.

  • Family Link. Позволяет ограничивать время использования устройства и доступ к определенным приложениям и контенту, а также просматривать историю приложений и следить за местоположением устройства.

Конфиденциальность и безопасность

  • Предоставлено новое хранилище Scoped storage (хранение по областям). С его помощью приложение может создать на внешнем носителе каталог для хранения своих файлов, к которому не смогут получить доступ другие приложения. Всем приложениям, ориентированным на Android 10 и выше, не требуется дополнительных разрешений для доступа к таким файлам, а также к медиа файлам (фото, видео итд.), созданным самим приложениям. Для обращения к файлам в каталоге приложения добавлен метод getExternalFilesDir().

    Подробнее об управлении внешним хранилищем написано в гайде.

  • Добавлено новое разрешение ACCESS_BACKGROUND_LOCATION на получение местоположения в фоновом режиме. Теперь пользователь может разрешить получение информации о его местоположении только когда приложение находится на переднем плане. Подробнее можно почитать здесь, либо в гайде.

  • Ограничена возможность запуска приложений из фона с переходом на передний план. Это позволит минимизировать прерывания работы пользователя с другими приложениями и лучше контролировать то, что отображается на экране.

    Вместо запуска из фона, рекомендуется, чтобы запуск приложения был следствием взаимодействия с пользователем. Например, при помощи высокоприоритетных уведомлений.

  • Платформа больше не отслеживает информацию о контактах, чтобы скрыть от приложений информацию о предпочтениях пользователя. Теперь при поиске контакта результаты не будут упорядочиваться по частоте взаимодействия.

  • Рандомизация MAC-адресов. На устройствах Android 10 и выше система по умолчанию будут генерироваться случайные MAC-адреса. Это не позволит отслеживать перемещение пользователя между WiFi-сетями. Также добавлены следующие методы:
  • Ограничен доступ к файлам в директории /proc/net, которые содержат информацию о состоянии сети. Для получения доступа к этой информации следует использовать класс NetworkStatsManager или ConnectivityManager.

  • Ограничен доступ к неизменяемым идентификаторам устройства, таким как IMEI и серийный номер. Для получения к ним доступа приложения должны иметь разрешение READ_PRIVILEGED_PHONE_STATE.

  • Ограничен доступ к данным из буфера обмена: если приложение не находится на переднем плане, то оно не может получить доступ к данным в буфере обмена.

  • Защита серийного номера USB-устройства. Если приложению требуется серийный номер, то необходимо, чтобы пользователь предоставил разрешение на его считывание. Подробнее о том, как работать с USB можно почитать в специальном гайде.

  • Изменён объём информации, предоставляемый методом getCameraCharacteristics(). Для получения доступа к некоторым полям требуется разрешение CAMERA. Список таких полей можно найти здесь.

  • Приложения больше не могут включать и отключать Wi-Fi, а метод WifiManager.setWifiEnabled() всегда возвращает false. Если же нужно предложить пользователю включить или отключить Wi-Fi, то используйте панель настроек (settings panel).

  • Ограничен доступ к настроенным сетям Wi-Fi. Для защиты конфиденциальности пользователей ручная настройка списка сетей Wi-Fi ограничена системными приложениями и device policy controllers (DPC). Если приложение предназначено для Android 10 или выше, то следующие методы не вернут полезной информации:

    Если приложению нужно подключиться к Wi-Fi, то используйте альтернативные методы:

  • Для возможности использования некоторых методов телефонии, Bluetooth и Wi-Fi требуется разрешение ACCESS_FINE_LOCATION. Список этих методов:
  • Ограничен доступ к содержимому экрана. Изменена область действия разрешений READ_FRAME_BUFFER, CAPTURE_VIDEO_OUTPUT, и CAPTURE_SECURE_VIDEO_OUTPUT, что в свою очередь предотвращает “тихий” доступ к содержимому экрана. Эти разрешения теперь относятся к signature permissions. Приложения, которым необходим доступ к экранному содержимому устройства, должны использовать MediaProjection, который отправляет запрос пользователю для получения разрешения.

  • Проверка разрешений для устаревших приложений. Если приложение предназначено для Android 5.1 (API 22) или ниже, то при первом запуске такого приложения на Android 10 пользователь увидит экран, который даёт возможность аннулировать разрешения, выданные системой автоматически при установке приложения.

  • Введено новое разрешение ACTIVITY_RECOGNITION для приложений, которым необходимо распознавать физическую активности: ходьбу, езду итд. Это сделано для того, чтобы пользователи могли в настройках увидеть то, как используются данные датчика.

    Некоторые библиотеки, например, Activity Recognition и Google Fit, не предоставляют информацию, если пользователь не предоставил это разрешение.

  • Начиная с Android 10, приложения не могут посмотреть, как разрешения группируются в пользовательском интерфейсе.

  • Улучшена биометрическая аутентификация:
    • Проверка на возможность биометрической аутентификации.
    • Возможность аутентификации пользователя с помощью резервного механизма, например, чрез PIN-код устройства или пароль. Это актуально, когда пользователь по каким-либо причинам не может авторизоваться, используя биометрический код.
    • Если аутентификация пользователя была произведена неявно, то системе будет отправляться подсказка о том, что не следует требовать повторной аутентификации.
  • TLS 1.3. Добавлена и включена по умолчанию для всех соединений.

Другие изменения

  • Проверка вызовов. Android 10 позволяет идентифицировать вызовы, которые отсутствуют в адресной книге пользователя, как потенциальные спам-вызовы и отклонять их. Информация о таких вызовах фиксируется в журнале вызовов с пометкой о том, что вызов заблокирован.

  • Возможность обмена аудиовходом между двумя приложениями. Подробнее в гайде.

  • Возможность копирования звука, воспроизводимого другими приложениями. Подробнее в гайде.

  • Начиная с Android 10, уведомления MediaStyle отображают seekbar, который показывает ход воспроизведения и может быть использован для перемещения по аудиофайлу. Внешний вид seekbar’а контролируется правилами:
    • seekbar появляется, если существует активная MediaSession и её продолжительность больше нуля. То есть seekbar не отображается для неопределённых потоков, таких как прямые трансляции и радиопередачи.
    • если используется флаг ACTION_SEEK_TO, то пользователь может перетаскивать seekbar.

  • Thermal API. Позволяет приложениям контролировать показатели температуры CPU и GPU и самостоятельно принимать меры для снижения нагрузки (например, снижать FPS в играх и уменьшать разрешение транслируемого видео), не дожидаясь пока система принудительно начнёт урезать активность приложений.

  • Улучшена поддержка монохромной камеры.

  • Динамическая глубина резкости. Новый формат файлов DDF (Dynamic Depth Format), в котором можно создавать, хранить и отправлять фотографии с изменяемой глубиной резкости и AR-контентом.

  • Добавлен новый формата для сохранения фотографий - HEIC.

  • Добавлен класс WebViewRenderProcessClient, который позволяет определить, что WebView перестал отвечать на запросы. Класс абстрактный, поэтому для его использования нужно определить собственный подкласс и реализовать в нём методы onRenderProcessResponsive() и onRenderProcessUnresponsive. Далее экземпляр этого класса прикрепляется к одному или нескольким объектам WebView. Если WebView перестанет отвечать, то система периодически (не чаще, чем раз в пять секунд) вызывает метод onRenderProcessUnresponsive(). Если WebView начинает отвечать, то система вызывает onRenderProcessResponsive().

  • Сборка мусора на основе Mallinfo.

  • Улучшена функциональность TextClassifier.

  • В Android 10 появилась встроенная поддержка слуховых аппаратов. Теперь их можно подключать к телефону и использовать, например, для прослушивания музыки и во время вызовов. Для передачи данных используется Bluetooth с низким энергопотреблением.

  • Android Auto. Сервис Android Auto теперь встроен в систему, поэтому вы можете просто подключить телефон к бортовому компьютеру и пользоваться всеми возможностями Android на дисплее автомобиля. Скачивать отдельное приложение не нужно.

Полезные ссылки

What’s in Android 10 - список всех изменений.
Android 10 - список изменений с акцентом на визуальную составляющую или то, с чем работают пользователи.
Выпуск мобильной платформы Android 10 - обзорная статья по новшествам платформы.

This post is licensed under CC BY 4.0 by the author.