Nowości dotyczące produktów

Aktualizacje pakietu SDK Android XR: przedstawiamy wersję przedpremierową 4 dla programistów

Czas czytania: 5 minut

Z przyjemnością informujemy o udostępnieniu wersji przedpremierowej dla programistów 4 pakietu SDK Android XR. Nadal skupiamy się na ujednolicaniu tworzenia aplikacji na różne urządzenia, takie jak zestawy słuchawkowe, przewodowe okulary XR i inteligentne okulary. Aby nasza platforma była intuicyjna, wprowadzamy bardziej opisowe nazwy formatów. Okulary z AI to teraz okulary audio, a okulary z wyświetlaczem i AI to okulary z wyświetlaczem. Zmiany te są widoczne w naszej 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.Ponadto nasze podstawowe biblioteki, w tym XR Runtime, Jetpack SceneCore i ARCore dla Jetpack XR, wkrótce oficjalnie przejdą do wersji beta.

Aby zapewnić Ci wcześniejszy dostęp do  sprzętu i zasobów  do tworzenia immersyjnych i rozszerzonych wrażeń na przyszłych urządzeniach, takich 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 zacznij wypełniać 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ć wrażenia z aplikacji 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 immersyjnych aplikacji 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 w locie za pomocą kodu, co jest idealne do tworzenia niestandardowych modeli 3D. Ta funkcja zostanie wprowadzona jako eksperymentalna, 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żyj jej razem z SpatiallGltfModelState, aby uzyskać dostęp do węzłówanimacji w modelu glTF lub użyć ich do dodawania tekstur i materiałów 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ć aplikacje dopasowane kontekstowo, 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 z otoczeniem fizycznym.

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

To świetny czas na tworzenie aplikacji na Androida XR. Dzięki temu, że pakiet SDK Jetpack XR wkrótce przejdzie do wersji beta, a Ty będziesz mieć do dyspozycji wiele nowych narzędzi, możesz przygotować swoje aplikacje na XR w każdym z tych obszarów.  

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 Android Developers. 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 stworzysz.

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

Autorzy:

Czytaj dalej