Вопросы производительности

Чтобы создать привлекательный пользовательский опыт AR, важно, чтобы ваше приложение с поддержкой AR работало хорошо.

Убедитесь, что ваше приложение:

  • Чувствуется, что он реагирует на действия пользователя, включая сенсорные жесты и движения устройства.
  • Рендеринг с разумной и постоянной частотой кадров. Пользователи обычно предпочитают постоянную и более низкую частоту кадров, а не переменную и более высокую частоту кадров.
  • Минимизирует расход заряда батареи, позволяя пользователю использовать свое устройство для других задач в течение дня или дольше заниматься AR-опытом.
  • Создает захватывающий AR-опыт, в котором контент, созданный AR, выглядит стабильным по отношению к окружающей среде и реалистично сливается с ней.

Рекомендации по повышению производительности

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

Используйте привязки для повышения эффективности отслеживания.

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

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

Учитывайте характеристики производительности конкретного устройства

Устройства, поддерживаемые ARCore, охватывают широкий спектр аппаратных и производительных характеристик. Производительность устройства может варьироваться в зависимости от:

  • CPU/GPU устройства, тактовая частота
  • Доступная память и пропускная способность
  • Качество датчика камеры/IMU
  • Другие аппаратные различия
  • Драйверы операционной системы и устройств

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

Отключите функции, интенсивно использующие процессор, когда они не используются.

Некоторые функции ARCore увеличивают загрузку ЦП, если они включены. Рассмотрите возможность отключения этих функций в то время, когда они не требуются для работы с дополненной реальностью. Это сделает дополнительные циклы ЦП доступными для вашего приложения, а также улучшит тепловые характеристики и время автономной работы.

В настоящее время загрузка ЦП ARCore увеличивается, когда для текущего сеанса включено Instant Placement и/или Augmented Images . Следуйте этим рекомендациям, чтобы повысить эффективность использования ЦП:

  • Instant Placement следует отключить после установления полного отслеживания. Эту функцию можно отключить в конфигурации сеанса.

  • Augmented Images следует отключать, если эта функция не требуется для вашей работы с дополненной реальностью. Чтобы отключить дополненные изображения, настройте null или пустую базу данных дополненных изображений в конфигурации сеанса.

Мониторинг температуры устройства

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

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

Выявление голодания процессора ARCore

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

Чтобы убедиться, что одновременная локализация и сопоставление ARCore (SLAM) может работать нормально, убедитесь, что сообщение « Низкая частота VIO » не появляется в журналах устройства Android:

adb logcat | grep 'VIO frequency low'

Избегайте голодания процессора ARCore

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

Предварительно создайте базы данных дополненных изображений.

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

Ограничить количество запрошенных потоков камеры

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