Środowisko wykonawcze XR

Rozpocznij niestandardową sesję AR lub 3D za pomocą naszego natywnego środowiska wykonawczego.
Najnowsza aktualizacja Wersja stabilna Wersja kandydująca do publikacji Wersja Beta Wersja Alfa
24 września 2025 r. - - - 1.0.0-alpha06

Deklarowanie zależności

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

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

Odlotowe

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

    // Optional dependencies for asynchronous conversions
    implementation "androidx.xr.runtime:runtime-guava:1.0.0-alpha06"
    implementation "androidx.xr.runtime:runtime-rxjava3:1.0.0-alpha06"

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

Kotlin

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

    // Optional dependencies for asynchronous conversions
    implementation("androidx.xr.runtime:runtime-guava:1.0.0-alpha06")
    implementation("androidx.xr.runtime:runtime-rxjava3:1.0.0-alpha06")

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

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

Opinia

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

Tworzenie nowego problemu

Więcej informacji znajdziesz w dokumentacji narzędzia Issue Tracker.

Wersja 1.0

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

  • Urządzenie HandJointType zostało przeniesione z xr:runtime:runtime do xr:arcore:arcore. (Iadb9c, b/409058039)
  • Zmiana operatora mnożenia componentWiseMultiplication na Vector2, Vector3, Vector4 w celu skalowania i usunięcie symbolu operatora w celu zachowania spójności z innymi bibliotekami matematycznymi. Usunięto też componentWiseDivision z klas Vector na rzecz używania Vector.scale(otherVector.inverse()). (I8e1f6, b/399146447)
  • Dodanie [unscaled] spowoduje zwrócenie macierzy ze skalą równą 1. (I6381d, b/434928658)
  • :xr:runtime:runtime-guava zostanie usunięty, ponieważ Coroutines.kt został zastąpiony przez 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 HandJointTypeTrackingState. (I55880, b/334645808)
  • Udostępnij implementację konfiguracji publicznie. (I95860, b/334645808)
  • Wprowadziliśmy nowe typy robotów SessionCreateResultSessionConfigureResult. (Icb8cb, b/334645808)
  • Dodaj nową klasę BoundingBox, która reprezentuje prostopadłościan ograniczający w przestrzeni 3D, zdefiniowany przez minimalne i maksymalne punkty narożne. (Ic68c5, b/423073468)

Zmiany w interfejsie API

  • Zmieniono nazwę i przeniesiono androidx.xr.scenecore.PixelDimensions do androidx.xr.runtime.math.IntSize2d. Zmieniono nazwę i przeniesiono androidx.xr.scenecore.Dimensions do 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 zajęcia androidx.xr.runtime.FoV. Zamiast niej używaj zasady androidx.xr.runtime.FieldOfView. (I9ae27)
  • Dodano dodatkowe przeciążenie dla Session.create, które może zapewnić LifecycleOwner dla sesji do dołączenia. Pamiętaj, że w przypadku własności zasobu nadal musisz podać działanie, a właściwość LifecycleOwner musi być ograniczona do działania. (I1690b)
  • Nazwa FakeRuntimeAnchor.anchorsCreated została zmieniona na anchorsCreatedCount (I96df9, b/424441218)
  • Nazwy wartości konfiguracji *Mode zostały zmienione, aby odzwierciedlały ich działanie. (I6d247, b/414648065)
  • Projekty wydane w Kotlinie 2.0 wymagają używania KGP 2.0.0 lub nowszego (Idb6b5, b/344563182).
  • Interfejsy API powiązane z ciągami znaków w pliku manifestu zostały przeniesione z :xr:runtime:runtime do :xr:runtime:runtime-manifest. Nazwa pakietu zmieniła się z androidx.xr.runtime na androidx.xr.runtime.manifest. (I610ad, b/418800249)
  • Usunięto z interfejsu API elementy Session.resume(), Session.pause()Session.destroy(). Sesja nie jest już LifecycleOwner. Cykl życia sesji będzie teraz powiązany z cyklem życia aktywności przekazanej w parametrze Session.create(). (I28a03)
  • Ta biblioteka korzysta teraz z adnotacji o wartości null JSpecify, które są używane w typie. Programiści 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 interfejsy API asynchroniczne w stylu Kotlin. Programiści Java mogą korzystać z :xr:runtime:runtime-guava, aby uzyskiwać 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. Programiści Java mogą korzystać z biblioteki xr:runtime:runtime-rxjava3, aby uzyskiwać dostęp do zgodnych interfejsów API. (I64122, b/426639775)
  • Przenieś korutyny do :xr:runtime:runtime-guava, a Flows do :xr:runtime:runtime-rxjava3. (I60ae9)
  • Session.createSession.configure zwracają teraz SecurityException, gdy nie przyznano wystarczających uprawnień, zamiast zwracać SessionCreatePermissionsNotGranted lub SessionConfigurePermissionsNotGranted. (I7c488, b/430651879)

Wersja 1.0.0-alpha04

7 maja 2025 r.

androidx.xr.runtime:runtime:1.0.0-alpha04, androidx.xr.runtime:runtime-openxr:1.0.0-alpha04androidx.xr.runtime:runtime-testing:1.0.0-alpha04 są dostępne. Wersja 1.0.0-alpha04 zawiera te zmiany.

