Wiadomości o usługach

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

Czas czytania: 5 minut

Z przyjemnością udostępniamy czwartą wersję przedpremierową pakietu SDK Android XR dla programistów. Nadal skupiamy się na ujednolicaniu tworzenia aplikacji na różne urządzenia, takie jak gogle, przewodowe okulary XR i inteligentne okulary. Aby nasza platforma była bardziej intuicyjna, wprowadzamy bardziej opisowe nazwy naszych formatów, w których okulary AI to teraz okulary audio, a okulary AI z wyświetlaczem to teraz okulary z wyświetlaczem. Zmiany te pojawią się w naszej dokumentacji od dziś.

Ta wersja zawiera wiele aktualizacji, które pomogą Ci tworzyć niesamowite projekty na urządzenia XR, umożliwiać bardziej wciągające wrażenia na goglach XR i upraszczać tworzenie projektów rozszerzonej rzeczywistości na okularach audio i wyświetlaczach.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 wczesny dostęp do sprzętu i zasobów do tworzenia wciągających i rozszerzonych treści na nadchodzące urządzenia, takie jak okulary wyświetlające obraz i okulary audio oraz Project Aura od XREAL, ogłaszamy program Android XR Developer Catalyst. Dowiedz się więcej i prześlij zgłoszenie już dziś. 

Tworzenie rozszerzonych doświadczeń na potrzeby okularów audio i wyświetlających

Czwarta wersja przedpremierowa dla programistów, która zawiera nasze biblioteki do tworzenia rozszerzonych funkcji, wprowadza nowe interfejsy API, które pomagają tworzyć i testować aplikacje.

Jetpack Projected: dostępność urządzeń i interfejsy ProjectedTestRule API

Biblioteka Jetpack Projected pomaga przenosić aplikacje z telefonu do pola widzenia użytkownika. Dodaliśmy interfejs Device Availability API,który łączy sygnały dotyczące stanu urządzenia i łączności w standardowe wartości Androida Lifecycle.State. 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 interfejs API ProjectedTestRule w artefakcie testowania prognozowanego automatyzuje konfigurowanie prognozowanych środowisk testowych. Ułatwia to pisanie przejrzystych i niezawodnych testów jednostkowych 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 do okularów wyświetlających, Jetpack Compose Glimmer, zawiera teraz Google Sans Flex, co poprawia czytelność na optycznych wyświetlaczach przezroczystych. Dodaliśmy też kilka interaktywnych komponentów:

  • Stosy: zaprojektowane z myślą o grupach zoptymalizowanych pod kątem touchpada, wyświetlające po jednym elemencie.
  • Etykiety tytułów: zapewniają kategoryzację i kontekst dla kart treści.
glimmer (1).gif

Tworzenie środowisk immersyjnych na gogle XR i przewodowe okulary XR

Jeśli chcesz tworzyć w pełni immersyjne rozwiązania na gogle XR i przewodowe okulary XR, mamy dla Ciebie kilka ważnych nowości.

Przejście do wersji beta i nowoczesna architektura

Środowisko wykonawcze XR, Jetpack SceneCore i funkcje 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 Jetpack XR API. Usunęliśmy starsze pakiety Guava i RxJava3 na rzecz nowoczesnej architektury opartej przede wszystkim na języku Kotlin.

Jetpack SceneCore: glTF i niestandardowe siatki

Rozszerzamy możliwości modeli 3D, dodając możliwość 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 pozycja, 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ż do SceneCore niestandardowe siatki. Siatki niestandardowe umożliwiają programowe tworzenie geometrii na bieżąco, co jest idealne do tworzenia niestandardowych modeli 3D. Ta funkcja zostanie wprowadzona w wersji eksperymentalnej, więc wypróbuj ją i daj nam znać, co o niej myślisz.

// 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

W Compose for XR mamy teraz natywną obsługę glTF bezpośrednio w SpatialGltfModel. Używaj tego komponentu razem z SpatiallGltfModelState, aby uzyskać 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 w Jetpacku XR: wersja przedpremierowa interfejsu Geospatial API dla przewodowych okularów XR

Udostępniamy też wczesną wersję interfejsu Geospatial API dla przewodowych okularów XR w ARCore dla Jetpack XR. Ta aktualizacja umożliwia precyzyjne zakotwiczanie treści cyfrowych powiązanych z lokalizacjami w prawdziwym świecie w ponad 87 krajach.

Łącząc system pozycjonowania wizualnego (VPS) ARCore z funkcjami rozumowania i audio interfejsu Gemini Live API, możesz tworzyć rozwiązania dopasowane kontekstowo, które rozpoznają zarówno lokalizację, jak i pozycję użytkownika. Wyobraź sobie, że tworzysz immersyjną wycieczkę pieszą z przewodnikiem AI, która w czasie rzeczywistym dostarcza opisów dźwiękowych pobliskich miejsc, płynnie łącząc informacje cyfrowe z otoczeniem.

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

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

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

Pełne przewodniki techniczne, dokumentację API i instrukcje konfigurowania nowego emulatora znajdziesz na oficjalnej stronie dla deweloperów Androida. Zainspiruj się naszymi przykładami i eksperymentami. Zobacz, jak wykorzystaliśmy te interfejsy API do tworzenia wciągających 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 Android XR Engine Hub, aby umożliwić Ci uruchamianie aplikacji bezpośrednio z wybranego silnika.

Zgłoś się do Programu dla deweloperów Androida XR

Nie przegap okazji, aby tworzyć aplikacje na najnowsze urządzenia z Androidem XR. Zgłoś się już dziś, aby uzyskać dostęp do sprzętu przedpremierowego, w tym prototypu okularów audio i wyświetlacza oraz Project Aura od XREAL.

Więcej informacji i zgłoszenie

Nie możemy się doczekać, aż zobaczymy niesamowite aplikacje XR, które stworzysz. Jeszcze w tym roku wprowadzimy na rynek więcej urządzeń z Androidem XR.

Zapoznaj się z tym ogłoszeniem i wszystkimi aktualizacjami z Google I/O 2026 na stronie io.google.

Autor:

Czytaj dalej