Nowości dotyczące usług

Aktualizacje pakietu SDK Android XR: wersja przedpremierowa dla programistów 4

5 min czytania

Z przyjemnością informujemy o udostępnieniu wersji przedpremierowej 4 pakietu SDK Android XR. Nadal skupiamy się na ujednoliceniu tworzenia aplikacji na różne urządzenia, takie jak gogle, przewodowe okulary XR i inteligentne okulary. Aby platforma była intuicyjna, wprowadzamy bardziej opisowe nazwy formatów. Okulary z AI to teraz okulary audio, a okulary z wyświetlaczem AI to okulary z wyświetlaczem. Zmiany te są widoczne w dokumentacji od dziś.

Ta wersja zawiera wiele aktualizacji, które pomogą Ci tworzyć niesamowite aplikacje na urządzenia XR, umożliwiać bardziej immersyjne wrażenia na goglach XR i upraszczać tworzenie aplikacji rozszerzonej rzeczywistości na okulary audio i okulary z wyświetlaczem. Wkrótce oficjalnie udostępnimy w wersji beta nasze podstawowe biblioteki, w tym XR Runtime, Jetpack SceneCore i ARCore dla Jetpack XR.

Aby zapewnić Ci wcześniejszy dostęp do  sprzętu i zasobów  do tworzenia immersyjnych i rozszerzonych aplikacji na przyszłe urządzenia, takie jak okulary z wyświetlaczem i okulary audio oraz Project Aura firmy XREAL, ogłaszamy program Android XR Developer Catalyst. Dowiedz się więcej i prześlij zgłoszenie już dziś. 

Tworzenie aplikacji rozszerzonej rzeczywistości na okulary audio i okulary z wyświetlaczem

W wersji przedpremierowej dla programistów 4 wprowadzamy nowe interfejsy API, które pomogą Ci tworzyć i testować aplikacje. Zaczynamy od bibliotek do tworzenia aplikacji rozszerzonej rzeczywistości.

Jetpack Projected: interfejsy API Device Availability i ProjectedTestRule

Biblioteka Jetpack Projected pomaga przenosić aplikacje z telefonu do pola widzenia użytkownika. Dodaliśmy interfejs API Device Availability, który łączy sygnały dotyczące stanu noszenia i łączności w standardowe wartości Lifecycle.State Androida. Dzięki temu możesz dostosować działanie aplikacji w zależności od tego, czy urządzenie jest noszone.

val xrDevice = XrDevice.getCurrentDevice(projectedContext)

// Observe the device lifecycle flow
xrDevice.getLifecycle().currentStateFlow
    .collect { state ->
        when (state) {
            Lifecycle.State.STARTED -> { /* Device is available (worn) */ }
            Lifecycle.State.CREATED -> { /* Device is unavailable (not worn) */ }
            Lifecycle.State.DESTROYED -> { /* Device is DISCONNECTED */ }
        }
    }

Aby uprościć testowanie, nowy ProjectedTestRule interfejs API w artefakcie projected-testing automatyzuje konfigurację środowisk testowych. Pomaga to pisać przejrzyste i niezawodne testy jednostkowe bez powtarzalnego kodu.

// from the 'androidx.xr.projected:projected-testing:1.0.0-alpha07' artifact
@get:Rule
val projectedTestRule = ProjectedTestRule()

@Test
fun testProjectedContextInitialization() {
    // by default, ProjectedTestRule automatically creates and connects
    // a projected device before each test
    val projectedContext = ProjectedContext.createProjectedDeviceContext(context)

    // assert the projected context is successfully initialized
    assertThat(projectedContext).isNotNull()
}

Jetpack Compose Glimmer: Google Sans Flex i nowe komponenty

Nasza biblioteka interfejsu użytkownika do okularów z wyświetlaczem, Jetpack Compose Glimmer, zawiera teraz Google Sans Flex, co poprawia czytelność na optycznych wyświetlaczach przeziernych. Dodaliśmy też kilka komponentów interaktywnych:

  • Stosy: zaprojektowane dla grup zoptymalizowanych pod kątem touchpada, wyświetlających po jednym elemencie.
  • _Chipsy z tytułem_: zapewniają kategoryzację i kontekst kart treści.
glimmer (1).gif

Tworzenie aplikacji immersyjnych na gogle XR i przewodowe okulary XR

Jeśli chcesz tworzyć w pełni immersyjne aplikacje na gogle XR i przewodowe okulary XR, mamy dla Ciebie kilka ważnych aktualizacji.

Przejście do wersji beta i nowoczesna architektura

XR Runtime, Jetpack SceneCore i funkcje percepcji ARCore dla Jetpack XR (mapy głębiśledzenie wzroku i dłoni, testowanie trafień i kotwice przestrzenne) wkrótce przejdą do wersji beta, dlatego uprościliśmy interfejsy API Jetpack XR. Usunęliśmy starsze pakiety Guava i RxJava3 na rzecz nowoczesnej architektury opartej na Kotlinie.

Jetpack SceneCore: glTF i siatki niestandardowe

Rozszerzamy możliwości modeli 3D, dodając możliwość precyzyjnego dostrajania modeli 3D i uzyskiwania dostępu do określonych węzłów w modelu 3D. Za pomocą GltfModelNode możesz modyfikować właściwości takie jak pozy, materiały i tekstury, a nawet uruchamiać animacje dla określonych węzłów.

// Create a new PBR material
pbrMaterial = KhronosPbrMaterial.create(
    session = xrSession,
    alphaMode = AlphaMode.OPAQUE
)

