Поддержка нескольких окон

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

  • Разделенный экран — это реализация многооконного режима по умолчанию, которая предоставляет две области действий, где пользователи могут размещать приложения.
  • Freeform позволяет пользователям динамически изменять размеры панелей активности и отображать на экране более двух приложений.
  • Функция «Картинка в картинке» (PIP) позволяет устройствам Android воспроизводить видеоконтент в небольшом окне, пока пользователь взаимодействует с другими приложениями.

Выполнение

Поддержка нескольких окон включена по умолчанию в Android 7.0 и более поздних версиях. Чтобы отключить его, установите для флага config_supportsMultiWindow значение false в файле config.xml вашего устройства.

Многооконный режим по умолчанию отключен на всех устройствах с низким объемом оперативной памяти (устройствах, которые объявляют ActivityManager.isLowRam() ). Устройства с малым объемом оперативной памяти игнорируют значение флага config_supportsMultiWindow .

Разделенный экран

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

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

В Android 8.0 и более поздних версиях разделение экрана улучшено за счет сжатия панели запуска, когда пользователь нажимает «Домой» . Подробности реализации см. в разделе Взаимодействия на разделенном экране .

Свободная форма

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

Для поддержки режима произвольной формы включите системную функцию PackageManager#FEATURE_FREEFORM_WINDOW_MANAGEMENT в /android/frameworks/base/core/java/android/content/pm/PackageManager.java и установите для config_freeformWindowManagement значение true в config.xml .

    <bool name="config_freeformWindowManagement">true</bool>
    

Картинка в картинке

После включения многооконного режима с помощью флага config_supportsMultiWindow производители устройств могут поддерживать функцию «картинка в картинке» , которая позволяет пользователям смотреть видео во время просмотра других действий. Хотя эта функция предназначена для устройств Android Television, другие типы устройств могут поддерживать эту функцию.

Для поддержки PIP включите системную функцию PackageManager#FEATURE_PICTURE_IN_PICTURE в /android/frameworks/base/core/java/android/content/pm/PackageManager.java .

Дополнительные сведения о реализации PIP для устройств под управлением Android 8.0 и более поздних версий см. на странице «Картинка в картинке» .

Системный интерфейс

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

Программы

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

Проверка

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

Для Android 7.0 тесты находятся в /platform/cts/hostsidetests/services/activitymanager/src/android/server/cts . В Android 8.0 и более поздних версиях тесты находятся в /platform/cts/tests/framework/base/activitymanager/src/android/server/am .