זמן ריצה ל-XR

אפשר להתחיל סשן מותאם אישית של AR או תלת-ממד עם זמן הריצה המקורי שלנו.
העדכון האחרון גרסה יציבה גרסה מועמדת להפצה גרסת בטא גרסת אלפא
‫25 במרץ 2026 - - - ‎1.0.0-alpha12

הצהרה על יחסי תלות

כדי להוסיף תלות בזמן הריצה של XR, צריך להוסיף את מאגר Google Maven לפרויקט. מידע נוסף זמין במאמר Google's Maven repository

אתם יכולים להוסיף את יחסי התלות של הארטיפקטים שאתם צריכים בקובץ build.gradle של האפליקציה או המודול:

Groovy

dependencies {
    implementation "androidx.xr.runtime:runtime:1.0.0-alpha12"

    // Optional dependencies for asynchronous conversions
    implementation "androidx.xr.runtime:runtime-guava:1.0.0-alpha12"
    implementation "androidx.xr.runtime:runtime-rxjava3:1.0.0-alpha12"

    // Use in environments that do not support OpenXR
    testImplementation "androidx.xr.runtime:runtime-testing:1.0.0-alpha12"
}

Kotlin

dependencies {
    implementation("androidx.xr.runtime:runtime:1.0.0-alpha12")

    // Optional dependencies for asynchronous conversions
    implementation("androidx.xr.runtime:runtime-guava:1.0.0-alpha12")
    implementation("androidx.xr.runtime:runtime-rxjava3:1.0.0-alpha12")

    // Use in environments that do not support OpenXR
    testImplementation("androidx.xr.runtime:runtime-testing:1.0.0-alpha12")
}

מידע נוסף זמין במאמר הוספת יחסי תלות ב-build.

משוב

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

יצירת דיווח על בעיה חדשה

מידע נוסף זמין במאמרי העזרה בנושא Issue Tracker.

גירסה 1.0

גרסה ‎1.0.0-alpha12

‫25 במרץ 2026

androidx.xr.runtime:runtime-*:1.0.0-alpha12 מופץ. גרסה ‎1.0.0-alpha12 מכילה את השמירות האלה.

שינויים ב-API

  • השינוי של Config.augmentedObjectCategories מרשימה לקבוצה (I25a64,‏ b/487376359)
  • הסרנו את הסימון unscaledGravityAlignedActivitySpace מהתוכן Session.create. התג ActivitySpace תמיד לא מותאם לגודל ותמיד מיושר לפי כוח המשיכה. (If6f11, b/458173423)
  • נוסף Session.create overload כדי לאפשר העברה של הקשר Android לשינוי היקף המשאבים. (I7d3fe, ‏ b/415805990, ‏ b/477386334)
  • הוספת JvmOverloads אל FloatSize2d.to3d,‏ Matrix3.copy וMatrix4.copy (I69586,‏ b/481371562)
  • נוספה אפשרות להגדיר קטגוריות למעקב אחר AugmentedObject בהגדרות (I1f6e4, ‏ b/480220930)
  • נוסף מודול xr:runtime:runtime-interfaces. ‫(I52ac6, ‏ b/461561664)

גרסה ‎1.0.0-alpha11

‫25 בפברואר 2026

androidx.xr.runtime:runtime-*:1.0.0-alpha11 מופץ. גרסה ‎1.0.0-alpha11 מכילה את השמירות האלה.

