Среда выполнения XR

Запускайте сеансы дополненной реальности или 3D с помощью нашего встроенного времени выполнения.
Последнее обновление Основная версия Release Candidate Бета-версия Альфа-версия
7 октября 2026 г. - 1.0.0-rc02 - 1.1.0-alpha01

Как объявлять зависимости

Чтобы добавить зависимость от среды выполнения XR, необходимо добавить в проект хранилище Google Maven. Подробная информация приведена в репозитории Google Maven.

Добавьте в файл build.gradle приложения или модуля зависимости для нужных артефактов:

Яркий

dependencies {
    implementation "androidx.xr.runtime:runtime:1.1.0-alpha01"

    // Use in environments that do not support OpenXR
    testImplementation "androidx.xr.runtime:runtime-testing:1.1.0-alpha01"
}

Kotlin

dependencies {
    implementation("androidx.xr.runtime:runtime:1.1.0-alpha01")

    // Use in environments that do not support OpenXR
    testImplementation("androidx.xr.runtime:runtime-testing:1.1.0-alpha01")
}

Подробнее о зависимостях приведено в статье Добавление зависимостей сборки.

Отзыв

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

Как создать новую проблему

Дополнительную информацию можно найти в документации по системе отслеживания ошибок.

Runtime

Версия 1.0

Версия 1.0.0-rc02

7 октября 2026 г.

Выход androidx.xr.runtime:runtime-*:1.0.0-rc02. Версия 1.0.0-rc02 содержит эти коммиты.

Исправление ошибок

  • Исправлены различные проблемы в androidx.xr.runtime и androidx.xr.scenecore, чтобы повысить безопасность памяти и улучшить управление жизненным циклом ресурсов. В частности, мы улучшили обработку контекста и логику очистки ссылок, чтобы предотвратить утечки памяти. (Id61f8)

Версия 1.1

Версия 1.1.0-alpha01

9 сентября 2026 г.

Выход androidx.xr.runtime:runtime-*:1.1.0-alpha01. Версия 1.1.0-alpha01 содержит эти коммиты.

Изменения в API

  • Добавьте SPATIAL_API_V4 в SpatialApiVersions (I71e7a).

Версия 1.0

Версия 1.0.0-rc01

9 сентября 2026 г.

Выход androidx.xr.runtime:runtime-*:1.0.0-rc01. Версия 1.0.0-rc01 содержит эти коммиты.

Изменения в поведении

  • Улучшена обработка внутренних событий жизненного цикла. (I2f7b8, If1bc3, Ifa75e)

Версия 1.0.0-beta02

12 августа 2026 г.

Выход androidx.xr.runtime:runtime-*:1.0.0-beta02. Версия 1.0.0-beta02 содержит эти коммиты.

Исправление ошибок

  • Улучшено обнаружение поддержки OpenXR в эмулируемых средах. (Ifec51)
  • В большем количестве классов реализован контейнер toString() для отладки. (I67d83)
  • Исправлена ошибка, из-за которой XrDeviceTestRule не работал, если XrDevice был создан после применения настроек. (Ica32c)

Версия 1.0.0-beta01

15 июля 2026 г.

Выход androidx.xr.runtime:runtime-*:1.0.0-beta01. Версия 1.0.0-beta01 содержит эти коммиты.

Изменения в API

  • В тестирование во время выполнения добавлена функция SessionTestRule. Этот API (I672bc, b/516876144)
  • Функция Session.create преобразована в функцию suspend. (I5d27f)
  • Добавлена поддержка атрибута "жизненный цикл" XrDeviceTestRule (I2319c, b/512140272)
  • Удалена неиспользуемая аннотация ExperimentalXrDeviceLifecycleApi для экспериментального включения. (I46d95)
  • Добавлены специализированные переопределения toString() для нескольких типов времени выполнения. Эти типы предназначены для предоставления разработчикам дополнительной информации в целях отладки и не должны использоваться в рабочих или выпущенных приложениях.

Исправление ошибок

  • Исправлена поза.fromLookAt Выровнено направление вперед, исправлено извлечение масштаба в Matrix3 и предотвращено численное NaNs при нормализации, преобразовании оси и угла и расчетах angleBetween. (I7a3b5, b/367780918)

