חדשות על מוצרים

עדכונים ל-Android XR SDK: השקת גרסת תצוגה מקדימה למפתחים 4

משך הקריאה: 5 דקות

אנחנו שמחים להשיק היום את גרסת תצוגה מקדימה למפתחים 4 של Android XR SDK, וממשיכים להתמקד באיחוד הפיתוח בין מכשירים לאוזניות, למשקפי XR חוטיים ולמשקפיים חכמים. כדי שהפלטפורמה שלנו תהיה אינטואיטיבית, אנחנו משתמשים בשמות תיאוריים יותר לפורמטים שלנו. למשל, משקפי AI הם עכשיו משקפי אודיו, ומשקפי AI עם תצוגה הם עכשיו משקפיים עם תצוגה. השינויים האלה מופיעים במסמכים שלנו החל מהיום. 

הגרסה הזו כוללת הרבה עדכונים שיעזרו לכם ליצור חוויות מדהימות למכשירי XR, לאפשר חוויות סוחפות יותר במשקפי XR ולייעל את התהליך ליצירת חוויות מציאות רבודה במשקפי שמע ומשקפיים עם תצוגה. בנוסף, הספריות המרכזיות שלנו – כולל XR Runtime,‏ Jetpack SceneCore ו-ARCore for Jetpack XR – יעברו בקרוב באופן רשמי לגרסת בטא.

כדי לתת לכם גישה מוקדמת לחומרה ולמשאבים ליצירת חוויות סוחפות וחוויות מציאות רבודה במכשירים עתידיים – כמו משקפיים עם תצוגה ומשקפיים עם אודיו, ופרויקט Aura של XREAL – אנחנו מכריזים על Android XR Developer Catalyst Program. אתם מוזמנים לקבל עוד מידע ולהגיש בקשה עוד היום. 

יצירת חוויות מציאות רבודה למשקפי אודיו ולמשקפיים עם תצוגה

בגרסת תצוגה מקדימה למפתחים 4, שמתחילה עם הספריות שלנו לחוויות מורחבות, יש ממשקי API חדשים שעוזרים לכם ליצור ולבדוק את האפליקציות.

‫Jetpack Projected: ממשקי ה-API של Device Availability ו-ProjectedTestRule

ספריית Jetpack Projected עוזרת לגשר בין חוויות האפליקציה בטלפון לבין שדה הראייה של המשתמש. הוספנו את Device Availability API,שמרכז את מצב השימוש ואת אותות הקישוריות לערכים סטנדרטיים של Android Lifecycle.State. כך תוכלו לשנות את ההתנהגות של האפליקציות בהתאם לכך שהמכשיר נמצא על היד.

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

כדי לפשט את הבדיקות, ה-API החדש ProjectedTestRule בארטיפקט של הבדיקות הצפויות מבצע אוטומציה של הגדרת סביבות בדיקה צפויות. כך תוכלו לכתוב בדיקות יחידה (unit testing) נקיות ומהימנות בלי קוד 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 ורכיבים חדשים

ספריית ממשק המשתמש שלנו למשקפיים עם תצוגה, Jetpack Compose Glimmer, כוללת עכשיו את Google Sans Flex לשיפור הקריאות בתצוגות אופטיות שקופות. הוספנו גם כמה רכיבים אינטראקטיביים:

  • ערימות: פריסה שנועדה לקבוצות שעברו אופטימיזציה לשימוש במשטח מגע, שבה מוצג פריט אחד בכל פעם.
  • צ'יפים של כותרות: מספקים סיווג והקשר לכרטיסי תוכן.
glimmer (1).gif

יצירת חוויות עשירות למשקפי XR ולמשקפי XR עם חיבור קווי

אם אתם רוצים ליצור חוויות סוחפות לחלוטין למשקפי XR ולמשקפי XR עם כבל, יש לנו כמה עדכונים חשובים.

מעבר מגרסת בטא לארכיטקטורה מודרנית

בקרוב נעביר לגרסת בטא את XR Runtime,‏ Jetpack SceneCore ואת התכונות של ARCore לזיהוי תנועות ב-Jetpack XR (‏Depth Maps,‏ Eye/Hand Tracking,‏ Hit Testing ו-Spatial Anchors). לכן ייעלנו את ממשקי Jetpack XR API. הסרנו חבילות Guava ו-RxJava3 מדור קודם לטובת ארכיטקטורה מודרנית שמתבססת על Kotlin.

