На этой странице описаны функции и сценарии тестирования, связанные с многооконным режимом.
На устройствах с Android 17 и более поздних версий можно включить многооконный режим для каждого экрана. Подробнее о том, как включить многооконный режим…
Функции для компьютеров
В этом разделе описаны основные функции и конфигурации, связанные с оконным режимом на компьютере.
Как включить лимиты на задачи
Чтобы настроить максимальное количество задач, поддерживаемых в многооконном режиме на рабочем столе:
- Включите многооконный режим.
Установите флаг наложения конфигурации
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 перехватывает этот вызов и, если дисплей соответствует требованиям, определяет, поддерживает ли он многооконный режим, и выделяет необходимые ресурсы.