Версия 1.0.0-alpha15

17 июня 2026 г.

Выход androidx.xr.runtime:runtime-*:1.0.0-alpha15. Версия 1.0.0-alpha15 содержит эти коммиты.

Изменения в API

  • Добавлен тестовый API для isProjectedServiceAvailable() (I44ba1)
  • DeviceTrackingMode.INERTIAL теперь доступен как общедоступный экспериментальный API с новой аннотацией @ExperimentalInertialTrackingApi. (Ic3df3)
  • Добавлен Config.Builder. Приложения могут создавать собственные конфигурации, вызывая функции сеттера в объекте сборщика, а затем вызывая Builder.build. (I13142)
  • Ресурс androidx.xr.runtime.FieldOfView уже удален. Вместо него приложения должны использовать androidx.xr.runtime.math.FieldOfView. (I621ef)
  • Теперь Session.create можно запускать только на @WorkerThread. (I2169e)
  • Добавлен объект "isProjectedServiceAvailable()" в XrDevice (I507e9).
  • Переименование DeviceTrackingMode.SPATIAL_LAST_KNOWN в DeviceTrackingMode.SPATIAL и DeviceTrackingMode.INERTIAL_LAST_KNOWN в DeviceTrackingMode.INERTIAL (I96f8b)
  • Vector3.angleBetween и Vector4.angleBetween теперь возвращают градусы, а не радианы. (Ica8bc)
  • Добавлен API QrCode (Ia0bbe).

Версия 1.0.0-alpha14

19 мая 2026 г.

Выход androidx.xr.runtime:runtime-*:1.0.0-alpha14. Версия 1.0.0-alpha14 содержит эти коммиты.

Изменения в API

  • Мы отказываемся от использования GeospatialMode.VPS_AND_GPS в пользу GeospatialMode.SPATIAL и добавляем новый режим отслеживания с низким энергопотреблением – GeospatialMode.INERTIAL, в котором используются только IMU и GPS. (I1e6cd)
  • Удаляет тег устаревания на странице androidx.xr.runtime.FieldOfView. Делает androidx.xr.runtime.math.FieldOfView псевдонимом типа androidx.xr.runtime.FieldOfView в рамках подготовки к удалению последнего в следующем выпуске. Клиенты должны перейти на версию androidx.xr.runtime.math везде, где используется версия androidx.xr.runtime. (I6ce15)
  • Добавлена аннотация PreviewProjectedApi (Ic49f6)
  • Удалено: AugmentedObjectCategory.allSupported (I08656)
  • Добавлены API в XrDevice для определения поддержки устройством отслеживания рук, отслеживания взгляда, оценки глубины, геопространственных данных и рендеринга. (I00696)
  • Функция Session.getNativeData заменена на XrDevice.getNativeInstanceData и Session.getNativeSessionData. (Ieb077)
  • Добавлены аннотации DeviceTrackingMode.INERTIAL_LAST_KNOWN с помощью @PreviewSpatialApi. (I99868)
  • Добавлен XrDeviceTestRule для использования в модульных тестах. (I87584)
  • Добавление CATEGORY_XR_PROJECTED_LAUNCHER. Эта константа используется в файле манифеста, чтобы указать, что система должна обнаружить действие как средство запуска. (Ia3069)

Внешний вклад

  • Добавление AugmentedImageMode в API Config (I0cf09)

Версия 1.0.0-alpha13

6 мая 2026 г.

Выход androidx.xr.runtime:runtime-*:1.0.0-alpha13. Версия 1.0.0-alpha13 содержит эти коммиты.

