Рекомендации по обеспечению качества приложений Android XR

Определения уровней совместимости

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

Контрольные списки и тесты определяют полный набор требований к качеству для большинства типов приложений Android.

Мобильное приложение, совместимое с Android XR

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

Этот тип приложения работает в полноэкранном режиме на панели в пользовательской среде, но его макет может быть неидеальным при больших размерах. Приложения, в манифесте которых указан компактный размер, отображаются соответствующим образом. Приложение не работает в режиме совместимости и, следовательно, не имеет формата «леттербокс». Приложение поддерживает основные функции ввода Android XR (отслеживание глаз + жесты или raycast-отображение рук) и базовую поддержку внешних устройств ввода, включая клавиатуру, мышь, трекпад и игровые контроллеры. Возможно изменение размера.

Совместимые с Android XR мобильные приложения автоматически включены в список и доступны в Google Play. Приложение, несовместимое из-за неподдерживаемых функций, невозможно установить через Play Store.

Приложение для большого экрана, совместимое с Android XR

Совместимое с Android XR приложение для больших экранов представляет собой приложение уровня Tier 1 или Tier 2 , оптимизированное для всех размеров экранов и конфигураций устройств (например, для больших экранов в дополнение к мобильным), а также расширенную поддержку внешних устройств ввода и многозадачности. Совместимые с Android XR приложения для больших экранов автоматически включены в список и доступны в Play Store.

Приложение для большого экрана, совместимое с Android XR, запускается на полноэкранном дисплее в пространстве вокруг пользователя с разрешением 1024 × 720 точек на дюйм. Пользователи смогут взаимодействовать с приложением естественным образом, используя глаза и руки, но в остальном оно будет очень похоже на приложение для большого экрана.

Дифференцированное приложение для Android XR

Дифференцированное приложение для Android XR имеет пользовательский интерфейс, специально разработанный для XR, и реализует функции, доступные только в XR. Вы можете в полной мере использовать возможности Android XR и дифференцировать интерфейс своего приложения, добавляя функции XR (например, пространственные панели) и XR-контент (например, 3D-видео) в свои приложения, разрабатывая их с помощью Android Jetpack XR SDK, Unity или OpenXR.

Вы можете использовать Jetpack XR SDK для предоставления специфичных для XR возможностей, включая пространственные панели, среды, 3D-модели, пространственное аудио, 3D/пространственное видео/фотографии, якоря и другие пространственные элементы пользовательского интерфейса, такие как орбитальные аппараты.

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

Все приложения, созданные с использованием Unity или OpenXR, считаются дифференцированными. Приложения, созданные с использованием Unity или OpenXR, должны соответствовать метрикам качества и минимальным требованиям, чтобы считаться дифференцированными для Android XR. Например, приложение с низкой частотой кадров, сбоями или другим негативным пользовательским опытом не будет соответствовать требованиям.

Контрольный список совместимости с Android XR

Эти контрольные списки совместимости определяют критерии, которые помогут вам оценить уровень поддержки XR в вашем приложении. Уровни поддержки включают в себя следующее:

Мобильное приложение, совместимое с Android XR

Ваше приложение должно соответствовать основным требованиям к качеству приложения .

Ваше приложение также должно соответствовать всем применимым рекомендациям по доступности для других форм-факторов, таких как телефоны и планшеты (например, цветовой контраст ).

Приложение для большого экрана, совместимое с Android XR

Любое приложение Tier 1 или Tier 2 для больших экранов считается совместимым с Android XR. Рекомендации по качеству приложений для больших экранов предлагают структурированный подход к обеспечению комфортной работы на Android XR, но при этом не требуется учитывать состояние устройства, например, поворот или сворачивание/разворачивание. Аналогично, Android XR не поддерживает стилус.

Приложение, дифференцированное для Android XR

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

Тип приложения/вариант использования

Категория

Область

Руководство

Общие базовые требования (Android и OpenXR)

Конфиденциальность и безопасность

Вход в учетную запись (первый опыт использования)

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

Безопасность и комфорт

Стробирование

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

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

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

2. Рассмотрите возможность отключения этой функции через настройки или предпочтения.

3. Перед началом стробирования выведите на экран четкое предупреждающее сообщение.

Как избежать укачивания

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

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

Вход