‫Jetpack SceneCore: glTF ורשתות בהתאמה אישית

אנחנו מרחיבים את היכולות של מודלים תלת-ממדיים על ידי הוספת האפשרות לכוונן מודלים תלת-ממדיים ולגשת לצמתים ספציפיים באמצעות מודל תלת-ממדי. באמצעות GltfModelNode, אפשר לשנות מאפיינים כמו תנוחה, חומרים ומרקמים, ואפילו להפעיל אנימציות לצמתים ספציפיים.

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

אנחנו גם מוסיפים רשתות בהתאמה אישית ל-SceneCore. רשתות בהתאמה אישית מאפשרות ליצור גיאומטריה באופן דינמי באמצעות תכנות, וזה אידיאלי ליצירת מודלים תלת-ממדיים בהתאמה אישית. התכונה הזו תושק כניסיונית, אז כדאי לנסות אותה ולספר לנו מה דעתך.

// 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: תמיכה מקורית ב-glTF

יש לנו עכשיו תמיכה מותאמת ב-glTF ישירות ב-Compose for XR עם  SpatialGltfModel. אפשר להשתמש ב-API הזה יחד עם SpatiallGltfModelState כדי לגשת אל nodes ו-animations במודל glTF, או כדי להוסיף טקסטורות וחומרים למודלים תלת-ממדיים.

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 for Jetpack XR: תצוגה מקדימה של Geospatial API למשקפי XR עם חיבור קווי

אנחנו מספקים גם גרסת טרום-השקה מוקדמת של Geospatial API למשקפי XR עם חיבור קווי ב-ARCore for Jetpack XR. העדכון הזה מאפשר הצמדה מדויקת של תוכן דיגיטלי שקשור למיקומים בעולם האמיתי ביותר מ-87 מדינות.

בעזרת שילוב של מערכת מיקום חזותי (VPS) של ARCore עם יכולות ההסקה והשמע של Gemini Live API, אתם יכולים ליצור חוויות מודעות-הקשר שמבינות גם את המיקום וגם את הפוזיציה של המשתמש. תארו לעצמכם שאתם יוצרים סיור הליכה מרהיב עם הנחיות מ-AI, שכולל תיאורי אודיו בזמן אמת של מקומות בקרבת מקום, ומשלב בצורה חלקה בין מידע דיגיטלי לסביבה הפיזית.

מתחילים לבנות את העתיד כבר היום

זה זמן מצוין לפתח ל-Android XR. עם Jetpack XR SDK שעובר בקרוב לגרסת בטא, ועם סט חזק של כלים חדשים בהישג יד, כדאי לעיין בכל אחד מהתחומים הבאים כדי להכין את החוויות באפליקציה ל-XR.  

קוראים את התיעוד, בודקים את הדוגמאות ומתנסים בניסויים ב-XR

באתר הרשמי למפתחים של Android אפשר למצוא מדריכים טכניים מלאים, הפניות ל-API והוראות להגדרת האמולטור החדש. דוגמאות וניסויים שיעוררו בכם השראה. כאן אפשר לראות איך השתמשנו בממשקי ה-API האלה כדי ליצור פריסות מרחביות סוחפות, לטעון מודלים תלת-ממדיים, ליהנות מאודיו מרחבי ועוד.

מה חדש במנועי משחקים

הוספנו תמיכה רשמית ב-Unreal Engine וב-Godot, והשקנו שני כלים חדשים להאצת הפיתוח ל-Android XR באמצעות Unity ו-Android XR Interaction Framework. בנוסף, על סמך המשוב שקיבלנו, אנחנו משיקים את Android XR Engine Hub כדי לאפשר לכם להפעיל את החוויות שלכם ישירות מהמנוע המועדף עליכם.

הגשת בקשה להצטרפות לתוכנית Android XR Developer Catalyst

אל תפספסו את ההזדמנות לפתח עבור חומרת Android XR העדכנית ביותר. הגישו בקשה עוד היום כדי לקבל גישה לציוד טרום-השקה, כולל אב טיפוס של משקפיים עם אודיו ותצוגה ופרויקט Aura של XREAL.

מידע נוסף והגשת בקשה

אנחנו מצפים לראות את חוויות ה-XR המדהימות שתבנו ככל שנתקדם לקראת השקת מכשירי Android XR נוספים בהמשך השנה!

אפשר לעיין בהודעה הזו ובכל העדכונים מ-Google I/O 2026 בכתובת io.google.

נכתב על ידי:

להמשך הקריאה