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

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

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

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

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

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

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

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

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

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

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

Дифференцированное приложение для 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

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

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

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

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

Категория

Область

Руководство

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

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

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

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

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

Стробинг

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

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

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

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

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

Как избежать морской болезни

Следуйте этим рекомендациям, чтобы не вызвать у пользователей укачивание:

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

Вход

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

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

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

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

Техническая функциональность 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 не отвечает»).

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

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

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

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

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

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

Базовый XR

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

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

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

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

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

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

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

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

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

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

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

Видео / Медиа-функциональность

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

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

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

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

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

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

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

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

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

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

Среда

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