שינויים ב-API

  • ממשק מוגבל ConfigMode לשימוש פנימי (Ibfb87)
  • הועבר androidx.xr.runtime.Config.GeospatialMode לרמת החבילה (Ibe682)
  • הועבר androidx.xr.runtime.Config.FaceTrackingMode לרמת החבילה (Iac501)
  • הועבר androidx.xr.runtime.Config.AnchorPersistenceMode לרמת החבילה (I0360f)
  • הועבר androidx.xr.runtime.Config.DepthEstimationMode לרמת החבילה (I7e3e9)
  • הועבר androidx.xr.runtime.Config.DeviceTrackingMode לרמת החבילה (I3aacd)
  • הועבר androidx.xr.runtime.Config.HandTrackingMode לרמת החבילה (I658f3)
  • הועבר androidx.xr.runtime.Config.PlaneTrackingMode לרמת החבילה (Ia251b)
  • הועבר androidx.xr.runtime.XrDevice.DisplayBlendMode לרמת החבילה (I6f333)
  • נוספה שיטת factory ליצירת XrDevice באמצעות Context, ‏ Session ו-CoroutineContext. (I139c5)
  • נוסף SpatialApiVersionHelper כדי לעזור בשאילתת גרסת זמן הריצה של Android XR שזמינה בפלטפורמה. (I7c53c)
  • נוסף מודול xr:runtime:runtime-openxr ‏ (Ib42ea)

גרסה ‎1.0.0-alpha10

‫28 בינואר 2026

androidx.xr.runtime:runtime-*:1.0.0-alpha10 מופץ. גרסה ‎1.0.0-alpha10 מכילה את השמירות האלה.

שינויים ב-API

  • ConfigMode.HeadTrackingMode מוחלף ב-ConfigMode.DeviceTrackingMode. (le273e, b/467150206)
  • הוסרו השיטות toNormalized,‏ times(float) ו-div(float) של Quaternion. השיטות האלה מיותרות, כי כל הקווטרניונים מנורמלים בזמן הבנייה, והמחלקה היא בלתי משתנה. ‫(l558fc, ‏ b/460210457)

תיקוני באגים

  • הוספנו תיעוד ל-Session.create שמדגים איך להימנע מיצירת סשן ב-thread הראשי של האפליקציה. (le5554, b/463687170)
  • נמנעה מאפליקציות יצירה של BoundingBox עם ערך NaN. (l58c14, ‏ b/464025895)

גרסה ‎1.0.0-alpha09

‫3 בדצמבר 2025

androidx.xr.runtime:runtime-*:1.0.0-alpha09 מופץ. גרסה ‎1.0.0-alpha09 מכילה את השמירות האלה.

גרסה ‎1.0.0-alpha08

‫19 בנובמבר 2025

androidx.xr.runtime:runtime-*:1.0.0-alpha08 מופץ. גרסה ‎1.0.0-alpha08 מכילה את השמירות האלה.

תכונות חדשות

  • הוספנו את XrDevice כדי לספק מידע על היכולות של המכשיר. (Ic9d1f)
  • הוספנו ConfigMode.isSupported API חדש לשליחת שאילתות לגבי יכולות של סשנים. (Iff7af)
  • נוסף XrDisplay.BlendMode API. (I484e4)

שינויים ב-API

  • השם של [XrDevice.getPreferredBlendMode] שונה ל-[XrDevice.getPreferredDisplayBlendMode]. (I7e48f)

גרסה ‎1.0.0-alpha07

‫22 באוקטובר 2025

androidx.xr.runtime:runtime-*:1.0.0-alpha07 מופץ. גרסה ‎1.0.0-alpha07 מכילה את השמירות האלה.

שינויים ב-API

  • מסירים את SessionConfigureConfigureNotSupported ומחליפים אותו ב-UnsupportedOperationException. (I7680f)

גרסה ‎1.0.0-alpha06

‫24 בספטמבר 2025

androidx.xr.runtime:runtime-*:1.0.0-alpha06 מופץ. גרסה ‎1.0.0-alpha06 מכילה את השמירות האלה.