Изменения в API

  • TrackingState и VpsAvailabilityResult были перенесены в androidx.xr.arcore package, а типы в androidx.xr.runtime теперь считаются устаревшими. (Ic7930, b/480462213)
  • Session.getNativeData() теперь определяется в модуле xr:runtime:runtime и предоставляет [nativeFunctionTablePointer] для сред выполнения с поддержкой OpenXR. (Ifa862)
  • API NativeData перенесен в библиотеку xr:runtime:runtime. (I87954, b/494251500)
  • Session.create и Session.configure теперь не являются исчерпывающими и требуют использования предложений else в операторах when. (I9885e, b/495805998, b/495805998)
  • Поддержка androidx.xr.runtime.FieldOfView прекращена. Используйте вместо него androidx.xr.runtime.math.FieldOfView. (Ia01a0, b/480233045)
  • Сервисный аккаунт Matrix4.pose переименован. Новое название: Matrix4.toPose(). Свойство pose больше не поддерживается. (I329b4, b/493383490)
  • Добавлен API XrServiceAvailability (If379e, b/493558010).
  • Добавлена аннотация ExperimentalXrServiceAvailabilityApi (Icab49, b/491069725)
  • Удалите суффикс для @PreviewSpatialApi (If5242, b/491939311)
  • Переименован параметр DeviceTrackingMode.LAST_KNOWN в SPATIAL_LAST_KNOWN (с устаревшим резервным значением), добавлен параметр INERTIAL_LAST_KNOWN для отслеживания 3DoF и параметр TRACKING_DEGRADED в TrackingState. (Ie661c, b/445466590)
  • Добавлен API XrLog. Установите для XrLog.isEnabled значение true, чтобы включить ведение журнала в JetpackXR, и используйте [XrLog.Level], чтобы задать уровень журнала. (I76a1f, b/463460895, b/487378441)
  • Добавление DISPLAY_CATEGORY_XR_PROJECTED. Эта константа используется в файле манифеста, чтобы указать, что действие предназначено для проецируемого дисплея XR (I26d8b).

Версия 1.0.0-alpha12

25 марта 2026 г.

Выход androidx.xr.runtime:runtime-*:1.0.0-alpha12. Версия 1.0.0-alpha12 содержит эти коммиты.

Изменения в API

  • Изменен тип Config.augmentedObjectCategories с List на Set (I25a64, b/487376359)
  • Флажок "unscaledGravityAlignedActivitySpace" удален из Session.create. ActivitySpace теперь всегда не масштабируется и выравнивается по гравитации. (If6f11, b/458173423)
  • Добавлена перегрузка Session.create, позволяющая передавать контекст Android для определения области действия ресурса. (I7d3fe, b/415805990, b/477386334)
  • Добавлено JvmOverloads в FloatSize2d.to3d, Matrix3.copy и Matrix4.copy (I69586, b/481371562)
  • Добавлена возможность задавать категории для отслеживания AugmentedObject в конфигурации (I1f6e4, b/480220930).
  • Добавлен модуль xr:runtime:runtime-interfaces. (I52ac6, b/461561664)

Версия 1.0.0-alpha11

25 февраля 2026 г.

Выход androidx.xr.runtime:runtime-*:1.0.0-alpha11. Версия 1.0.0-alpha11 содержит эти коммиты.

Изменения в API

  • Ограниченный интерфейс ConfigMode для внутреннего использования (Ibfb87)
  • Объект "androidx.xr.runtime.Config.GeospatialMode" перемещен на уровень пакета (Ibe682)
  • Объект "androidx.xr.runtime.Config.FaceTrackingMode" перемещен на уровень пакета (Iac501)
  • Файл "androidx.xr.runtime.Config.AnchorPersistenceMode" перемещен на уровень пакета (I0360f)
  • Перемещено androidx.xr.runtime.Config.DepthEstimationMode на уровень пакета (I7e3e9)
  • Объект "androidx.xr.runtime.Config.DeviceTrackingMode" перемещен на уровень пакета (I3aacd)
  • Файл "androidx.xr.runtime.Config.HandTrackingMode" перемещен на уровень пакета (I658f3)
  • Объект "androidx.xr.runtime.Config.PlaneTrackingMode" перемещен на уровень пакета (Ia251b)
  • Файл "androidx.xr.runtime.XrDevice.DisplayBlendMode" перемещен на уровень пакета (I6f333)
  • Добавлен метод-фабрика для создания XrDevice с использованием контекста, сеанса и CoroutineContext. (I139c5)
  • Добавлен тег SpatialApiVersionHelper, который позволяет запрашивать версию среды выполнения Android XR, доступную на платформе. (I7c53c)
  • Добавлен модуль xr:runtime:runtime-openxr (Ib42ea)

