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

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

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

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

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

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

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

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

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

Большие макеты экрана отображают больше контента в макете с двумя столбцами.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Улучшенный опыт совместимости

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

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

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

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

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

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

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

Улучшенное отторжение ладони

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

До 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 Store, которое поможет им найти приложения, которые лучше всего будут работать на их устройстве.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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