Środowisko wykonawcze XR

Rozpocznij niestandardową sesję AR lub 3D w naszym natywnym środowisku wykonawczym.
Najnowsza aktualizacja Wersja stabilna Wersja kandydująca do publikacji Wersja beta Wersja alfa
6 maja 2026 r. - - - 1.0.0-alpha13

Deklarowanie zależności

Aby dodać zależność od środowiska wykonawczego XR, musisz dodać do projektu repozytorium Maven Google. Więcej informacji znajdziesz w repozytorium Maven Google.

Dodaj zależności od potrzebnych artefaktów w pliku build.gradle aplikacji lub modułu:

Odlotowe

dependencies {
    implementation "androidx.xr.runtime:runtime:1.0.0-alpha13"

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

Kotlin

dependencies {
    implementation("androidx.xr.runtime:runtime:1.0.0-alpha13")

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

Więcej informacji o zależnościach znajdziesz w artykule Dodawanie zależności kompilacji.

Prześlij opinię

Twoja opinia pomoże nam ulepszyć Jetpacka. Jeśli zauważysz nowe problemy lub masz pomysły na ulepszenie tej biblioteki, daj nam znać. Zanim utworzysz nowy problem, zapoznaj się z istniejącymi problemami w tej bibliotece. Możesz dodać swój głos do istniejącego problemu, klikając przycisk gwiazdki.

Utwórz nowy problem

Więcej informacji znajdziesz w dokumentacji narzędzia do śledzenia problemów Issue Tracker documentation.

Wersja 1.0

Wersja 1.0.0-alpha13

6 maja 2026 r.

Publikacja androidx.xr.runtime:runtime-*:1.0.0-alpha13 Wersja 1.0.0-alpha13 zawiera te zmiany.

Zmiany w interfejsie API

  • Elementy TrackingState i VpsAvailabilityResult zostały przeniesione do androidx.xr.arcore package, a typy w androidx.xr.runtime zostały wycofane. (Ic7930, b/480462213)
  • Funkcja Session.getNativeData() jest teraz zdefiniowana w module xr:runtime:runtime i udostępnia element [nativeFunctionTablePointer] dla środowisk wykonawczych opartych na OpenXR. (Ifa862)
  • Przeniesiono interfejs API NativeData do biblioteki xr:runtime:runtime. (I87954, b/494251500)
  • Funkcje Session.create i Session.configure nie są już wyczerpujące i wymagają klauzuli else w instrukcjach when. (I9885e, b/495805998, b/495805998)
  • Funkcja androidx.xr.runtime.FieldOfView została wycofana. Użyj zamiast niej funkcji androidx.xr.runtime.math.FieldOfView. (Ia01a0, b/480233045)
  • Nazwa funkcji Matrix4.pose została zmieniona na Matrix4.toPose(). Właściwość pose została wycofana. (I329b4, b/493383490)
  • Dodano interfejs API XrServiceAvailability (If379e, b/493558010)
  • Dodano adnotację ExperimentalXrServiceAvailabilityApi (Icab49, b/491069725)
  • Usuń sufiks dla @PreviewSpatialApi (If5242, b/491939311)
  • Zmieniono nazwę DeviceTrackingMode.LAST_KNOWN na SPATIAL_LAST_KNOWN (z wycofanym rezerwowym), dodano INERTIAL_LAST_KNOWN do śledzenia 3DoF i dodano TRACKING_DEGRADED do TrackingState. (Ie661c, b/445466590)
  • Dodano interfejs API XrLog. Ustaw wartość XrLog.isEnabled na true, aby włączyć logowanie w JetpackXR, i użyj [XrLog.Level], aby ustawić poziom logowania. (I76a1f, b/463460895, b/487378441)
  • Dodanie DISPLAY_CATEGORY_XR_PROJECTED. Ta stała jest używana w pliku manifestu, aby wskazać, że aktywność jest przeznaczona na wyświetlacz XR (I26d8b).

Wersja 1.0.0-alpha12

25 marca 2026 r.

Publikacja androidx.xr.runtime:runtime-*:1.0.0-alpha12 Wersja 1.0.0-alpha12 zawiera te zmiany.

Zmiany w interfejsie API

  • Zmieniono Config.augmentedObjectCategories z listy na zbiór (I25a64, b/487376359).
  • Usunięto flagę unscaledGravityAlignedActivitySpace z Session.create. Element ActivitySpace jest teraz zawsze nieskalowany i wyrównany do grawitacji. (If6f11, b/458173423)
  • Dodano przeciążenie Session.create, aby umożliwić przekazywanie kontekstu Androida do określania zakresu zasobów. (I7d3fe, b/415805990, b/477386334)
  • Dodano JvmOverloads do FloatSize2d.to3d, Matrix3.copy i Matrix4.copy (I69586, b/481371562).
  • Dodano możliwość ustawiania kategorii śledzenia AugmentedObject w konfiguracji (I1f6e4, b/480220930).
  • Dodano moduł xr:runtime:runtime-interfaces. (I52ac6, b/461561664)

Wersja 1.0.0-alpha11

25 lutego 2026 r.

Publikacja androidx.xr.runtime:runtime-*:1.0.0-alpha11 Wersja 1.0.0-alpha11 zawiera te zmiany.

Zmiany w interfejsie API

  • Ograniczono interfejs ConfigMode do użytku wewnętrznego (Ibfb87).
  • Przeniesiono androidx.xr.runtime.Config.GeospatialMode na poziom pakietu (Ibe682).
  • Przeniesiono androidx.xr.runtime.Config.FaceTrackingMode na poziom pakietu (Iac501).
  • Przeniesiono androidx.xr.runtime.Config.AnchorPersistenceMode na poziom pakietu (I0360f).
  • Przeniesiono androidx.xr.runtime.Config.DepthEstimationMode na poziom pakietu (I7e3e9).
  • Przeniesiono androidx.xr.runtime.Config.DeviceTrackingMode na poziom pakietu (I3aacd).
  • Przeniesiono androidx.xr.runtime.Config.HandTrackingMode na poziom pakietu (I658f3).
  • Przeniesiono androidx.xr.runtime.Config.PlaneTrackingMode na poziom pakietu (Ia251b).
  • Przeniesiono androidx.xr.runtime.XrDevice.DisplayBlendMode na poziom pakietu (I6f333).
  • Dodano metodę fabryczną do tworzenia elementu XrDevice za pomocą kontekstu, sesji i CoroutineContext. (I139c5)
  • Dodano SpatialApiVersionHelper, aby ułatwić wysyłanie zapytań o wersję środowiska wykonawczego Androida XR dostępną na platformie. (I7c53c)
  • Dodano moduł xr:runtime:runtime-openxr (Ib42ea).

Wersja 1.0.0-alpha10

28 stycznia 2026 r.

Publikacja androidx.xr.runtime:runtime-*:1.0.0-alpha10 Wersja 1.0.0-alpha10 zawiera te zmiany.

Zmiany w interfejsie API

  • Element ConfigMode.HeadTrackingMode został zastąpiony elementem ConfigMode.DeviceTrackingMode. (le273e, b/467150206)
  • Usunięto metody toNormalized, times(float) i div(float) z kwaternionu. Te metody są zbędne, ponieważ wszystkie kwaterniony są normalizowane w czasie tworzenia i klasa jest niezmienna. (l558fc, b/460210457)

Poprawki błędów

  • Dodano dokumentację do Session.create, która pokazuje, jak uniknąć tworzenia sesji w głównym wątku aplikacji. (le5554, b/463687170)
  • Uniemożliwiono aplikacjom tworzenie elementu BoundingBox z wartością NaN. (l58c14, b/464025895)

Wersja 1.0.0-alpha09

3 grudnia 2025 r.

Publikacja androidx.xr.runtime:runtime-*:1.0.0-alpha09 Wersja 1.0.0-alpha09 zawiera te zmiany.

Wersja 1.0.0-alpha08

19 listopada 2025 r.

Publikacja androidx.xr.runtime:runtime-*:1.0.0-alpha08 Wersja 1.0.0-alpha08 zawiera te zmiany.

Nowe funkcje

  • Dodano element XrDevice, aby udostępniać informacje o możliwościach urządzenia. (Ic9d1f)
  • Dodano nowy interfejs API ConfigMode.isSupported do wysyłania zapytań o możliwości sesji. (Iff7af)
  • Dodano interfejs API XrDisplay.BlendMode. (I484e4)

Zmiany w interfejsie API

  • Zmieniono nazwę [XrDevice.getPreferredBlendMode] na [XrDevice.getPreferredDisplayBlendMode]. (I7e48f)

Wersja 1.0.0-alpha07

22 października 2025 r.

Publikacja androidx.xr.runtime:runtime-*:1.0.0-alpha07 Wersja 1.0.0-alpha07 zawiera te zmiany.

Zmiany w interfejsie API

  • Usuń SessionConfigureConfigureNotSupported i zastąp go elementem UnsupportedOperationException. (I7680f)

Wersja 1.0.0-alpha06

24 września 2025 r.

Publikacja androidx.xr.runtime:runtime-*:1.0.0-alpha06 Wersja 1.0.0-alpha06 zawiera te zmiany.

Zmiany w interfejsie API

  • Element HandJointType został przeniesiony z xr:runtime:runtime do xr:arcore:arcore. (Iadb9c, b/409058039)
  • Zmiana operatora times dla componentWiseMultiplication w przypadku Vector2, Vector3, Vector4 na skalowanie i usunięcie symbolu operatora w celu zachowania spójności z innymi bibliotekami matematycznymi. Usunięcie też componentWiseDivision z klas Vector zamiast używania Vector.scale(otherVector.inverse()). (I8e1f6, b/399146447)
  • Dodanie [unscaled], aby zwracać macierz ze skalą równą 1. (I6381d, b/434928658)
  • Element :xr:runtime:runtime-guava zostanie usunięty, ponieważ Coroutines.kt został zastąpiony elementem SuspendtoFutureAdapter. (I0cd3c, b/406597902)

Wersja 1.0.0-alpha05

30 lipca 2025 r.

Publikacja androidx.xr.runtime:runtime-*:1.0.0-alpha05 Wersja 1.0.0-alpha05 zawiera te zmiany.

Nowe funkcje

  • Dodaj HandJointType i TrackingState. (I55880, b/334645808)
  • Udostępnij implementację konfiguracji. (I95860, b/334645808)
  • Wprowadzono nowe typy SessionCreateResult i SessionConfigureResult. (Icb8cb, b/334645808)
  • Dodaj nową klasę BoundingBox, która reprezentuje ramkę ograniczającą wyrównaną do osi w przestrzeni 3D, zdefiniowaną przez minimalne i maksymalne punkty narożne. (Ic68c5, b/423073468)

Zmiany w interfejsie API

  • Zmieniono nazwę i przeniesiono androidx.xr.scenecore.PixelDimensions na androidx.xr.runtime.math.IntSize2d. Zmieniono nazwę i przeniesiono androidx.xr.scenecore.Dimensions na androidx.xr.runtime.math.FloatSize3d. Zmieniono nazwę androidx.xr.scenecore.PlaneType na androidx.xr.scenecore.PlaneOrientation. Zmieniono nazwę androidx.xr.scenecore.PlaneSemantic na androidx.xr.scenecore.PlaneSemanticType. (Ifd405, b/416456228)
  • Usunięto klasę androidx.xr.runtime.FoV. Użyj zamiast niej funkcji androidx.xr.runtime.FieldOfView. (I9ae27)
  • Dodano dodatkowe przeciążenie dla Session.create, które może udostępniać LifecycleOwner do dołączenia do sesji. Pamiętaj, że aktywność nadal będzie musiała być udostępniana na potrzeby własności zasobów, a LifecycleOwner musi być ograniczony do aktywności. (I1690b)
  • Zmieniono nazwę FakeRuntimeAnchor.anchorsCreated na anchorsCreatedCount (I96df9, b/424441218).
  • Nazwy wartości *Mode w konfiguracji zostały zmienione, aby odzwierciedlały ich działanie. (I6d247, b/414648065)
  • Projekty opublikowane w Kotlinie 2.0 wymagają użycia KGP 2.0.0 lub nowszego (Idb6b5, b/344563182).
  • Interfejsy API związane z ciągami znaków w manifeście zostały przeniesione z :xr:runtime:runtime do :xr:runtime:runtime-manifest. Nazwa pakietu została zmieniona z androidx.xr.runtime na androidx.xr.runtime.manifest. (I610ad, b/418800249)
  • Funkcje Session.resume(), Session.pause() i Session.destroy() zostały usunięte z powierzchni interfejsu API. Sesja nie jest już LifecycleOwner. Cykl życia sesji będzie teraz powiązany z cyklem życia aktywności przekazanej w Session.create(). (I28a03)
  • Ta biblioteka używa teraz adnotacji o wartości null JSpecify, które są używane w typach. Deweloperzy Kotlin powinni używać tego argumentu kompilatora, aby wymusić prawidłowe użycie: -Xjspecify-annotations=strict (jest to domyślne ustawienie od wersji 2.1.0 kompilatora Kotlin) (Ia8420, b/326456246)
  • Główny artefakt środowiska wykonawczego (:xr:runtime:runtime) będzie zawierać tylko asynchroniczne interfejsy API w stylu Kotlin. Deweloperzy Java mogą korzystać z :xr:runtime:runtime-guava, aby uzyskać dostęp do zgodnych interfejsów API. (I05d4a, b/426639315)
  • Główny artefakt środowiska wykonawczego (:xr:runtime:runtime) będzie zawierać tylko asynchroniczne interfejsy API w stylu Kotlin. Deweloperzy Java mogą korzystać z biblioteki xr:runtime:runtime-rxjava3, aby uzyskać dostęp do zgodnych interfejsów API. (I64122, b/426639775)
  • Przenieś procedury do :xr:runtime:runtime-guava, a przepływy do :xr:runtime:runtime-rxjava3. (I60ae9)
  • Funkcje Session.create i Session.configure zgłaszają teraz wyjątek SecurityException, gdy nie przyznano wystarczających uprawnień, zamiast zwracać SessionCreatePermissionsNotGranted lub SessionConfigurePermissionsNotGranted. (I7c488, b/430651879)

Wersja 1.0.0-alpha04

7 maja 2025 r.

Publikacja androidx.xr.runtime:runtime:1.0.0-alpha04, androidx.xr.runtime:runtime-openxr:1.0.0-alpha04 i androidx.xr.runtime:runtime-testing:1.0.0-alpha04 Wersja 1.0.0-alpha04 zawiera te zmiany.

Nowe funkcje

  • Sesja implementuje teraz androidx.lifecycle.LifecycleOwner, aby zapewnić większą interoperacyjność z dotychczasowymi paradygmatami cyklu życia Androida.
  • Ciągi znaków w pliku manifestu Androida XR są określone i opisane tutaj.
  • Dodano metody rozszerzające wywołania zwrotne widoczności przestrzennej, aby monitorować, kiedy treści sceny przesuwają się wewnątrz lub na zewnątrz pola widzenia użytkownika.
  • Dodano wersję zastępczą JxrPlatformAdapter (i wszystkich powiązanych z nią klas).
  • Zamiast sesji w SceneCore w SceneCore i środowisku wykonawczym będzie używana sesja.
  • Dodano ActivityPose.hitTest, co umożliwia hitTest w przypadku treści wirtualnych.
  • Obsługiwane jest teraz określanie wielu implementacji środowiska wykonawczego w czasie kompilacji. W czasie wykonywania zostanie załadowana tylko jedna implementacja na podstawie zestawu funkcji bieżącego urządzenia.
  • Dodano nowy typ komponentu SpatialPointerComponent, który umożliwia klientom określanie ikony renderowanej dla wskaźnika lub wyłączanie ikony. Ten komponent można obecnie dołączać tylko do instancji PanelEntity.

Zmiany w interfejsie API

  • Udostępnij implementację konfiguracji. (I95860)
  • Dodaj HandJointType i TrackingState. (I55880)
  • Projekty opublikowane w Kotlinie 2.0 wymagają użycia KGP 2.0.0 lub nowszego (Idb6b5).
  • Element Hand.isActive (boolean) został zmieniony na Hand.trackingState. Implementacja OpenXR została odpowiednio zmodyfikowana.
  • Wymaganie uprawnienia android.permission.SCENE_UNDERSTANDING w Session.configure zostało zmienione na android.permission.SCENE_UNDERSTANDING_COARSE.
  • Zaimplementowano LifecycleManager.configure, który przekazuje teraz obiekt Config zawierający właściwość dla każdej konfigurowalnej funkcji środowiska wykonawczego.
  • Funkcję Session.configure można teraz wywoływać za pomocą Config, aby skonfigurować dostępne funkcje środowiska wykonawczego.
  • Funkcja Session.create obsługuje teraz przekazywanie CoroutineContext zamiast CoroutineDispatcher.
  • Funkcja Session.create obsługuje wczytywanie ARCore dla Jetpack XR lub SceneCore. Musisz podać co najmniej 1 (dostępne są wersje testowe).
  • Funkcja FakePerceptionManager zgłasza wyjątek AnchorInvalidUuidException, gdy do funkcji Anchor.load i Anchor.unpersist zostanie przekazany nieprawidłowy identyfikator UUID.
  • Element CoreState nie jest już klasą danych.

Poprawki błędów

  • Naprawiono konfiguracje ProGuard środowiska wykonawczego.

Wersja 1.0.0-alpha03

26 lutego 2025 r.

Publikacja androidx.xr.runtime:runtime:1.0.0-alpha03, androidx.xr.runtime:runtime-openxr:1.0.0-alpha03 i androidx.xr.runtime:runtime-testing:1.0.0-alpha03 bez istotnych zmian od ostatniej wersji alfa. Wersja 1.0.0-alpha03 zawiera te zmiany.

Wersja 1.0.0-alpha02

12 lutego 2025 r.

Publikacja androidx.xr.runtime:runtime:1.0.0-alpha02, androidx.xr.runtime:runtime-openxr:1.0.0-alpha02 i androidx.xr.runtime:runtime-testing:1.0.0-alpha02 Wersja 1.0.0-alpha02 zawiera te zmiany.

Istotne zmiany i zmiany w działaniu

  • Funkcje środowiska wykonawczego OpenXR, które zwracają kotwicę, zgłaszają teraz wyjątek AnchorResourcesExhaustedException, jeśli napotkają kod błędu informujący o osiągnięciu limitu zasobów OpenXR.
  • Do funkcji Session.create i Session.resume wymagane jest teraz uprawnienie android.permission.HAND_TRACKING.

Nowe funkcje

  • Dodano obsługę śledzenia rąk.

Poprawki błędów

  • Tworzenie kotwic jest bardziej stabilne podczas działania na emulatorze.

Wersja 1.0.0-alpha01

12 grudnia 2024 r.

Publikacja androidx.xr.runtime:runtime-* 1.0.0-alpha01

Funkcje pierwszej wersji

Pierwsza wersja środowiska wykonawczego Jetpack XR. Ta biblioteka zawiera podstawowe funkcje pakietu bibliotek Jetpack XR. Obejmuje to wykrywanie możliwości, zarządzanie cyklem życia, konfigurację i inne funkcje. Biblioteka środowiska wykonawczego udostępnia różne warianty (np. runtime-openxr lub runtime-testing) w zależności od platformy wykonawczej. Dodatkowo ta biblioteka oferuje podstawowe abstrakcje matematyczne, takie jak Vector3 i Matrix4, które są używane w całym interfejsie API Jetpack XR.

  • Session: zapewnia precyzyjną kontrolę nad systemem XR, w tym decydowanie, kiedy przetwarzanie jest wykonywane, a kiedy nie, oraz ogólną konfigurację. Jest to też uchwyt, którego będziesz używać we wszystkich innych interfejsach API, aby odblokować podstawowe możliwości systemu.

  • Pose: lokalizacja w dowolnym układzie współrzędnych, z którą powiązane są pozycja i orientacja. Ta klasa będzie używana do komunikowania lokalizacji obiektów z ARCore dla Jetpack XR i Jetpack SceneCore.

Znane problemy

  • configure jest obecnie operacją pustą. W przyszłych wersjach dodamy nowe ustawienia, których będzie można używać do kontrolowania działania Session.