android_p
Разработчики Google делятся первым предварительным предварительным просмотром Android P, новейшей версии Android. Это ранняя базовая сборка для разработчиков — вы — наши самые надежные рецензенты и тестеры ;-). Ранняя обратная связь от нашего сообщества разработчиков имеет решающее значение для того, чтобы помочь нам развить платформу в соответствии с вашими потребностями. Нам бы хотелось, чтобы вы начали использовать новые функции и API в P, и, как всегда, мы полагаемся на ваши ранние отзывы и идеи, поэтому, пожалуйста, дайте нам свой отзыв!

Новые функции, которые можно попробовать в приложениях

Посмотрим на некоторые из интересных функций в этом первом предварительном просмотре Android P, который мы хотим, чтобы вы попытались дать отзыв.

Позиционирование в помещении с помощью Wi-Fi RTT

Точное  позиционирование в помещении было давней проблемой, которая открывает новые возможности для услуг, основанных на местоположении. Android P добавляет поддержку платформы для протокола IEEE 802.11mc WiFi, также известного как WiFi Round-Trip-Time (RTT) — чтобы вы могли использовать позиционирование в помещении в своих приложениях.

image4

На устройствах Android P с поддержкой аппаратного обеспечения, с включенным и разрешенным определением местоположения ваши приложения могут использовать RTT API для измерения расстояния до ближайших точек доступа WiFi (AP). Устройство не нуждается в подключении к точкам доступа для использования RTT и для обеспечения конфиденциальности,  телефон только может определить расстояние, а не точки доступа.

Зная расстояние до 3 или более точек доступа, вы можете рассчитать позицию устройства с точностью от 1 до 2 метров. С этой точностью вы можете создавать новые впечатления, такие как встроенная навигация; location-based услуги на основе местоположения, такие как дистанционное голосовое управление (например, «Включить этот свет»); и информацию о местоположении (например, «Существуют ли специальные предложения для этого продукта?»).

Поддержка Display cutout

Теперь приложения могут в полной мере использовать последние экраны устройств с полноэкранным контентом. Мы добавили Display cutout  в платформу вместе с API, которые вы можете использовать для управления отображением вашего контента.

Читать ещё :   Google Maps, давай до свидания

Поддержка вырезания работает без проблем для приложений, при этом система управляет высотой строки состояния, чтобы отделить ваш контент от выреза. Если у вас есть критический, захватывающий контент, вы также можете использовать новые API-интерфейсы для проверки формы выреза и запроса на полноэкранный макет вокруг него. Вы можете проверить, имеет ли текущее устройство вырез, вызывая getDisplayCutout(), а затем определяя местоположение и форму области выреза с помощью DisplayCutout. Новый атрибут макета окна, layoutInDisplayCutoutMode, позволяет вам рассказать системе, как и когда выкладывать свой контент относительно области выреза. Подробности здесь.

Чтобы упростить сборку и тестирование поддержки вырезания в вашем приложении, мы добавили опцию разработчика, которая имитирует вырез на любом устройстве. Мы рекомендуем тестировать существующие приложения с включенным отключением дисплея, чтобы убедиться, что ваш контент отображается правильно.

image3

Вы можете запустить Android-эмулятор под управлением Android-P, зайти в настройки разработчика и установить три различных режима дисплея на эмуляторе устройства: Narrow, Tall, Wide.

 

Улучшенные уведомления о сообщениях

В Android P мы поставили приоритет в улучшении видимости и функции в уведомлениях. Попробуйте новый стиль уведомления MessagingStyle — в нем подчеркивается, кто является отправкой сообщений и как вы можете ответить. Вы можете показывать разговоры, прикреплять фотографии и наклейки и даже предлагать умные ответы. Подробнее см. здесь.

image5 image8

В уведомлениях MessagingStyle вы можете теперь показывать разговоры и смарт-ответы [слева] и даже прикреплять изображения и наклейки [справа].

Многокамерный API

Теперь вы можете получать потоки одновременно с двух или более физических камер на устройствах под управлением Android P. На устройствах с камерами с dual-front или dual-back  вы можете создавать инновационные функции, которые невозможно использовать с помощью только одной камеры, такой как бесшовный зум, боке , и стерео зрения. API также позволяет вам вызывать логический или плавный поток камеры, который автоматически переключается между двумя или более камерами. Мы с нетерпением ждем ваших новых и интересных творений, поскольку устройства Android P, поддерживающие несколько камер, достигнут рынка в предстоящем году.

Читать ещё :   Сохранение состояний пользовательского интерфейса

Другие улучшения камеры включают новые Session parameters, которые помогают уменьшить задержки во время первоначального захвата и Surface sharing, что позволяет клиентам камеры обрабатывать различные случаи использования без необходимости остановки и запуска потоковой передачи камеры. Мы также добавили API для поддержки flash support на основе дисплея и доступа к отметкам времени OIS timestamps для стабилизации изображения на уровне приложений и специальных эффектов.

ImageDecoder для растровых изображений и drawables

Android P дает вам более простой способ декодирования изображений в растровые изображения или drawables — ImageDecoder, который обесценивает BitmapFactory. ImageDecoder позволяет создавать растровые изображения или извлекать их из байтового буфера, файла или URI. Он предлагает несколько преимуществ по сравнению с BitmapFactory, включая поддержку точного масштабирования, одношаговое декодирование в аппаратную память, поддержку пост-обработки в декодировании и декодирование анимированных изображений.

Вы можете декодировать и масштабировать до точного размера, просто вызвав setResize() с целевыми размерами. Вы также можете вызвать getSampledSize(), чтобы получить размеры изображения с определенной частотой дискретизации, а затем масштабировать их до этих размеров. Если вы хотите выполнить пост-обработку изображения — например, применить закругленные углы для маски круга или более сложные эффекты, вы можете передать ImageDecoder любой файл android.graphics.PostProcessor. Вы также можете создавать Drawables напрямую, с ImageDecoder.decodeDrawable(). Если кодированное изображение является анимированным GIF или WebP, Drawable будет экземпляром нового AnimatedImageDrawable.

Продолжение следует…