Бета-выпуск платформы Android P
Компания Google представила бета-версию открытой мобильной платформы Android P. Релиз Android P, который скорее всего будет поставляться под номером Android 9, ожидается в третьем квартале 2018 года. Для оценки новых возможностей платформы предложена программа бета-тестирования, в рамках которой экспериментальную ветку можно установить и поддерживать в актуальном виде через штатный интерфейс установки обновлений (OTA, over-the-air), без необходимости ручной замены прошивки. Обновления доступны для устройств Pixel, Pixel XL Pixel 2, Pixel 2 XL, Essential Phone, Nokia 7 plus, Oppo R15 Pro, Sony Xperia XZ2, Vivo X21UD, Vivo X21 и Xiaomi Mi Mix 2S.
Ключевые новшества Android P:
- В настройки добавлен режим адаптивного использования аккумулятора, позволяющий ограничить расходование ресурсов аккумулятора для редко используемых приложений. Для вычисления приоритетов доступа к системным ресурсам применяется алгоритм машинного обучения, которые определяет какие из приложений наиболее важны пользователю. На основании приоритетов приложения объединяются в группы с различными ограничениями активности (ограничения на запуск заданий, сетевую активность, интенсивность пробуждения и отправку сообщений Firebase);
- Реализована система рекомендаций App Actions, при помощи которой приложение может быть рекомендовано пользователю в тот момент, когда он наиболее заинтересован в выполнении действий, которые может обеспечить данная программа. Система основана на применении методов машинного обучения и нацелена на предоставлении подсказки о наличии нужных приложений, которые будут оптимальны в контексте текущего сеанса работы пользователя в интерфейсе запуска приложений, при выделении текста, при поиске, в Google Play и при использовании интерактивного ассистента;
- Представлена система адаптивного изменения яркости (Adaptive Brightness), которая использует машинное обучение для установки наиболее оптимальной для конкретного пользователя яркости экрана с учётом его предпочтений (система обучается на то какую яркость выставляет пользователь в разных условиях);
- Поддержка слайсов (Slices), при помощи которых приложения могут предоставить доступ к удалённому контенту в различных местах, например, в интерфейсе поиска и в интерактивном ассистенте. Слайсы позволяют организовать интерактивное взаимодействие с использованием переключателей, опций, ползунков, прокрутки и других элементов интерфейса;
- Улучшен вывод уведомлений о поступлении новых сообщений. Подобные уведомления теперь могут выводиться в стиле мессенджера с показом нити разговора, привязкой к отправителям, подсказками для быстрого ответа и поддержкой вставки изображений. Реализована возможность применения технологии Smart Reply для быстрого ответа на уведомления о поступлении новых сообщений (Smart Reply использует машинное обучение для автоматического формирования наиболее подходящего ответа);
- Новая система навигации, упрощающая переход между разными режимами работы интерфейса (домашний экран, обзор запущенных приложений, список приложений) при помощи одной интерактивной кнопки ползунка. В обзоре запущенных приложений значительно увеличены эскизы экрана, что позволяет оценить текущую активность в приложениях, добавлена возможность поиска и поддержка перехода к общему списку программ в один клик;
- Добавлен новый виджет «Увеличительное стекло», упрощающий выделение текста и точное управление курсоров в тексте. Виджет автоматически может применяться в любых формах ввода на основе класса TextView, для адаптации к другим интерфейсам ввода предложен Magnifier API;
- Добавлен новый интерфейс для определения приложений, активно расходующих заряд аккумулятора при фоновой работе. Подобные приложения теперь отображаются в разделе настройки параметров аккумулятора и могут быть в один клик ограничены от выполнения фоновых работ и доступа к сети;
- Добавлен API динамической обработки звука (Dynamics Processing API), позволяющий увеличить акустическое качество звука в приложениях за счёт изоляции определённых частот и манипуляции уровнем громкости (например, можно сделать более слышимым голос вдалеке, отрезав сопутствующие шумы и увеличив громкость для определённых частот);
- Добавлен универсальный диалог для биометрической аутентификации с использованием различных видов сенсоров (отпечатки пальцев, распознавание лица, анализ радужной оболочки глаза). Приложения теперь могут использовать штатный API BiometricPrompt для вывода диалога биометрической аутентификации вместо создания собственных диалогов;
- Добавлена поддержка защищённых подтверждений (Protected Confirmation), использующих цифровые подписи на уровне TEE (Trusted Execution Environment) для гарантирования, что определённая строка была показана пользователю и он согласился с выполнением операции.
- Добавлен новый тип хранилищ ключей StrongBox, предоставляющий более надёжную защиту закрытых ключей за счёт их хранения и обработки в специальных аппаратных окружениях с отдельным CPU, памятью и Flash;
- Для приложений заблокирован доступ к информации о сетевой активности в системе, включающей сведения о том, к каким хостам осуществляются сетевые подключения (функциональность netstat);
- Добавлена поддержка технологии «DNS over TLS», позволяющей защитить канал связи с DNS-сервером. «DNS over TLS» отличается от «DNS over HTTPS» применением штатного протокола DNS (обычно используется сетевой порт 853), завёрнутого в шифрованный канал связи, организованный при помощи протокола TLS с проверкой валидности хоста через TLS/SSL-сертификаты, заверенные удостоверяющим центром (в «DNS over HTTPS» резолвер обрабатывает запросы через Web API);
- Поддержка протокола Wi-Fi RTT (WiFi Round-Trip-Time, IEEE 802.11mc) для получения информации о расстоянии до точек доступа, что можно использовать в приложениях для определения местоположения и навигации внутри зданий. Функциональность доступна через новый RTT API и требует наличия в устройстве поддержки IEEE 802.11mc. Зная расстояние до 3 и более точек доступа можно рассчитать позицию смартфона в пространстве с точностью в 1–2 метра, чего достаточно для организации навигации в помещениях и для активации привязанных к местоположению сервисов. Расстояние определяется без соединения с точкой доступа, что позволяет сохранить приватность;
- Приложениям предоставлены средства для полноэкранного вывода на устройствах с безрамочными экранами. Для управления отображением контента на таких экранах добавлен API DisplayCutout, при помощи которого приложение может проверить наличие на экране неотображаемых областей (например, закругление экрана и островок для фронтальной камеры, громкоговорителя и сенсоров), определить какие части изображения попадут в неотображаемые области и выбрать режим размещения контента относительно этих областей. В средства для разработчиков добавлена возможность симуляции подобных экранов на любых устройствах, что позволяет протестировать корректность отображения контента приложений;
- Добавлен Multi-camera API, позволяющий организовать одновременный доступ сразу к нескольким камерам. Например, на устройствах с двумя раздельными фронтальными или задними камерами можно реализовать такие функции как бесшовное масштабирование, размытие фона (боке) и стереовидение. Для камеры также добавлен параметр Session, позволяющий сократить задержку перед началом записи, и параметр Surface для организации доступа приложений к непрерывному потоку данных с камеры. Добавлены API для использования подсветки ярким экраном в качестве фотовспышки и для доступа к данным оптического стабилизатора изображения для создания спецэффектов и программной стабилизации;
- Добавлен класс ImageDecoder, позволяющий декодировать изображение из буфера, файла или URL в виде битмапа для последующего использования с классами Bitmaps и Drawable. По сравнению с классом BitmapFactory, который теперь объявлен устаревшим, в ImageDecoder поддерживается масштабирование, пошаговое декодирование, постобработка (например, можно применить различные эффекты, такие как закругление углов) и декодирование анимированных изображений;
- Добавлена встроенная поддержка воспроизведения HDR-видео (профиль HDR VP9 Profile 2), в том числе на устройствах поддержкой HDR можно просматривать HDR-фильмы, доступные на YouTube и Play Movies;
- Добавлена поддержка кодирования изображений в формате HEIF (HEIC у Apple), использующего эффективные методы сжатия HEVC (H.265), позволяющего хранить в одном файле несколько снимков или видео и поддерживающего операции кадрирования без перекодирования;
- JobScheduler, управляющий запуском плановых заданий и применяющий ограничения при работе приложений в фоновом или спящем режиме, теперь может учитывать состояние сетевой подсистемы при выполнении работ, связанных с сетевым взаимодействием. В том числе JobScheduler может учитывать предоставляемые операторами сингналы о состоянии сети, оценивать перегруженность или наличие безлимитного доступа. С другой стороны, заявленные для выполнения задачи могут объявлять приблизительный размер данных, который потребуется передать/отправить, характер трафика (например, упреждающая загрузка) и режим работы сети (безлимитный или ограниченный). Сопоставляя информацию о состоянии сети и параметры сетевых задач JobScheduler может принимать решения по запуску или приостановке определённых задач, например, при нахождении в сети с ограниченным трафиком может отложить большие сетевые запросы, а для безлимитного соединения разрешить упреждающую загрузку;
- Добавлен API TextClassifier для использования моделей машинного обучения для классификации текстов, например, для выделения дат, номеров рейсов и других типов информации из текста. Модели машинного обучения теперь могут обновляться прямо из Google Play. До версии 1.1 обновлён API Neural Networks, предоставляющий приложениям возможности по задействованию средств аппаратного ускорения для систем машинного обучения. API позиционируется как базовая прослойка для функционирования в Android фреймворков машинного обучения, таких как TensorFlow Lite и Caffe2. Для использования на мобильных устройствах предложен ряд готовых моделей нейронных сетей, в том числе MobileNets (распознавание объектов на фотографиях), Inception v3 (компьютерное зрение) и Smart Reply (подбор вариантов ответа на сообщения). В новом выпуске добавлен набор новых операторов Pad, BatchToSpaceND, SpaceToBatchND, Transpose, Strided Slice, Mean, Div, Sub и Squeeze. Для устройств Pixel 2 включён драйвер Qualcomm Hexagon HVX для ускорения квантованных моделей;
- Улучшены средства автозаполнения полей, предоставляемые фреймворком Autofill. API расширен возможностями, позволяющими менеджерам паролей расширять функциональность Autofill, например, производить фильтрацию данных, проверку ввода и применять режим совместимости для приложений без прямой поддержки Autofill;
- Добавлена реализация GlobalPlatform Open Mobile API (OMAPI API) для доступа к защищённым элементам (Secure Elements, SE) при проведении платежей по смарткартам и реализации различных защищённых сервисов. Для абстрагирования доступа к аппаратным защищённым элементам (eSE, UICC и т.п.) предусмотрена специальная HAL-прослойка;
- В рамках инициативы по уходу от использования нешифрованного HTTP в пользу TLS/HTTPS, настройки по умолчанию в NSC (Network Security Configuration) изменены для блокировки всего незашифрованного трафика. При использовании Network Security Configuration все соединения теперь должны создаваться поверх TLS;
- Добавлены новые правила SELinux, блокирующие доступ приложений к камере, микрофону и всем сенсорам, в случае работы процессов в фоновом режиме (нахождение в состоянии idle). Изменение поможет бороться с вредоносным и шпионским ПО, осуществляющим скрытую запись случайных разговоров или создание снимков окружающего пространства;
- В релизе планируется включить шифрование резервных копий с использованием секретной фразы, хранимой на стороне клиента, а также добавить возможность генерации случайных MAC-адресов для борьбы с отслеживанием беспроводными точками доступа;
- Продолжена оптимизация производительности и эффективности работы ART runtime. Профили выполнения изменены для задействования дополнительных оптимизаций и сокращения потребления памяти в скомпилированном коде приложений. Для популярных приложений размер DEX-файлов сокращен в среднем на 11%, что привело к снижению потребления системной памяти и ускорению запуска приложений;
- Проведены оптимизации для увеличения производительности кода на языке Kotlin. В компилятор добавлены изменения, оптимизирующие обработку циклов;
- Продолжена работа по снижению энерогопотребления в режимах Doze и App Standby, а также ограничению фоновой активности приложений для продления автономной работы устройств;
- В рамках подготовки к обязательной поддержке 64-разрядной архитектуры, в Google Play начиная с ноября 2018 года станут приниматься только новые приложения и обновления к существующим приложениям, поддерживающие как минимум APIv26 (SDK от Android 8), т.е. включающие 64-разрядные варианты библиотек, помимо 32-разрядных.
Кроме того, можно отметить выход майского набора исправлений проблем с безопасностью для Android, в котором устранены 23 уязвимости, из которых двум присвоен критический уровень опасности, а остальным высокий уровень опасности. Критические уязвимости найдены в компонентах к чипам NVIDIA и Qualcomm. Уязвимость в компоненте NVIDIA TEE позволяет любому локальному приложению выполнить код в контексте изолированного окружения TEE (Trusted Execution Environment). Уязвимость в беспроводном драйвере для чипов Qualcomm позволяет выполнить код с повышенными привилегиями при обработке специально оформленного файла.
© OpenNet