Версия 1.0.0-alpha10

28 января 2026 г.

Выход androidx.xr.runtime:runtime-*:1.0.0-alpha10. Версия 1.0.0-alpha10 содержит эти коммиты.

Изменения в API

  • Значение ConfigMode.HeadTrackingMode заменено на ConfigMode.DeviceTrackingMode. (le273e, b/467150206)
  • Удалены методы toNormalized, times(float) и div(float) класса Quaternion. Эти методы избыточны, поскольку все кватернионы нормализуются во время создания и класс является неизменяемым. (l558fc, b/460210457)

Исправление ошибок

  • В документацию по Session.create добавлены сведения о том, как избежать создания сеанса в основном потоке приложения. (le5554, b/463687170)
  • Приложения не могут создавать BoundingBox со значением NaN. (l58c14, b/464025895)

Версия 1.0.0-alpha09

3 декабря 2025 г.

Выход androidx.xr.runtime:runtime-*:1.0.0-alpha09. Версия 1.0.0-alpha09 содержит эти коммиты.

Версия 1.0.0-alpha08

19 ноября 2025 г.

Выход androidx.xr.runtime:runtime-*:1.0.0-alpha08. Версия 1.0.0-alpha08 содержит эти коммиты.

Новые функции

  • Добавлен значок XrDevice, который указывает на возможности устройства. (Ic9d1f)
  • Добавлен новый API ConfigMode.isSupported для запросов о возможностях сеанса. (Iff7af)
  • Добавлен API XrDisplay.BlendMode. (I484e4)

Изменения в API

  • Функция [XrDevice.getPreferredBlendMode] переименована в [XrDevice.getPreferredDisplayBlendMode]. (I7e48f)

Версия 1.0.0-alpha07

22 октября 2025 г.

Выход androidx.xr.runtime:runtime-*:1.0.0-alpha07. Версия 1.0.0-alpha07 содержит эти коммиты.

Изменения в API

  • Удалите SessionConfigureConfigureNotSupported и замените его на UnsupportedOperationException. (I7680f)

Версия 1.0.0-alpha06

24 сентября 2025 г.

Выход androidx.xr.runtime:runtime-*:1.0.0-alpha06. Версия 1.0.0-alpha06 содержит эти коммиты.

Изменения в API

  • HandJointType был перемещен из xr:runtime:runtime в xr:arcore:arcore. (Iadb9c, b/409058039)
  • Изменение оператора умножения для componentWiseMultiplication на Vector2, Vector3, Vector4 для масштабирования и удаление символа оператора для согласованности с другими математическими библиотеками. Также удаление componentWiseDivision из классов Vector вместо использования Vector.scale(otherVector.inverse()). (I8e1f6, b/399146447)
  • Добавление [unscaled] для возврата матрицы с масштабом 1. (I6381d, b/434928658)
  • :xr:runtime:runtime-guava будет удален, так как Coroutines.kt заменен на SuspendtoFutureAdapter. (I0cd3c, b/406597902)

Версия 1.0.0-alpha05

30 июля 2025 г.

Выход androidx.xr.runtime:runtime-*:1.0.0-alpha05. Версия 1.0.0-alpha05 содержит эти коммиты.

Новые функции

  • Добавьте HandJointType и TrackingState. (I55880, b/334645808)
  • Сделайте реализацию Config общедоступной. (I95860, b/334645808)
  • Добавлены новые типы SessionCreateResult и SessionConfigureResult. (Icb8cb, b/334645808)
  • Добавлен новый класс BoundingBox, представляющий собой граничную рамку, ориентированную по осям, в трехмерном пространстве, которая определяется минимальными и максимальными координатами угловых точек. (Ic68c5, b/423073468)