Nowe funkcje

  • Sesja implementuje teraz androidx.lifecycle.LifecycleOwner, co zapewnia większą interoperacyjność z dotychczasowymi wzorcami cyklu życia Androida.
  • Ciągi tekstowe manifestu dla Androida XR są określone i udokumentowane tutaj.
  • Dodano metody rozszerzenia wywołania zwrotnego widoczności przestrzennej, aby monitorować, kiedy zawartość sceny przesuwa się w obrębie pola widzenia użytkownika lub poza nie.
  • Dodano wersję stub JxrPlatformAdapter (i wszystkie powiązane z nią klasy).
  • Sesja będzie używana zarówno w przypadku SceneCore, jak i czasu działania zamiast sesji w SceneCore.
  • Dodano emotikon ActivityPose.hitTest, który umożliwia hitTest w przypadku treści wirtualnych.
  • Określanie wielu implementacji środowiska wykonawczego w czasie kompilacji jest teraz obsługiwane. W momencie wykonania zostanie wczytana tylko jedna wersja, w zależności od zestawu funkcji bieżącego urządzenia.
  • Dodano nowy typ komponentu SpatialPointerComponent, który umożliwia klientom określenie ikony renderowanej dla wskaźnika lub wyłączenie ikony. Ten komponent można obecnie dołączać tylko do PanelEntity instancji.

Zmiany w interfejsie API

  • Udostępnij implementację konfiguracji publicznie. (I95860)
  • Dodaj HandJointTypeTrackingState. (I55880)
  • Projekty wydane w Kotlinie 2.0 wymagają KGP w wersji 2.0.0 lub nowszej (Idb6b5).
  • Wartość Hand.isActive (boolean) została zmieniona na Hand.trackingState. Implementacja usługi OpenXR została odpowiednio zmodyfikowana.
  • Wymaganie uprawnień android.permission.SCENE_UNDERSTANDINGSession.configure zostało zmienione na android.permission.SCENE_UNDERSTANDING_COARSE.
  • LifecycleManager.configure jest zaimplementowana i teraz przekazuje obiekt Config, który zawiera właściwość dla każdej funkcji środowiska wykonawczego, którą można skonfigurować.
  • Session.configure można teraz wywołać za pomocą Config, aby skonfigurować dostępne funkcje środowiska wykonawczego.
  • Session.create obsługuje teraz przekazywanie CoroutineContext zamiast CoroutineDispatcher.
  • Session.create obsługuje wczytywanie ARCore w przypadku Jetpack XR lub SceneCore. Musisz podać co najmniej 1 wersję (dostępne są wersje testowe).
  • FakePerceptionManager zgłasza AnchorInvalidUuidException, gdy do funkcji Anchor.loadAnchor.unpersist przekazywany jest nieprawidłowy identyfikator UUID.
  • CoreState nie jest już klasą danych.

Poprawki błędów

  • Stałe konfiguracje ProGuard środowiska wykonawczego.

Wersja 1.0.0-alpha03

26 lutego 2025 r.

androidx.xr.runtime:runtime:1.0.0-alpha03, androidx.xr.runtime:runtime-openxr:1.0.0-alpha03androidx.xr.runtime:runtime-testing:1.0.0-alpha03 zostały udostępnione bez znaczących zmian w porównaniu z ostatnią wersją alfa. Wersja 1.0.0-alpha03 zawiera te zmiany.

Wersja 1.0.0-alpha02

12 lutego 2025 r.

androidx.xr.runtime:runtime:1.0.0-alpha02, androidx.xr.runtime:runtime-openxr:1.0.0-alpha02androidx.xr.runtime:runtime-testing:1.0.0-alpha02 są dostępne. Wersja 1.0.0-alpha02 zawiera te zmiany.

Zmiany w działaniu i zachowaniu

  • Funkcje środowiska wykonawczego OpenXR, które zwracają element Anchor, zgłaszają teraz błąd AnchorResourcesExhaustedException, jeśli napotkają kod błędu informujący o osiągnięciu limitu zasobów OpenXR.
  • Uprawnienie android.permission.HAND_TRACKING jest teraz wymagane w przypadku Session.createSession.resume.

Nowe funkcje

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

Poprawki błędów

  • Tworzenie kotwic jest bardziej stabilne podczas korzystania z emulatora.

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 funkcji, zarządzanie cyklem życia, konfigurację i inne działania. Biblioteka środowiska wykonawczego udostępnia różne warianty (np. runtime-openxr lub runtime-testing) w zależności od platformy wykonawczej. Biblioteka ta oferuje też podstawowe abstrakcje matematyczne, takie jak Vector3Matrix4, które są używane w całym interfejsie Jetpack XR API.

  • Session: zapewnia precyzyjną kontrolę nad systemem XR, w tym możliwość decydowania, 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 funkcje systemu.

  • Pose: lokalizacja w dowolnym układzie współrzędnych, która ma przypisane położenie i orientację. Będziesz używać tej klasy do przekazywania ARCore informacji o lokalizacji obiektów w przypadku Jetpack XR i Jetpack SceneCore.

Znane problemy

  • configure nie ma obecnie żadnego działania. W przyszłych wersjach dodamy nowe ustawienia, których możesz używać do kontrolowania działania Session.