Поддержка планшетов и больших экранов

Android 13 делает Android ещё лучше на больших экранах

В Android 13 используются оптимизации для планшетов, представленные в Android 12 и обновлении 12L, включая оптимизацию системного интерфейса, улучшенную многозадачность и улучшенные режимы совместимости. В рамках тестирования убедитесь, что ваши приложения хорошо выглядят на планшетах и других устройствах с большим экраном.

Для начала настройте виртуальное устройство для эмулятора Android в Android Studio или установите Android 13 на устройство с большим экраном от одного из наших партнеров-производителей.

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

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

ОС, оптимизированная для больших экранов

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

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

На больших экранах контент показывается в двух столбцах.

Другие изменения направлены на то, чтобы упростить основные взаимодействия на больших экранах. Например, на планшетах элементы управления графическим ключом и PIN-кодом на заблокированном экране теперь отображаются сбоку экрана, чтобы их было проще вводить. Пользователи могут просто нажать на другую сторону экрана, чтобы переместить их туда.

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

Для разработчиков: изменение проекции медиаконтента

Начиная с версии 12L, при отрисовке виртуального дисплея на поверхности он масштабируется по размеру поверхности с помощью процесса, аналогичного параметру centerInside в ImageView.

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

Подробнее о трансляции медиаконтента на больших экранах…

Мощная и интуитивно понятная многозадачность

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

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

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

Режим разделенного экрана – популярный способ многозадачности, который стал ещё удобнее. Теперь пользователи могут перетаскивать любимые приложения на разделенный экран прямо с панели задач или использовать новое действие "Разделить" в обзоре, чтобы запустить режим разделенного экрана одним касанием.

Чтобы сделать разделение экрана более удобным для пользователей, в Android 12 и более поздних версиях все приложения могут работать в многооконном режиме, независимо от того, поддерживают ли они изменение размера.

Для разработчиков: как протестировать приложение в режиме разделения экрана

Поскольку режим разделения экрана становится все более доступным, а в Android 12 пользователи могут запускать в нем любые приложения, мы настоятельно рекомендуем протестировать ваши приложения в этом режиме.

Для разработчиков: как обрабатывать динамические изменения размеров вставок

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

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

Улучшенная совместимость

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

Для приложений, которые ещё не оптимизированы, в режиме совместимости предусмотрены визуальные улучшения и повышение стабильности. Это позволяет сделать приложения более удобными и привлекательными для пользователей.

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

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

Для разработчиков: как проверить приложения в режиме совместимости

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

Подробнее об улучшенном кашетировании…

Улучшенное игнорирование касаний ладонью

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

В версиях до Android 13 (уровень API 33) система отменяла события касания ладонью, отправляя MotionEvent с ACTION_CANCEL. В Android 13 улучшено распознавание случайных касаний ладонью за счет добавления FLAG_CANCELED к объекту события движения.

Если касание ладонью – единственный указатель события касания, система отменяет событие, устанавливая ACTION_CANCEL и FLAG_CANCELED для объекта события движения. Если другие указатели опущены, Android 13 устанавливает ACTION_POINTER_UP и FLAG_CANCELED.

Для разработчиков: обновите прослушиватели и обработчики событий касания

В Android 12 (уровень API 32) и более ранних версиях ОС распознавание случайных касаний возможно только для событий касания с одним указателем. Если касание ладонью – единственный указатель, система отменяет событие, устанавливая ACTION_CANCEL для объекта события движения. Если другие указатели опущены, система устанавливает ACTION_POINTER_UP, чего недостаточно для обнаружения отклонения ладони. В обоих случаях FLAG_CANCELED не задано.

В Android 13 обновите прослушиватели и обработчики событий касания, чтобы они проверяли FLAG_CANCELED при получении ACTION_POINTER_UP. Это позволит обнаруживать и обрабатывать отмену касания ладонью и другие отмененные события.

Дополнительные обновления и ресурсы для больших экранов

Изменения в Google Play на больших экранах

Чтобы пользователям было проще находить приложения, оптимизированные для планшетов, складных устройств и устройств с ChromeOS, мы внесли изменения в Google Play.

