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

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

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

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

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

Вот обзор новинок и несколько идей о том, что можно протестировать в вашем приложении.

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

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

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

Макеты с большим экраном отображают больше контента в двухколоночном формате.

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

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

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

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

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

Более подробную информацию см. в разделе Проекция медиа на большие экраны .

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

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

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

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

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

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

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

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

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

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

При использовании навигации жестами панель задач может быть скрыта и отображена динамически. Если ваше приложение уже использует информацию о вставке для отрисовки своего пользовательского интерфейса, необходимо учитывать возможность изменения размера вставки во время возобновления работы приложения. В таких случаях приложению необходимо вызвать 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 предлагает лучшие приложения для этих устройств. Если приложение не оптимизировано для больших экранов, пользователи устройств с большими экранами теперь видят уведомление на странице приложения в Play Маркете, что помогает им найти приложения, которые лучше всего подойдут для их устройств.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Документация Образцы Технические переговоры
Многооконный режим

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

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

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

Документация Образцы Технические переговоры
Медиа-проекция

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

Документация Образцы Технические переговоры
Предварительный просмотр камеры

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

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