Многооконный режим

На этой странице описаны функции и сценарии тестирования, связанные с многооконным режимом.

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

Функции для компьютеров

В этом разделе описаны основные функции и конфигурации, связанные с оконным режимом на компьютере.

Как включить лимиты на задачи

Чтобы настроить максимальное количество задач, поддерживаемых в многооконном режиме на рабочем столе:

  1. Включите многооконный режим.
  2. Установите флаг наложения конфигурации config_maxDesktopWindowingActiveTasks в config.xml на максимальное количество поддерживаемых задач. Чтобы поддерживать неограниченное количество задач, установите для параметра значение по умолчанию 0:

    <integer name="config_maxDesktopWindowingActiveTasks">4</integer>
    

Функции для определенных браузеров

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

Тестовые случаи для настраиваемых отступов в заголовке

Следующие тестовые сценарии проверяют совместимость браузера с настраиваемыми вставками заголовков:

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

Тестирование управления экземплярами приложений с помощью перетаскивания

Следующие тестовые случаи позволяют проверить совместимость браузера с управлением экземплярами приложений:

  • Создание нового окна. Убедитесь, что при перетаскивании вкладки из панели вкладок в пустую область создается новое окно браузера с этой вкладкой.
  • Нельзя открыть новое окно, если осталась одна вкладка. Если открыт только один экземпляр браузера, убедитесь, что при перетаскивании последней вкладки в этом окне не создается новое окно.

Режимы работы с мышью и сенсорным экраном

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

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

Эти режимы не являются отдельными средами рабочего стола, а представляют собой состояния дисплея, определяющие поведение интерфейса по умолчанию.

Различия в поведении

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

Функция Режим сенсорного управления Режим приоритета для компьютеров
Запуск по умолчанию Окна запускаются в полноэкранном режиме, если только поверх них не открыто окно произвольной формы. Окна запускаются в режиме произвольной формы, если только поверх них не открыто полноэкранное окно.
Тип панели задач Использует временную панель задач (показывает только закрепленные приложения) в полноэкранном режиме. Всегда использует панель задач рабочего стола (на ней показываются закрепленные и открытые приложения).
Перефокусировка Окна восстанавливаются в соответствии с текущим режимом экрана (например, в режиме рабочего стола окна восстанавливаются в режиме произвольной формы). Окна восстанавливаются в собственном сохраненном режиме (например, полноэкранное окно всегда восстанавливается в полноэкранном режиме).
Перетаскивание в верхнюю часть экрана Если перетащить окно к верхнему краю экрана, оно откроется в полноэкранном режиме. Если перетащить окно к верхнему краю экрана, оно будет развернуто.
Элементы управления окном Использует дескриптор приложения для полноэкранных элементов управления. Использует меню наведения для управления полноэкранным режимом.

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

Переключение триггеров

Система оценивает несколько факторов, чтобы определить подходящий режим для дисплея:

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

Техническая реализация

Источник информации о состоянии – режим оконного отображения, а именно режим оконного отображения TaskDisplayArea дисплея. Компоненты Shell и Launcher могут получить доступ к этому состоянию через DisplayAreaInfo или WindowConfiguration контекста экрана.

Многооконный режим для каждого экрана

В Android 17 и более поздних версий для экранов, на которых можно размещать задачи (как определено в Display.canHostTasks), менеджер окон (WM) определяет возможность использования многооконного режима на основе критериев, которые могут настраивать производители оригинального оборудования (OEM). По умолчанию WM проверяет следующие критерии:

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

Когда соответствие дисплея требованиям меняется, WM вызывает IDisplayWindowListener.onDesktopModeEligibleChanged. Скрытый API WindowManager.isEligibleForDesktopMode возвращает информацию о том, поддерживает ли экран оконный режим. Оболочка WM перехватывает этот вызов и, если дисплей соответствует требованиям, определяет, поддерживает ли он многооконный режим, и выделяет необходимые ресурсы.