שינויים ב-API

  • הפריט HandJointType הועבר אל xr:arcore:arcore מ-xr:runtime:runtime. (Iadb9c, ‏ b/409058039)
  • שינוי אופרטור הכפל של componentWiseMultiplication עבור Vector2, Vector3, Vector4 כדי לשנות את קנה המידה והסרת סמל האופרטור כדי לשמור על עקביות עם ספריות מתמטיות אחרות. בנוסף, אנחנו מסירים את componentWiseDivision מהמחלקות Vector במקום להשתמש ב-Vector.scale(otherVector.inverse()). (I8e1f6, ‏ b/399146447)
  • הוספת [unscaled] כדי להחזיר מטריצה עם קנה מידה של אחד. ‫(I6381d, ‏ b/434928658)
  • האפשרות :xr:runtime:runtime-guava תוסר כי היא הוחלפה בSuspendtoFutureAdapter.Coroutines.kt (I0cd3c, b/406597902)

גרסה ‎1.0.0-alpha05

‫30 ביולי 2025

androidx.xr.runtime:runtime-*:1.0.0-alpha05 מופץ. גרסה ‎1.0.0-alpha05 מכילה את השמירות האלה.

תכונות חדשות

  • הוספה של HandJointType ושל TrackingState. ‫(I55880, ‏ b/334645808)
  • הופכים את ההטמעה של Config לציבורית. (I95860, b/334645808)
  • הוספנו את הסוגים החדשים SessionCreateResult ו-SessionConfigureResult. (Icb8cb, ‏ b/334645808)
  • מוסיפים מחלקה חדשה BoundingBox שמייצגת תיבת תוחמת שמוגדרת על ידי נקודות הפינה המינימליות והמקסימליות שלה במרחב תלת-ממדי. (Ic68c5, ‏ b/423073468)

שינויים ב-API

  • השם של androidx.xr.scenecore.PixelDimensions שונה והוא הועבר אל androidx.xr.runtime.math.IntSize2d. השם של androidx.xr.scenecore.Dimensions שונה והוא הועבר אל androidx.xr.runtime.math.FloatSize3d. השם של androidx.xr.scenecore.PlaneType שונה ל-androidx.xr.scenecore.PlaneOrientation. השם של androidx.xr.scenecore.PlaneSemantic שונה ל-androidx.xr.scenecore.PlaneSemanticType. ‫(Ifd405, ‏ b/416456228)
  • הוסרה הכיתה androidx.xr.runtime.FoV. במקום זאת, אתם צריכים להשתמש ב-androidx.xr.runtime.FieldOfView. (I9ae27)
  • נוספה עוד פונקציית עומס יתר ל-Session.create שיכולה לספק LifecycleOwner לסשן לצירוף. שימו לב: עדיין צריך לספק פעילות כדי לקבוע בעלות על משאב, והתג LifecycleOwner צריך להיות בתחום הפעילות. (I1690b)
  • השם של FakeRuntimeAnchor.anchorsCreated שונה ל-anchorsCreatedCount (I96df9, b/424441218)
  • השמות של ערכי ההגדרה *Mode שונו כדי לשקף את ההתנהגות שלהם. (I6d247, ‏ b/414648065)
  • כדי להשתמש בפרויקטים שפורסמו עם Kotlin 2.0, צריך KGP 2.0.0 או גרסה חדשה יותר (Idb6b5,‏ b/344563182)
  • ממשקי API שקשורים למחרוזות במניפסט הועברו מ-:xr:runtime:runtime אל :xr:runtime:runtime-manifest. שם החבילה השתנה מ-androidx.xr.runtime ל-androidx.xr.runtime.manifest. (I610ad, ‏ b/418800249)
  • הוסרו מה-API surface‏ Session.resume(), Session.pause() ו-Session.destroy(). הסשן כבר לא LifecycleOwner. מחזור החיים של הסשן יצורף עכשיו למחזור החיים של הפעילות שהועברה ב-Session.create(). (I28a03)
  • הספרייה הזו משתמשת עכשיו באנוטציות של JSpecify לגבי ערכי null, שהן אנוטציות של שימוש בטיפוסים. מפתחי Kotlin צריכים להשתמש בארגומנט הקומפיילר הבא כדי לאכוף שימוש נכון: -Xjspecify-annotations=strict (זוהי ברירת המחדל החל מגרסה 2.1.0 של קומפיילר Kotlin) (Ia8420, ‏ b/326456246)
  • הארטיפקט הראשי של Runtime ‏ (:xr:runtime:runtime) יכיל רק ממשקי API אסינכרוניים בסגנון Kolin. מפתחים ב-Java יכולים להסתמך על :xr:runtime:runtime-guava כדי לגשת לממשקי API תואמים. ‫(I05d4a, ‏ b/426639315)
  • הארטיפקט הראשי של זמן הריצה (:xr:runtime:runtime) יכיל רק ממשקי API אסינכרוניים בסגנון Kotlin. מפתחי Java יכולים להסתמך על ספריית xr:runtime:runtime-rxjava3 כדי לגשת לממשקי API תואמים. (I64122, b/426639775)
  • העברת Coroutines אל :xr:runtime:runtime-guava ו-Flows אל :xr:runtime:runtime-rxjava3. (I60ae9)
  • Session.create ו-Session.configure מקפיצים עכשיו SecurityException כשלא ניתנו הרשאות מספיקות, במקום להחזיר SessionCreatePermissionsNotGranted או SessionConfigurePermissionsNotGranted. (I7c488, b/430651879)