Изменения в API

  • Файл "androidx.xr.scenecore.PixelDimensions" переименован и перемещен в папку "androidx.xr.runtime.math.IntSize2d". Файл "androidx.xr.scenecore.Dimensions" переименован и перемещен в папку "androidx.xr.runtime.math.FloatSize3d". Название "androidx.xr.scenecore.PlaneType" изменено на "androidx.xr.scenecore.PlaneOrientation". Название "androidx.xr.scenecore.PlaneSemantic" изменено на "androidx.xr.scenecore.PlaneSemanticType". (Ifd405, b/416456228)
  • Удален класс androidx.xr.runtime.FoV. Используйте вместо него androidx.xr.runtime.FieldOfView. (I9ae27)
  • Добавлена дополнительная перегрузка для Session.create, которая может предоставить LifecycleOwner для сеанса. Обратите внимание, что для подтверждения права собственности на ресурс необходимо указать действие, а свойство LifecycleOwner должно быть ограничено этим действием. (I1690b)
  • Переименован параметр FakeRuntimeAnchor.anchorsCreated в anchorsCreatedCount (I96df9, b/424441218)
  • Значения конфигурации *Mode были переименованы, чтобы лучше отражать их поведение. (I6d247, b/414648065)
  • Для проектов, выпущенных с Kotlin 2.0, требуется KGP 2.0.0 или более поздней версии (Idb6b5, b/344563182).
  • API, связанные со строками манифеста, были перенесены из :xr:runtime:runtime в :xr:runtime:runtime-manifest. Название пакета изменено с androidx.xr.runtime на androidx.xr.runtime.manifest. (I610ad, b/418800249)
  • Session.resume(), Session.pause() и Session.destroy() удалены из API. Сеанс больше не LifecycleOwner. Жизненный цикл сеанса теперь будет связан с жизненным циклом объекта Activity, переданного в Session.create(). (I28a03)
  • Теперь в этой библиотеке используются аннотации JSpecify для проверки на наличие нулевых значений, которые применяются к типам. Разработчикам на Kotlin следует использовать следующий аргумент компилятора, чтобы обеспечить правильное использование: -Xjspecify-annotations=strict (это значение по умолчанию, начиная с версии 2.1.0 компилятора Kotlin) (Ia8420, b/326456246).
  • Основной артефакт среды выполнения (:xr:runtime:runtime) будет содержать только асинхронные API в стиле Kotlin. Разработчики на Java могут использовать :xr:runtime:runtime-guava для доступа к совместимым API. (I05d4a, b/426639315)
  • Основной артефакт среды выполнения (:xr:runtime:runtime) будет содержать только асинхронные API в стиле Kotlin. Разработчики на Java могут использовать библиотеку xr:runtime:runtime-rxjava3 для доступа к совместимым API. (I64122, b/426639775)
  • Перенесите корутины в :xr:runtime:runtime-guava, а потоки – в :xr:runtime:runtime-rxjava3. (I60ae9)
  • Теперь при отсутствии достаточных разрешений функции Session.create и Session.configure вызывают исключение SecurityException, а не возвращают SessionCreatePermissionsNotGranted или SessionConfigurePermissionsNotGranted. (I7c488, b/430651879)

Версия 1.0.0-alpha04

7 мая 2025 г.

androidx.xr.runtime:runtime:1.0.0-alpha04, androidx.xr.runtime:runtime-openxr:1.0.0-alpha04 и androidx.xr.runtime:runtime-testing:1.0.0-alpha04. Версия 1.0.0-alpha04 содержит эти коммиты.

Новые функции

  • Теперь в Session реализован интерфейс androidx.lifecycle.LifecycleOwner, что обеспечивает более высокую совместимость с существующими парадигмами жизненного цикла Android.
  • Строки манифеста для Android XR описаны в этой статье.
  • Добавлены методы расширения Spatial Visibility Callback, позволяющие отслеживать, когда контент сцены перемещается в зону обзора пользователя или за ее пределы.
  • Добавлена заглушка для JxrPlatformAdapter (и всех связанных с ним классов).
  • В SceneCore и Runtime будет использоваться сеанс, а не сеанс в SceneCore.
  • Добавлен тег ActivityPose.hitTest, который позволяет использовать hitTest для виртуального контента.
  • Теперь можно указывать несколько реализаций Runtime во время компиляции. Во время выполнения будет загружен только один из них в зависимости от набора функций устройства.
  • Добавлен новый тип компонента SpatialPointerComponent, позволяющий клиентам указывать значок, который будет отображаться для указателя, или отключать значок. В настоящее время этот компонент можно прикрепить только к PanelEntity экземплярам.