Размер целей взаимодействия

У интерактивных целей есть минимальный и рекомендуемый размер, основанный на предполагаемом расстоянии взаимодействия:

  • Минимальный размер: DistanceInM x 0,868 x 48 = M
  • Рекомендуемый размер: DistanceInM x 0,868 x 56 = M или больше

При использовании Jetpack XR SDK мы рекомендуем минимальный размер 48 x 48dp, а рекомендуемый размер области касания — 56 x 56dp или больше.

Техническая функциональность XR

Ручной ввод

Ваше приложение поддерживает естественный ввод руками как базовый метод взаимодействия для Android XR, включая требования к передаче лучей руками и поддержку жестов для примитивов ввода.

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

Граница (ранее Guardian)

Если ваше приложение ожидает, что пользователи будут перемещаться из начальной точки (при запуске приложения) по своему физическому пространству, оно либо запрашивает сквозную передачу, либо объявляет PROPERTY_XR_BOUNDARY_TYPE_RECOMMENDED = XR_BOUNDARY_TYPE_LARGE в манифесте.

Если ваше приложение использует XR_BOUNDARY_TYPE_LARGE , оно полностью воспроизводится без отображения границы (в радиусе 2,0 м; обратите внимание, что прохождение границы начинает проявляться в радиусе 1,5 м).

Производительность

Рендеринг

Ваше приложение отображает каждый кадр в интервале от <11,1 мс (90 Гц) до <13,8 мс (72 Гц).

Разрешение

Разрешение вашего приложения составляет не менее 1856 x 2160 на каждый глаз.

Время запуска приложения

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

Смотрите целевые продолжительности ниже:

  • Среднее время холодного запуска: менее 2 секунд
  • Средний теплый старт: менее 1 секунды

Более подробную информацию см. в разделе Время запуска приложения .

ANR

Ваше приложение не приводит к сбоям и не блокирует поток пользовательского интерфейса, вызывая ошибки ANR («Android Not Responding»).

В вашем приложении зафиксировано <1 ANR в 99,5% ежедневных сеансов.

Ваше приложение использует отчёт Google Play перед запуском для выявления потенциальных проблем со стабильностью. После развёртывания обратите внимание на страницу Android Vitals в консоли разработчика Google Play.

Частота сбоев

Не потребляйте чрезмерно системные ресурсы, влияя на остальную часть системы и другие приложения, поддерживая частоту сбоев на уровне ~1%.

Базовый уровень приложений Android (с дифференциацией XR)

Визуальный и пользовательский опыт

Базовый XR

В вашем приложении реализована как минимум одна специфичная для XR функция или фрагмент специфичного для XR контента для улучшения пользовательского опыта. Это может быть орбитальный аппарат, одна или несколько пространственных панелей, окружение или 3D-объекты.

Пространственные панели

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

Окружающая среда

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

Переход между домашним пространством (HSM) и полным пространством (FSM)

При переходе пользователей в режим Full Space в вашем приложении должна быть точка входа для быстрого перехода между Home Space и Full Space. Используйте значок или метку и разместите кнопку в удобном месте.

Пространственные панели

Размещайте меню, ресурсы и элементы управления на отдельной панели или орбитере. Не включайте эти компоненты в основную панель редактирования.

Прокрутка меню/списка

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

Функциональность видео/медиа

Визуальный и пользовательский опыт

Пространственный проигрыватель (только для Android)

Ваше приложение позволяет пользователям просматривать контент в формате Full Space.

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

Для панелей с воспроизведением видео установите соотношение сторон, чтобы удалить эффект «леттербокс».

Пространственное аудио

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

Одновременный просмотр видео

Если ваше приложение поддерживает несколько одновременных видеопотоков, пользовательский интерфейс отображает следующую информацию:

  • Какие видеопотоки обеспечивают вывод звука
  • Какие элементы управления воспроизведением влияют на какие видеопотоки

Среда

При воспроизведении контента в режиме Full Space ваше приложение позволяет пользователям либо уменьшать яркость сквозного изображения, либо выбирать виртуальные среды.


OpenXR™ и логотип OpenXR являются товарными знаками компании Khronos Group Inc. и зарегистрированы в качестве товарных знаков в Китае, Европейском Союзе, Японии и Великобритании.