Unity 6.3
0 онлайн 77 гостей 3 в системе
Вход

Поддержка больших экранов и складных устройств

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

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

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

Настройка изменяемого проигрывателя действий

Настройка Resizeable Activity Player включает многооконный режим в вашем приложении и позволяет Android OS считать его изменяемым. Для новых проектов Unity включает эту настройку по умолчанию и устанавливает android.resizeableActivity="true" в файле манифеста Android. В этом случае ограничения на соотношение сторон проигнорированы.

Если вы выбрали android.resizeableActivity="false", то Android OS будет вести себя следующим образом:

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

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

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

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

Применение и конфигурация APIs

AndroidApplication API предоставляет информацию о вашем приложении Android, когда оно запускается на устройстве. Этот API можно использовать для выполнения следующих действий:

  • Доступ к экземпляру Java текущей операции.
  • Вызов событий на потоке UI или главном потоке приложения.
  • Обнаружение и обработка изменений конфигурации во время запуска приложения на устройстве.

Использование AndroidApplication.onConfigurationChanged Этот метод позволяет обнаружить любые изменения в конфигурации устройства. Можно получить сведения об устройстве, такие как расположение экрана, размер экрана и ориентация. Этот метод также позволяет получить дополнительные сведения о конфигурации, такие как сложенный или развернутый экран, тип используемой клавиатуры и настройки языка и региона пользователя. Дополнительные сведения о том, какие свойства устройства можно получить, см. в разделе AndroidConfiguration API. Используйте AndroidApplication.onConfigurationChanged метод, чтобы внести необходимые изменения — например, перестроить интерфейс — и обеспечить корректную работу приложения на разных конфигурациях устройств.

Android 16 изменений поведения для устройств с большим экраном

Начиная с Android 16, приложения, нацеленные на Android 16 или более поздние версии, должны динамически адаптировать свое содержание на экранах различных размеров для оптимального пользовательского опыта. Для устройств с большим экраном Android OS будет игнорировать любые фиксированные параметры ориентации, изменения размера или соотношения сторон, определенные в атрибутах манифеста или через APIs. Вместо этого OS попытается настроить содержание приложения, чтобы оно соответствовало имеющемуся пространству экрана.

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

Изъятия

Изменения поведения Android 16 не применяются в следующих случаях:

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

Чтобы включить исключение для игрового приложения, Unity предоставляет параметр App Category Player. Этот параметр заменяет androidIsGame API, который больше не поддерживается.

Настройка проигрывателя

Настройка App Category позволяет указать категорию приложения, например, игру или любой другой тип приложения. Для приложений, классифицированных как игры, включение этой настройки обеспечивает исключение из изменений поведения Android 16. Это означает, что Android OS не будет игнорировать любые фиксированные параметры ориентации, изменения размера или соотношения сторон, определенные для приложения.

Для параметра App Category необходимо задать значение Game, если используется Адаптивная производительность или GameMode API. Для этого выполните следующие действия:

  1. Откройте Android Настройки плеера > Другие настройки > Конфигурация.
  2. Включить Категория приложения.
  3. В раскрывающемся списке категорий выберите Game.

После выполнения этих шагов Unity автоматически добавляет android:appCategory=game в файл манифеста приложения во время процесса сборки.

Примечания::

  • Для новых проектов Категория приложения включено и установлено на Game по умолчанию.
  • Для существующих проектов с androidIsGame установлен в false, Категория приложения остается неактивным.

Дополнительные ресурсы

  • Android документация по resizeableActivity
  • Изменения в поведении: приложения, предназначенные для Android 16 и выше