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

В 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 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 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 .