Berita Produk

Update pada Android XR SDK: Memperkenalkan Pratinjau Developer 4

Waktu baca: 5 menit

Hari ini, dengan senang hati kami meluncurkan Pratinjau Developer 4 Android XR SDK, yang melanjutkan fokus kami untuk menyatukan pengembangan lintas perangkat untuk headset, kacamata XR berkabel, dan kacamata pintar. Untuk menjaga agar 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, dengan perubahan ini muncul dalam dokumentasi kami mulai hari ini. 

Rilis ini dilengkapi dengan berbagai 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 dipindahkan secara resmi ke Beta.

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

Membangun Pengalaman Augmented untuk Kacamata Audio dan Layar

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

Jetpack Projected: Device Availability dan ProjectedTestRule API

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

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 projected-testing 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 tampilan, Jetpack Compose Glimmer, kini menyertakan Google Sans Flex untuk meningkatkan keterbacaan pada layar optik tembus pandang. Kami juga telah menambahkan beberapa komponen interaktif:

  • Tumpukan: Didesain untuk grup yang dioptimalkan untuk touchpad, menampilkan satu item dalam satu waktu.
  • Chip Judul: Menyediakan kategorisasi dan konteks untuk kartu konten.
glimmer (1).gif

Membangun Pengalaman Imersif untuk Headset XR dan Kacamata XR Berkabel

Jika Anda ingin membuat pengalaman yang sepenuhnya imersif untuk Headset XR dan Kacamata XR berkabel, kami memiliki beberapa info terbaru penting.

Beta Transition & Modern Architecture

XR Runtime, Jetpack SceneCore, dan fitur persepsi ARCore untuk Jetpack XR (Peta KedalamanPelacakan Mata/Tangan, Pengujian Hit, dan Anchor Spasial) akan segera dipindahkan ke Beta, jadi kami telah menyederhanakan API Jetpack XR. 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 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 fitur 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 untuk XR: Dukungan glTF Native

Sekarang kami memiliki dukungan glTF native langsung di Compose untuk 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 Berkabel

Kami juga menyediakan pratinjau awal Geospatial API untuk XR Glasses berkabel di ARCore untuk Jetpack XR. Pembaruan ini memungkinkan penambatan konten digital presisi tinggi yang terkait dengan lokasi dunia nyata di lebih dari 87 negara.

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

Mulai Membangun Masa Depan Sekarang

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

Baca dokumentasi, jelajahi sampel, dan lihat eksperimen XR

Buka situs resmi Android Developer untuk mendapatkan panduan teknis lengkap, referensi API, dan petunjuk tentang cara menyiapkan emulator baru. Dapatkan inspirasi dari sampel dan eksperimen kami. Lihat cara kami menggunakan API ini untuk membuat 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 Hub Engine XR Android agar Anda dapat menjalankan pengalaman langsung dari mesin pilihan Anda,

Mendaftar ke Program Katalis Developer Android XR

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

Pelajari lebih lanjut dan daftar sekarang

Kami tidak sabar untuk melihat pengalaman XR luar biasa yang Anda buat saat kami bergerak menuju peluncuran lebih banyak perangkat Android XR pada tahun ini.

Pelajari pengumuman ini dan semua info terbaru Google I/O 2026 di io.google.

Ditulis oleh:

Lanjutkan membaca