Berita Produk

Update pada Android XR SDK: Memperkenalkan Pratinjau Developer 4

Waktu baca: 5 menit

Hari ini, kami dengan senang hati meluncurkan Pratinjau Developer 4 Android XR SDK, yang melanjutkan fokus kami untuk menyatukan pengembangan lintas perangkat untuk headset, kacamata XR kabel, dan kacamata pintar. Untuk menjaga platform kami tetap intuitif, kami mengadopsi penamaan yang lebih deskriptif untuk faktor bentuk kami, dengan kacamata AI kini menjadi kacamata audio dan kacamata AI layar kini menjadi kacamata layar. Perubahan ini akan muncul dalam dokumentasi kami mulai hari ini.

Rilis ini dilengkapi dengan update yang membantu Anda membangun pengalaman luar biasa untuk perangkat XR, memungkinkan pengalaman imersif yang lebih mendalam di headset XR, dan menyederhanakan jalur untuk membuat pengalaman augmented di kacamata audio dan layar. Selain itu, library inti kami—termasuk XR Runtime, Jetpack SceneCore, dan ARCore untuk Jetpack XR—akan segera resmi beralih ke Beta.

Untuk memberi Anda akses awal ke  hardware dan resource  untuk membangun pengalaman imersif dan augmented di perangkat mendatang—seperti kacamata layar dan audio serta Project Aura XREAL — kami mengumumkan Program Katalis Developer Android XR. Pelajari lebih lanjut dan mulai aplikasi Anda hari ini. 

Membangun Pengalaman Augmented untuk Kacamata Audio dan Layar

Dimulai dengan library kami untuk pengalaman augmented, Pratinjau Developer 4 memperkenalkan API baru yang membantu Anda membuat dan menguji aplikasi.

Jetpack Projected: API Ketersediaan Perangkat dan ProjectedTestRule

Library Jetpack Projected membantu menjembatani pengalaman aplikasi dari ponsel ke bidang pandang pengguna. Kami telah menambahkan Device Availability API, yang menggabungkan status pemakaian dan sinyal konektivitas ke dalam nilai Lifecycle.State Android standar. Hal ini memungkinkan Anda menyesuaikan perilaku aplikasi berdasarkan apakah perangkat dipakai atau tidak.

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

Untuk menyederhanakan pengujian, API ProjectedTestRule baru dalam artefak pengujian yang diproyeksikan mengotomatiskan penyiapan lingkungan pengujian yang diproyeksikan. Hal ini membantu Anda menulis pengujian unit yang bersih dan andal tanpa kode boilerplate.

// 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 dan komponen baru

Library UI kami untuk kacamata layar, Jetpack Compose Glimmer, kini menyertakan Google Sans Flex untuk meningkatkan keterbacaan pada layar tembus pandang optik. Kami juga telah menambahkan beberapa komponen interaktif:

  • Tumpukan: Dirancang untuk grup yang dioptimalkan untuk touchpad, yang menampilkan satu item dalam satu waktu.
  • _Chip Judul_: Memberikan kategorisasi dan konteks untuk kartu konten.
glimmer (1).gif

Membangun Pengalaman Imersif untuk Headset XR dan Kacamata XR Kabel

Jika Anda ingin membangun pengalaman yang sepenuhnya imersif untuk Headset XR dan Kacamata XR kabel, kami memiliki beberapa update besar.

Transisi Beta &Arsitektur Modern

XR Runtime, Jetpack SceneCore, dan fitur persepsi ARCore untuk Jetpack XR (Peta KedalamanPelacakan Mata/Tangan, Pengujian Hit, dan Anchor Spasial) akan segera beralih ke Beta, sehingga kami telah menyederhanakan Jetpack XR API. Kami telah menghapus paket Guava dan RxJava3 lama untuk mendukung arsitektur modern yang mengutamakan Kotlin.

Jetpack SceneCore: glTF dan Mesh Kustom

Kami memperluas kemampuan model 3D dengan menambahkan kemampuan untuk menyetel model 3D dan mengakses node tertentu dengan model 3D. Dengan menggunakan GltfModelNode, Anda dapat mengubah properti seperti pose, materi, dan tekstur, serta menjalankan animasi untuk node tertentu.

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

Kami juga menghadirkan Mesh Kustom ke SceneCore. Mesh kustom memungkinkan Anda membangun geometri dengan cepat secara terprogram, yang ideal untuk membuat model 3D kustom. Fitur ini akan diluncurkan sebagai eksperimental, jadi cobalah dan beri tahu kami pendapat Anda.

// 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: Dukungan glTF Native

Kami kini memiliki dukungan glTF native langsung di Compose for XR dengan SpatialGltfModel. Gunakan ini bersama dengan SpatiallGltfModelState untuk mengakses node dan animasi dalam model glTF, atau gunakan untuk menambahkan tekstur dan materi ke model 3D Anda.

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 untuk Jetpack XR: Pratinjau Geospatial API untuk Kacamata XR Kabel

Kami juga menyediakan pratinjau awal Geospatial API untuk Kacamata XR kabel di ARCore untuk Jetpack XR. Update ini memungkinkan penjangkaran konten digital presisi tinggi yang terkait dengan lokasi dunia nyata di lebih dari 87 negara.

Dengan menggabungkan Visual Positioning System (VPS) ARCore dengan kemampuan penalaran dan audio Gemini Live API, Anda dapat membuat pengalaman yang sadar konteks yang memahami lokasi dan posisi pengguna. Bayangkan membangun tur jalan kaki imersif yang dipandu AI yang memberikan deskripsi audio real-time tentang tempat terdekat, yang memadukan informasi digital dengan lingkungan fisik secara lancar.

Mulai Bangun Masa Depan Hari Ini

Sekarang adalah waktu yang tepat untuk mengembangkan Android XR. Dengan Jetpack XR SDK yang segera beralih ke Beta dan serangkaian alat baru yang canggih di ujung jari Anda, jelajahi setiap area berikut untuk menyiapkan pengalaman aplikasi Anda untuk XR.  

Baca dokumentasi, jelajahi contoh, dan lihat eksperimen XR

Buka situs Developer Android resmi untuk panduan teknis lengkap, referensi API, dan petunjuk tentang cara menyiapkan emulator baru. Dapatkan inspirasi dari contoh dan eksperimen kami. Lihat cara kami menggunakan API ini untuk membangun tata letak spasial imersif, memuat model 3D, menjelajahi audio spasial, dan banyak lagi.

Lihat fitur baru untuk mesin game

Kami telah menambahkan dukungan resmi untuk Unreal Engine dan Godot, dan kami telah meluncurkan dua alat baru untuk mempercepat pengembangan Android XR dengan Unity dan Android XR Interaction Framework. Selain itu, berdasarkan masukan Anda, kami memperkenalkan Android XR Engine Hub untuk memungkinkan Anda menjalankan pengalaman langsung dari mesin pilihan Anda,

Daftar ke Program Katalis Developer Android XR

Jangan lewatkan kesempatan untuk membangun hardware Android XR terbaru. Daftar hari ini untuk mendapatkan kesempatan mengakses hardware pra-rilis, termasuk prototipe kacamata audio dan layar kami serta Project Aura XREAL.

Pelajari lebih lanjut dan daftar hari ini

Kami berharap dapat melihat pengalaman XR luar biasa yang Anda bangun saat kami bersiap meluncurkan lebih banyak perangkat Android XR pada akhir tahun ini.

Jelajahi pengumuman ini dan semua update Google I/O 2026 di io.google.

Ditulis oleh:

Lanjutkan membaca