Что нового в Android 11 для пользователей и разработчиков

7aqmfoqmhxnejrlxsg-klobhska.png

На этой неделе внезапно выкатили превью-версию Android 11 для разработчиков. Google говорит «разработчики, вы в прошлом году хорошо нам нафидбечили, поэтому в этот раз мы даём вам превью раньше, чем когда-либо» (релиз намечен на третий квартал, то есть до него примерно полгода).

Из-за этого версия особенно сырая, в неё почти наверняка попали не все готовящиеся нововведения (что-то привлекательное небось припасли для Google I/O), и часть вещей до релиза ещё могут откатить. Но всё равно же интересно разобраться, что нового!

Как водится, сайты вроде 9to5Google и Android Police тут же использовали превью-версию в хвост и в гриву, а в итоге выпустили кучу текстов: про каждое нововведение по отдельности. А мы продрались через эту кучу текстов и сделали для Хабра сводную подборку на русском — такую, чтобы была понятна и обычному пользователю Android, но с приписками конкретно для мобильных разработчиков.

Видеозапись экрана


Эта фича была ещё в бета-версиях Android 10, но тогда с ней были сложности и в релиз она не попала, а теперь в новой превью-версии снова появилась в доработанном виде. Так что в релиз Android 11, хочется верить, попадёт.

В принципе, её название всё объясняет. На Android есть сторонние приложения для видеозаписи всего происходящего на экране, но нативное решение не помешало бы.

Что с этого разработчикам: вероятно, в ситуации «пользователь жалуется на трудновоспроизводимый баг» станет проще запросить у пользователя видеозапись.

Bubbles


Эта фича была ещё в бета-версиях Android 10, но тогда… Да, тут история как с видеозаписью экрана: к релизу «десятки» довести фичу до ума не успели, и она переехала в следующую версию.

Это аналог фейсбучных Chat Heads: диалоги могут сворачиваться в «кружочки», остающиеся на экране поверх других приложений. Бабушка, зачем тебе бабблзы? Это чтобы было удобнее читать Хабр и при этом переписываться с тобой, внучка моя.

Но они не заработают магическим образом идеально во всех мессенджерах сразу: тут для разработчиков Android-приложений есть Bubbles API, и вопрос в том, насколько активно разработчики будут его использовать. Вероятно, Google старательно поддержит во всём своём бесконечном наборе гугломессенджеров, а про остальных пока вопрос.

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

Scoped storage


Эта фича была ещё… ну, вы поняли, да? В Android 10 она осталась опциональной (разработчики приложений могли отказаться от этого), а вот теперь была доработана и приходит окончательно.

Суть scoped storage в том, что приложениям по умолчанию даётся доступ только к своей папке, и шариться по другим файлам они не смогут. Конечно, приложениям вроде файловых менеджеров нужен полный доступ, и для таких сделают исключение «All Files Access», но в целом ощущается сближение с iOS: ограничивать в возможностях во имя безопасности.

Что с этого разработчикам: Если в targetSdk вы собираетесь включать Android 11, то Google строго говорит «обновите своё приложение, чтобы работало со scoped storage», и даёт ссылку на более подробный текст.

One-time permission


И ещё об усилении приватности. Ранее, когда приложение запрашивало разрешение, были варианты «разрешить», «отказать» и «разрешить только при использовании приложения». Теперь для таких значимых разрешений, как доступ к камере, микрофону и геолокации, создан новый вариант: «разрешить только на один раз».

Звучит очень здраво: если в каком-то приложении хочешь использовать камеру один-единственный раз, чтобы сделать там аватарку, то разрешать этому приложению постоянный доступ к камере ни к чему.

Но при этом смотрите вот что: на официальном скриншоте с новым вариантом отсутствует прежняя опция «разрешить», которая просто давала бы доступ навсегда, в том числе в фоне.

zehjt38yvio76kyrd3utm2yrn9i.png

Насколько понимаем, это потому что одновременно Google ещё и меняет правила: теперь, если хочешь доступ к геолокации в фоне, это надо обосновать. Ну, как раньше с доступом к звонкам сделали.

Что с этого разработчикам: тут вам виднее, запрашиваете ли вы разрешение и сказываются ли на вас перемены. Есть ещё всякие нюансы вроде «если в приложении есть WebView, у него доступ может отличаться», поэтому изучите официальный текст.

Индикатор частоты обновления экрана


Тут совсем мелкая штука, но за ней ощущается целая история.

Экраны с высокой частотой обновления сейчас в тренде: например, у OnePlus 7T экран на 90 Гц, у Samsung S20 и вовсе на 120 Гц. Это даёт невиданную плавность при скроллинге — казалось бы, прекрасно. Но есть проблема: частое обновление экрана активнее расходует энергию.

Возникла идея «пусть экран не всегда работает на полную катушку, ведь если играет видео с 24 FPS, бессмысленно обновлять его чаще». Звучит здраво. Но в итоге, например, покупатели Pixel 4 заметили, что они купили телефон с 90 Гц, а он переключается на 60 Гц когда ему вздумается. И было сложно понять, когда экран вообще делает то, за что ты заплатил. А теперь в нативных настройках разработчика можно включить индикатор.

w70cjdjebc_xse5qqkqwpfilwv4.png

Что с этого разработчикам: если вы не могли понять «это Гугл режет частоту обновления экрана или это моё приложение тормозит», будет чуть проще.

API для работы с 5G


С 5G-покрытием всё по-прежнему печально даже в США, не говоря уже о мире в целом. И рыночная доля 5G-смартфонов тоже скромная. Но, наверное, где-то в 5G-зоне есть обладатели 5G-смартфонов, и Google о них заботится. Порадуемся за этих троих человек.

В общем, новые API «bandwith estimator» и «dynamic meteredness» призваны помочь мобильным приложениям лучше понимать, какая у пользователя пропускная способность и лимитирован ли его трафик, чтобы отправлять ему данные в оптимальном качестве.

Что с этого разработчикам: на данный момент и в российских реалиях — почти ничего, но если ваша прокрастинация шепчет «давай вместо пяти горящих задач займёмся чем-то совершенно необязательным», то обратите внимание.

Мелочи жизни


То, что нет смысла расписывать подробно:

  • Тёмную тему можно включать по расписанию
  • В меню Share можно закрепить конкретные приложения, в которые обычно шарите
  • «Scrolling screenshots»: нативные скриншоты, захватывающие не только текущий экран, а всю страницу до конца
  • Улучшение поддержки экранов, в которых камера сделана круглым вырезом, и тому подобного
  • В панели уведомлений всё мессенджинговое выводится наверху единым блоком «conversations»
  • Экран настроек «Do Not Disturb» переработан
  • Новый Bluetooth-стек «Gabeldorsche» (что бы это ни значило)
  • «Режим самолёта» больше не будет отключать Bluetooth (чтобы пользоваться в самолётах беспроводными наушниками)
  • Управление медиа в панели уведомлений переезжает в верхнюю строку к иконкам настроек
  • В управлении жестами Project Soli — новый жест «пауза»
  • Ну и ещё с некоторыми областями поработали (NNAPI, биометрия и т.д.), пересказывать все нет смысла, поэтому сошлёмся на официальный пост.

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

А если вас этот пост заинтересовал как мобильного разработчика, то напоследок обратим ваше внимание: 23–24 июня в Петербурге мы проведём конференцию Mobius, и там будет много актуального для вас.

© Habrahabr.ru