Aktualizacje pakietu SDK Android XR: przedstawiamy wersję przedpremierową 4 dla programistów
Czas czytania: 5 minut
Z przyjemnością udostępniamy dziś 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 urządzeń. Okulary z AI to teraz okulary audio, a okulary z AI z wyświetlaczem to teraz okulary z wyświetlaczem. Zmiany te pojawią się w naszej dokumentacji już dziś.
Ta wersja zawiera wiele aktualizacji, które pomogą Ci tworzyć niesamowite aplikacje na urządzenia z XR, umożliwiać bardziej wciągające wrażenia na goglach XR i upraszczać tworzenie aplikacji rozszerzonej rzeczywistości na okularach audio i okularach 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 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 zawiera nowe interfejsy API, które pomagają tworzyć i testować aplikacje.
Jetpack Projected: interfejsy API Device Availability i ProjectedTestRule
Biblioteka Jetpack Projected pomaga przenieść 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 dostosowywać 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 z wyświetlaczem, 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 dla grup zoptymalizowanych pod kątem touchpada, wyświetlające po 1 elemencie.
- Etykiety tytułów: zapewniają kategoryzację i kontekst kart treści.
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 oczu 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ż niestandardowe siatki w SceneCore. Siatki niestandardowe umożliwiają programowe tworzenie geometrii na bieżąco, co jest idealne do tworzenia niestandardowych modeli 3D. Ta funkcja zostanie wprowadzona jako eksperymentalna, 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 parametru razem z SpatiallGltfModelState, aby uzyskać dostęp do węzłów i animacji w modelu glTF lub używać 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 w Jetpacku XR: wersja przedpremierowa interfejsu Geospatial API dla przewodowych okularów XR
Udostępniamy też wczesną wersję przedpremierową 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 zapewnia w czasie rzeczywistym opisy dźwiękowe 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. Wkrótce udostępnimy wersję beta pakietu Jetpack XR SDK, 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ę interfejsu API i instrukcje konfigurowania nowego emulatora znajdziesz w oficjalnej witrynie dla deweloperów aplikacji na Androida. Zainspiruj się naszymi próbkami i eksperymentami. Zobacz, jak wykorzystaliśmy te interfejsy API do tworzenia wciągających układów przestrzennych, wczytywania modeli 3D, odkrywania dźwięku przestrzennego i nie tylko.
Sprawdź nowości dotyczące silników gier
Dodaliśmy oficjalną obsługę Unreal Engine i Godot oraz wprowadziliśmy 2 nowe narzędzia, które przyspieszą tworzenie aplikacji na Androida XR za pomocą Unity i Android XR Interaction Framework. Na podstawie Waszych opinii wprowadzamy Android XR Engine Hub, który umożliwi Ci uruchamianie aplikacji bezpośrednio z wybranego silnika.
Zgłoś się do Programu Catalyst 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 do prototypu okularów audio i okularów z wyświetlaczem oraz do Project Aura od XREAL.
Więcej informacji i możliwość zgłoszenia się
Z niecierpliwością czekamy na niesamowite aplikacje XR, które stworzysz, gdy jeszcze w tym roku wprowadzimy na rynek więcej urządzeń z Androidem XR.
Zapoznaj się z tym ogłoszeniem i wszystkimi aktualizacjami z konferencji Google I/O 2026 na stronie io.google.
-
Wiadomości o usługachOd wprowadzenia pakietu SDK Android XR deweloperzy przekształcają swoje pomysły w innowacyjne, immersyjne doświadczenia na goglach i przewodowych okularach XR.
Amy Zeppenfeld, Greg Underwood, Yasmine Evjen • Czas czytania: 2 minuty -
Wiadomości o usługachOd nakładek rozszerzonej rzeczywistości po w pełni immersyjne środowiska – ekosystem Androida XR szybko się rozwija, a Samsung Galaxy XR jest już dostępny.
Stevan Silva, Vinny DaSilva • Czas czytania: 2 minuty -
Wiadomości o usługachZ przyjemnością informujemy, że na platformie Android XR pojawiło się oficjalne wsparcie dla silników Unreal Engine i Godot. Wprowadzamy też nowe narzędzia, które zwiększą Twoją produktywność i umożliwią korzystanie z nowych funkcji XR: Android XR Engine Hub i Android XR Interaction Framework.
Luke Hopkins, Ryan Bartley • Czas czytania: 4 min
Otrzymuj co tydzień najnowsze informacje o tworzeniu aplikacji na Androida na swoją skrzynkę odbiorczą.