// Load a texture.
val texture = Texture.create(
    session = xrSession,
    path = Path("textures/texture_name.png")
)

// Apply the texture and configure occlusion to define how the material handles ambient lighting.
pbrMaterial.setOcclusionTexture(
    texture = texture,
    strength = 0.5f
)

// Access the hierarchy of nodes within the model entity.
val entityNodes = entity.nodes

// Find the specific node to apply the material override.
val myEntityNode = entityNodes.find { it.name == "node_name" }

// Apply the PBR material to the node.
myEntityNode?.setMaterialOverride(
   material = newMaterial
)

Wprowadzamy też siatki niestandardowe w SceneCore. Siatki niestandardowe umożliwiają tworzenie geometrii na bieżąco za pomocą kodu, co jest idealne do tworzenia niestandardowych modeli 3D. Ta funkcja zostanie udostępniona w wersji eksperymentalnej, więc wypróbuj ją i podziel się z nami swoją opinią.

// Create the mesh
val roadMesh =
    CustomMesh.BuilderFromMeshData(session, roadVertexLayout)
        .addVertexData(ByteBufferRegion(roadDataBuffer, 0, vertexDataSize))
        .setIndexData(ByteBufferRegion(roadDataBuffer, vertexDataSize, indexDataSize))
        .setTopology(MeshSubsetTopology.TRIANGLES)
        .build()

// Define the material
val roadMaterial = KhronosPbrMaterial.create(session, AlphaMode.OPAQUE)

// Instantiate the entity using the custom mesh and material
val roadEntity =
    MeshEntity.create(
        session,
        roadMesh,
        listOf(roadMaterial),
        pose = roadPose,
    )

Compose for XR: natywna obsługa glTF

Teraz mamy natywną obsługę glTF bezpośrednio w Compose for XR dzięki  SpatialGltfModel. Używaj jej razem z SpatiallGltfModelState, aby uzyskiwać dostęp do węzłówanimacji w modelu glTF lub dodawać tekstury i materiały do modeli 3D.

val myGltfModelState = rememberSpatialGltfModelState(
        source = SpatialGltfModelSource.fromPath(
            Paths.get("models/my_animated_model.glb")
        )
    )

    val myGltfAnimation =
        myGltfModelState.animations.find { it.name == "animation_name" }

    DisposableEffect(myGltfAnimation) {
        myGltfAnimation?.loop()

        onDispose {
            myGltfAnimation?.stop()
        }
    }

    SpatialGltfModel(state = myGltfModelState, modifier = modifier)

ARCore dla Jetpack XR: wersja przedpremierowa interfejsu Geospatial API dla przewodowych okularów XR

W ARCore dla Jetpack XR udostępniamy też wersję przedpremierową interfejsu Geospatial API dla przewodowych okularów XR. Ta aktualizacja umożliwia precyzyjne kotwiczenie treści cyfrowych powiązanych z rzeczywistymi lokalizacjami w ponad 87 krajach.

Łącząc system pozycjonowania wizualnego (VPS) ARCore z możliwościami rozumowania i dźwięku interfejsu Gemini Live API, możesz tworzyć dopasowane kontekstowo aplikacje, które rozumieją zarówno lokalizację, jak i pozycję użytkownika. Wyobraź sobie, że tworzysz immersyjną wycieczkę z przewodnikiem AI, która zapewnia w czasie rzeczywistym opisy audio pobliskich miejsc, płynnie łącząc informacje cyfrowe ze środowiskiem fizycznym.

Zacznij budować przyszłość już dziś

To świetny czas na tworzenie aplikacji na Androida XR. Pakiet SDK Jetpack XR wkrótce przejdzie do wersji beta, a Ty będziesz mieć do dyspozycji wiele nowych narzędzi. Zapoznaj się z każdym z tych obszarów, aby przygotować aplikacje na XR.  

Przeczytaj dokumentację, zapoznaj się z przykładami i sprawdź eksperymenty XR

Pełne przewodniki techniczne, dokumentację interfejsu API i instrukcje konfigurowania nowego emulatora znajdziesz w oficjalnej witrynie dla deweloperów Androida. Zainspiruj się naszymi przykładami i eksperymentami. Zobacz, jak wykorzystaliśmy te interfejsy API do tworzenia immersyjnych układów przestrzennych, wczytywania modeli 3D, eksplorowania dźwięku przestrzennego i nie tylko.

Sprawdź nowości dotyczące silników gier

Dodaliśmy oficjalną obsługę Unreal EngineGodot oraz udostępniliśmy 2 nowe narzędzia, które przyspieszą tworzenie aplikacji na Androida XR za pomocą Unity i Android XR Interaction Framework. Na podstawie Twoich opinii wprowadzamy też Android XR Engine Hub, który umożliwia uruchamianie aplikacji bezpośrednio z preferowanego silnika.

Zgłoś się do programu Android XR Developer Catalyst

Nie przegap okazji na tworzenie aplikacji na najnowszy sprzęt z Androidem XR. Zgłoś się już dziś, aby uzyskać dostęp do sprzętu w wersji przedpremierowej, w tym do prototypu okularów audio i okularów z wyświetlaczem oraz do Project Aura firmy XREAL.

Dowiedz się więcej i zgłoś się już dziś

Cieszymy się, że w tym roku, gdy będziemy wprowadzać na rynek kolejne urządzenia z Androidem XR, będziemy mogli zobaczyć niesamowite aplikacje XR, które tworzysz.

Więcej informacji o tym ogłoszeniu i wszystkich nowościach z Google I/O 2026 znajdziesz na io.google.

Autorzy:

Czytaj dalej