Изменения в API

  • Сделайте реализацию Config общедоступной. (I95860)
  • Добавьте HandJointType и TrackingState. (I55880)
  • Для проектов, выпущенных с Kotlin 2.0, требуется KGP 2.0.0 или более поздней версии (Idb6b5).
  • Значение "Hand.isActive (boolean)" изменено на "Hand.trackingState". Реализация OpenXR была изменена соответствующим образом.
  • Требование разрешения android.permission.SCENE_UNDERSTANDING в Session.configure было изменено на android.permission.SCENE_UNDERSTANDING_COARSE.
  • LifecycleManager.configure реализован и теперь передает объект Config, который содержит свойство для каждой настраиваемой функции времени выполнения.
  • Теперь функцию Session.configure можно вызывать с параметром Config, чтобы настроить доступные функции времени выполнения.
  • Теперь в Session.create можно передавать CoroutineContext вместо CoroutineDispatcher.
  • Session.create поддерживает загрузку ARCore для Jetpack XR и/или SceneCore. Необходимо указать хотя бы один из них (доступны тестовые версии).
  • FakePerceptionManager выдает ошибку AnchorInvalidUuidException, если в Anchor.load и Anchor.unpersist передается недействительный UUID.
  • CoreState больше не является классом данных.

Исправление ошибок

  • Исправлены конфигурации proguard для времени выполнения.

Версия 1.0.0-alpha03

26 февраля 2025 г.

Версии androidx.xr.runtime:runtime:1.0.0-alpha03, androidx.xr.runtime:runtime-openxr:1.0.0-alpha03 и androidx.xr.runtime:runtime-testing:1.0.0-alpha03 выпущены без значительных изменений по сравнению с последней альфа-версией. Версия 1.0.0-alpha03 содержит эти коммиты.

Версия 1.0.0-alpha02

12 февраля 2025 г.

androidx.xr.runtime:runtime:1.0.0-alpha02, androidx.xr.runtime:runtime-openxr:1.0.0-alpha02 и androidx.xr.runtime:runtime-testing:1.0.0-alpha02. Версия 1.0.0-alpha02 содержит эти коммиты.

Критические и поведенческие изменения

  • Функции времени выполнения OpenXR, возвращающие якорь, теперь вызывают исключение AnchorResourcesExhaustedException, если обнаруживают код ошибки, указывающий на достижение лимита ресурсов OpenXR.
  • Для Session.create и Session.resume теперь требуется разрешение android.permission.HAND_TRACKING.

Новые функции

  • Добавлена поддержка отслеживания рук.

Исправление ошибок

  • Создание якорей более стабильно при использовании эмулятора.

Версия 1.0.0-alpha01

12 декабря 2024 г.

Выход androidx.xr.runtime:runtime-* 1.0.0-alpha01.

Функции первоначальной версии

Первый выпуск Jetpack XR Runtime. Эта библиотека содержит основные функции для набора библиотек Jetpack XR. включая обнаружение возможностей, управление жизненным циклом, настройку и многое другое. Библиотека времени выполнения предоставляет разные варианты (например, runtime-openxr или runtime-testing) в зависимости от платформы выполнения. Кроме того, эта библиотека предлагает базовые математические абстракции, такие как Vector3 и Matrix4, которые используются во всем API Jetpack XR.

  • Session позволяет точно настраивать систему XR, в том числе определять, когда обработка выполняется, а когда нет, и задавать общую конфигурацию. Этот дескриптор также используется во всех других API для доступа к базовым возможностям системы.

  • Pose: местоположение в произвольной системе координат, связанное с позицией и ориентацией. Этот класс используется для передачи информации о местоположении объектов в ARCore для Jetpack XR и Jetpack SceneCore.

Известные проблемы

  • В настоящее время параметр configure не выполняет никаких действий. В будущих версиях будут добавлены новые настройки, которые можно использовать для управления поведением Session.