Мы добавили новые проверки, чтобы оценивать качество приложений в соответствии с рекомендациями по обеспечению качества приложений для больших экранов. Это позволяет нам продвигать в Google Play лучшие приложения для таких устройств. Если приложение не оптимизировано для больших экранов, пользователи таких устройств увидят уведомление об этом на странице приложения в Google Play. Это поможет им находить приложения, которые лучше всего подходят для их устройств.

Кроме того, в Google Play появятся оценки приложений, предназначенные специально для больших экранов. Мы впервые объявили об этом в августе 2021 года. Пользователи смогут оценивать, насколько хорошо ваше приложение работает на устройствах с большим экраном.

Встраивание объектов activity с помощью Jetpack WindowManager

Встраивание действий позволяет использовать дополнительную область отображения больших экранов, показывая несколько действий одновременно, например для шаблона "Список – сведения". При этом рефакторинг приложения практически не требуется. Вы определяете, как приложение отображает свои действия – рядом или друг над другом, – создавая XML-файл конфигурации или выполняя вызовы API Jetpack WindowManager. Остальное система сделает сама, определив презентацию на основе созданной вами конфигурации. Если в вашем приложении используется несколько действий, рекомендуем попробовать встраивание действий. Подробнее о встраивании действий…

Запрос ориентации устройства

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

Некоторые приложения запрашивают фиксированную ориентацию (вертикальную или горизонтальную) и остаются в ней независимо от ориентации устройства (см. атрибут манифеста screenOrientation). Хотя эта функция по-прежнему поддерживается, производители устройств могут переопределять запрос приложения на предпочтительную ориентацию.

В Android 12 (уровень API 31) и более поздних версиях производители устройств могут настраивать отдельные экраны устройств (например, экран складного устройства размером с планшет) так, чтобы игнорировать спецификацию ориентации и принудительно отображать приложение в портретном режиме в вертикальном положении, но с кашетированием на горизонтальных дисплеях. Игнорируя спецификацию, Android может лучше реализовать намерение разработчика всегда представлять приложение с фиксированным соотношением сторон, сохраняя при этом ориентацию приложения для оптимального удобства использования.

Однако для удобства пользователей рекомендуем создавать адаптивные макеты, которые позволяют полностью использовать доступное пространство экрана в портретной и альбомной ориентации на экранах размером более 600 dp.

Как установить Android 13 на партнерское устройство с большим экраном

Вместе с нашими партнерами – производителями устройств мы сделали Android 13 доступной для тестирования на устройствах с большим экраном. Чтобы посмотреть список устройств с большим экраном, на которых можно установить бета-версию Android 12L, и узнать, какие сборки доступны, перейдите по ссылкам ниже.

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

Что тестировать

Прежде чем начать тестирование, настройте виртуальное устройство для эмулятора Android в Android Studio или установите Android 13 на устройство с большим экраном от одного из наших партнеров-производителей. После завершения настройки устройства вы захотите протестировать свое приложение в некоторых распространенных сценариях использования большого экрана, чтобы убедиться, что ваше приложение реагирует так, как вы хотите. Ниже приведены некоторые рекомендуемые области со ссылками на дополнительную информацию по теме, которая поможет вам оптимизировать приложение для больших экранов:

Что тестировать Ресурсы
Размеры экрана, положение устройства и поворот

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

Документация Семплы Практические работы Технические доклады
Взаимодействие с панелью задач и режим разделения экрана

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

Если у вашего приложения фиксированная ориентация и его размер нельзя изменить, проверьте, как оно реагирует на настройки режима совместимости, например на кашетирование.

Документация Семплы Технические доклады
Многооконный режим

Проверьте, как приложение работает в многооконном режиме на больших экранах (sw >= 600dp), особенно если в нем задан атрибут resizeableActivity="false".

Если в приложении задан атрибут resizeableActivity="true", проверьте, как оно работает в многооконном режиме на небольших экранах (sw < 600 dp).

Если в вашем приложении используются API для работы с экраном, например Display.getRealSize() и Display.getRealMetrics(), замените их на API WindowMetrics из библиотеки Jetpack WindowManager.

Документация Семплы Технические доклады
Проекция медиаконтента

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

Документация Семплы Технические доклады
Предпросмотр камеры

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

Документация