גרסה ‎1.0.0-alpha04

‫7 במאי 2025

האפליקציות androidx.xr.runtime:runtime:1.0.0-alpha04, androidx.xr.runtime:runtime-openxr:1.0.0-alpha04 וגם androidx.xr.runtime:runtime-testing:1.0.0-alpha04 מושקות. גרסה ‎1.0.0-alpha04 מכילה את השמירות האלה.

תכונות חדשות

  • המחלקות Session מיישמות עכשיו את androidx.lifecycle.LifecycleOwner כדי לשפר את יכולת הפעולה ההדדית עם פרדיגמות מחזור החיים הקיימות של Android.
  • מחרוזות המניפסט ל-Android XR מפורטות ומתועדות כאן.
  • נוספו שיטות הרחבה של קריאה חוזרת (callback) לנראות מרחבית כדי לעקוב אחרי תנועת התוכן בסצנה בתוך שדה הראייה של המשתמש או מחוצה לו.
  • הוספנו גרסת stub של JxrPlatformAdapter (ושל כל הכיתות שקשורות אליה).
  • הסשן ישמש גם ב-SceneCore וגם ב-Runtime במקום הסשן ב-SceneCore.
  • ActivityPose.hitTest נוסף, ומאפשר hitTest נגד תוכן וירטואלי.
  • מעכשיו יש תמיכה בציון של כמה הטמעות של סביבת זמן ריצה בזמן ההידור. רק אחד מהם ייטען בזמן ההרצה, בהתאם לסט התכונות של המכשיר הנוכחי.
  • נוסף סוג רכיב חדש SpatialPointerComponent, שמאפשר ללקוחות לציין את הסמל שמוצג עבור מצביע העכבר, או להשבית את הסמל. נכון לעכשיו, אפשר לצרף את הרכיב הזה רק למופעים של PanelEntity.

שינויים ב-API

  • הופכים את ההטמעה של Config לציבורית. (I95860)
  • הוספה של HandJointType ושל TrackingState. (I55880)
  • כדי להשתמש בפרויקטים שפורסמו עם Kotlin 2.0, צריך KGP 2.0.0 או גרסה חדשה יותר (Idb6b5)
  • הערך של Hand.isActive (boolean) השתנה ל-Hand.trackingState. ההטמעה של OpenXR שונתה בהתאם.
  • הדרישה להרשאה של android.permission.SCENE_UNDERSTANDING ב-Session.configure שונתה ל-android.permission.SCENE_UNDERSTANDING_COARSE.
  • הקוד LifecycleManager.configure מיושם ועכשיו הוא מעביר אובייקט Config שמכיל מאפיין לכל תכונה שניתנת להגדרה בזמן הריצה.
  • אפשר עכשיו להתקשר אל Session.configure עם Config כדי להגדיר את התכונות הזמינות של זמן הריצה.
  • ב-Session.create יש עכשיו תמיכה בהעברת CoroutineContext במקום CoroutineDispatcher.
  • Session.create תומך בטעינה של ARCore עבור Jetpack XR ו/או SceneCore. צריך לספק לפחות אחד (יש גרסאות בדיקה).
  • FakePerceptionManager מחזירה AnchorInvalidUuidException כשמעבירים UUID לא תקין ל-Anchor.load ול-Anchor.unpersist.
  • CoreState כבר לא מוגדר כסוג נתונים.

