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

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

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

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

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

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

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

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

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

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

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

Дифференцированное приложение 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, включая требования к передаче лучей руками и поддержку жестов для примитивов ввода.

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

Граница (ранее Хранитель)

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

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

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

Рендеринг

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

Разрешение

Разрешение вашего приложения составляет не менее 2364 x 2880 на глаз.

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

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

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

  • Среднее время холодного запуска: менее 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. и зарегистрированы в качестве товарного знака в Китае, Европейском Союзе, Японии и Великобритании.