תיקוני באגים

  • תוקנו הגדרות Proguard של זמן הריצה.

גרסה ‎1.0.0-alpha03

‫26 בפברואר 2025

הגרסאות androidx.xr.runtime:runtime:1.0.0-alpha03, androidx.xr.runtime:runtime-openxr:1.0.0-alpha03 ו-androidx.xr.runtime:runtime-testing:1.0.0-alpha03 הושקו ללא שינויים משמעותיים מאז גרסת האלפא האחרונה. גרסה ‎1.0.0-alpha03 מכילה את השמירות האלה.

גרסה ‎1.0.0-alpha02

‫12 בפברואר 2025

האפליקציות androidx.xr.runtime:runtime:1.0.0-alpha02, androidx.xr.runtime:runtime-openxr:1.0.0-alpha02 וגם androidx.xr.runtime:runtime-testing:1.0.0-alpha02 מושקות. גרסה ‎1.0.0-alpha02 מכילה את השמירות האלה.

שינויים שעלולים לגרום לכשל ושינויים התנהגותיים

  • פונקציות של זמן ריצה OpenXR שמחזירות Anchor, מקפיצות עכשיו הודעת שגיאה AnchorResourcesExhaustedException אם הן נתקלות בקוד שגיאה שמודיע שהגעתם למגבלת המשאבים של OpenXR.
  • נדרשת עכשיו הרשאה android.permission.HAND_TRACKING לשימוש ב-Session.create וב-Session.resume.

תכונות חדשות

  • הוספנו תמיכה במעקב ידיים.

תיקוני באגים

  • יצירת עוגנים יציבה יותר כשמריצים את האפליקציה באמולטור

גרסה 1.0.0-alpha01

‫12 בדצמבר 2024

androidx.xr.runtime:runtime-* 1.0.0-alpha01 מופץ.

תכונות של הגרסה הראשונית

השקה ראשונית של Jetpack XR Runtime. הספרייה הזו מכילה חלקים בסיסיים של פונקציונליות עבור חבילת הספריות Jetpack XR. הפעולות האלה כוללות גילוי יכולות, ניהול מחזור חיים, הגדרה ועוד. ספריית זמן הריצה מספקת וריאציות שונות (למשל runtime-openxr או runtime-testing) בהתאם לפלטפורמת ההפעלה. בנוסף, הספרייה הזו מציעה הפשטות מתמטיות בסיסיות כמו Vector3 ו-Matrix4, שמשמשות בכל ממשקי Jetpack XR API.

  • Session: מספק לכם אמצעי בקרה מפורטים על מערכת ה-XR, כולל האפשרות להחליט מתי העיבוד מתבצע ומתי לא, וההגדרה הכוללת. זה גם ה-handle שבו תשתמשו בכל שאר ממשקי ה-API כדי להפעיל את היכולות הבסיסיות של המערכת.

  • Pose: מיקום במערכת קואורדינטות שרירותית שיש לו מיקום ואוריינטציה שמשויכים אליו. תשתמשו במחלקה הזו כדי להעביר את המיקום של אובייקטים ל-ARCore for Jetpack XR ול-Jetpack SceneCore.

בעיות מוכרות

  • התג configure לא מבצע כרגע פעולה כלשהי. בגרסאות עתידיות נוסיף הגדרות חדשות שתוכלו להשתמש בהן כדי לשלוט בהתנהגות של Session.