Jetpack SceneCore
| העדכון האחרון | גרסה יציבה | גרסה מועמדת להפצה | גרסת בטא | גרסת אלפא |
|---|---|---|---|---|
| 7 באוקטובר 2026 | - | 1.0.0-rc02 | - | - |
הצהרה על יחסי תלות
כדי להוסיף תלות ב-XR SceneCore, צריך להוסיף את מאגר Google Maven לפרויקט. מידע נוסף זמין במאמר בנושא מאגר ה-Maven של Google.
אתם יכולים להוסיף את יחסי התלות של הארטיפקטים שאתם צריכים בקובץ build.gradle של האפליקציה או המודול:
מגניב
dependencies { implementation "androidx.xr.scenecore:scenecore:1.0.0-rc02" // Use to write unit tests testImplementation "androidx.xr.scenecore:scenecore-testing:1.0.0-rc02" }
Kotlin
dependencies { implementation("androidx.xr.scenecore:scenecore:1.0.0-rc02") // Use to write unit tests testImplementation("androidx.xr.scenecore:scenecore-testing:1.0.0-rc02") }
מידע נוסף זמין במאמר הוספת יחסי תלות ב-build.
משוב
המשוב שלכם עוזר לנו לשפר את Jetpack. נשמח לדעת אם גיליתם בעיות חדשות או אם יש לכם רעיונות איך לשפר את הספרייה הזו. כדאי לעיין בבעיות הידועות בספרייה הזו לפני שמדווחים על בעיה. כדי להוסיף הצבעה בדיווח על בעיה קיימת, לוחצים על כפתור הכוכב.
מידע נוסף זמין במאמרי העזרה בנושא Issue Tracker.
גירסה 1.0
גרסה 1.0.0-rc02
7 באוקטובר 2026
androidx.xr.scenecore:scenecore-*:1.0.0-rc02 מופץ. גרסה 1.0.0-rc02 מכילה את השמירות האלה.
תיקוני באגים
- תוקן באג פוטנציאלי של דליפת זיכרון על ידי הסרת
perceptionRuntimeCacheב-SessionExtושינוי המבנה שלו כדי לאחזר אתPerceptionRuntimeישירות ממופעSession. (Ie35b1) - תוקנה דליפת הקשר פוטנציאלית באמצעות
applicationContextעבור נקודות אחיזה נייטיביות שלOpenXRכדי להבטיח שסביבת הריצה הנייטיבית לא תחזיק הפניות להקשרActivity. (Ie35b1) - תוקנו תנאי מירוץ ב-
XrInstanceManagerעל ידי הוספת נעילת סנכרון ואתחול מתאימה. (Ie35b1) - תוקן
ReferenceCleanerכדי לתמוך בביטול הרישום של פעולות ניקוי, והובטח שפעולות הניקוי שלEntityיופעלו באופן מפורש במהלךdispose(), כדי למנוע ביצוע כפול במהלך איסוף האשפה. (Ie35b1) - תוקנה דליפת זיכרון ב-
Sceneעל ידי הסרתsceneCacheב-SessionExtושינוי המבנה שלSceneכדי לאחזר את המופע ישירות מ-sessionConnectors. (Ie35b1)
גרסה 1.0.0-rc01
9 בספטמבר 2026
androidx.xr.scenecore:scenecore-*:1.0.0-rc01 מופץ. גרסה 1.0.0-rc01 מכילה את השמירות האלה.
שינויים ב-API
- נוספה ספרייה
xr:scenecore:scenecore-openxr. (Ic49f2) - הוסרו כמה ממשקי API שהוצאו משימוש לפני הגרסה היציבה 1.0.0.
תיקוני באגים
- תוקן באג של דליפת זיכרון שבו ההפניה לפעילות יכלה להישמר על ידי המערכת כשהפעילות נהרסת. (I6dcd7)
שינויים בהתנהגות
- הוסר פלט logcat מ-SceneCore. (I10c3c)
גרסה 1.0.0-beta02
12 באוגוסט 2026
androidx.xr.scenecore:scenecore-*:1.0.0-beta02 מופץ. גרסה 1.0.0-beta02 מכילה את השמירות האלה.
תיקוני באגים
-
toMoveEvent()יחזירnullאם ישות האם עברה איסוף אשפה. (Ia7a1b)
גרסה 1.0.0-beta01
15 ביולי 2026
androidx.xr.scenecore:scenecore-*:1.0.0-beta01 מופץ. גרסה 1.0.0-beta01 מכילה את השמירות האלה.
שינויים ב-API
- ממשקי ה-API
GltfAnimationו-SpatialGltfModelAnimationמסומנים כניסיוניים. חלק מהמאפיינים הפכו לשיטות getter. (I8d689, b/524771027) - הוסרה שיטת היצירה
MovableComponent.createTrackingMovableשגלגלית לכולם. (I00912, b/477169015) - הפונקציה Converted Session.create הומרה לפונקציית השהיה. (I5d27f)
-
ActivitySpaceו-AnchorSpaceמרחיבים עכשיו מחלקה משותפת שלSpaceEntityשמכילה התנהגות משותפת של ישויות שהמיקומים שלהן נשלטים על ידי המערכת (I506ec, b/513619219) - העדכון של
AnchorEntityנקראAnchorSpace(Ifa95e, b/513619219) - מספקת API ציבורי לבדיקה
SoundEffectPoolComponentTester. (I87df7, b/498104417) - הוספנו פרמטר אופציונלי
cornerRadiusלקונסטרוקטורSurfaceEntity.Shape.Quadוהגדרנו את המאפייןcornerRadiusכגלוי לכולם. מפתחים יכולים עכשיו לציין רדיוס פינות כשהם יוצרים צורת Quad כדי לעבד קנבסים שלSurfaceEntityעם פינות מעוגלות, ולשאול על הרדיוס של צורות Quad קיימות. (Ia7809, b/474681085) - API ציבורי לבדיקה
SpatialAudioTrackBuilderTester,SpatialAudioTrackTesterו-SceneCoreTestRule.getTesterעומס יתר. (I378c6, b/496333938) - הוספת שינויים מיוחדים של
toString()למספר סוגים של ARCore. הסוגים האלה נועדו לספק למפתחים מידע נוסף למטרות ניפוי באגים, ולא לשימוש באפליקציות שנמצאות בשלב הפרודקשן או באפליקציות שנשלחות.
גרסה 1.0.0-alpha16
17 ביוני 2026
androidx.xr.scenecore:scenecore-*:1.0.0-alpha16 מופץ. גרסה 1.0.0-alpha16 מכילה את השמירות האלה.
שינויים ב-API
- נוספו עומסים יתרים ל-
addVertexData, ל-setIndexDataול-addSubsetב-CustomMesh.BuilderFromMeshDataוב-CustomMesh.BuilderFromMeshBuffer. העומסים האלה מאפשרים למפתחים להעביר נתונים גולמיים ופרמטרים ישירות (לדוגמה,ByteBuffer,offset,size,topology,indexOffset,indexCount) בלי לעטוף אותם באובייקטים מתווכים כמוByteBufferRegionאוMeshSubset. (I84d5c) - השמות של
Scene.requestFullSpaceMode()ו-Scene.requestHomeSpaceMode()שונו ל-requestFullSpace()ו-requestHomeSpace(), בהתאמה. באופן דומה, עדכנו שיטות אחרות ומאמרי עזרה שמתייחסים ל'מצב מרחב הבית' ול'מצב מרחב מלא'. (I45751) - API ציבורי לבדיקה
PanelEntityTesterו-MainPanelEntityTester(I961e4) - הוספת נכס
pointSourceParamsאלSoundEffectPoolComponent(I4a750) - API ציבורי לבדיקה
MovableComponentTester(I0c972) - מספק API ציבורי לבדיקה
PointerCaptureComponentTester(Ic0d4f) - מספק API ציבורי לבדיקה
ActivityPanelEntityTester(I837c4) - מספק API ציבורי לבדיקה
ResizableComponentTester(I0a3a4) - מספק API ציבורי לבדיקה
BoundsComponentTester.(Iefd53) - API ציבורי לבדיקה
SpatialMediaPlayerTester(Ia3e09) - API ציבורי לבדיקה
SpatialEnvironmentTester(Icf60f) - API ציבורי לבדיקה
GltfModelTesterו-SceneCoreTestRule.getGltfModelTester. (I33fcb) - מספקת API ציבורי לבדיקה
InteractableComponentTester. (Ia7096) - מספקת API ציבורי לבדיקה
SurfaceEntityTester. (Ic0740) - API ציבורי לבדיקה
GltfModelEntityTester,TestGltfModelNodeו-TestGltfAnimation. (I72c4d) - API ציבורי לבדיקה
SceneTesterו-SceneCoreTestRule.sceneTester. (Ib4ec5) - API ציבורי לבדיקה
PerceptionSpaceTesterו-SceneCoreTestRule.perceptionSpaceTester. (Icf739) - מספקת API ציבורי לבדיקה
MeshEntityTester. (I63801) - מספק עומסי יתר של API ציבורי לבדיקה
ImageBasedLightingAssetTesterו-SceneCoreTestRule.getTester. (I57ec4) - API ציבורי לבדיקה
TextureTester(Ia865b) - מספק API ציבורי לבדיקה
PositionalAudioComponentTester(Icd96e) - מספק API ציבורי לבדיקה
SpatialSoundPoolTester(Ia3531) - מספק API ציבורי לבדיקה
SoundEffectPoolTester(If349a) - API ציבורי לבדיקה
ActivitySpaceTesterו-SceneCoreTestRule.activitySpaceTester. (I2d5c2) - מספק API ציבורי לבדיקה
SpatialWindowTester(I41837) - מספק API ציבורי לבדיקה
AnchorEntityTester(I68404) - מספק את ממשק ה-API הציבורי לבדיקה
SceneCoreTestRule. (Ic72d3) - נוספה מחלקה
PixelDensityוהיא נחשפת דרךScene#virtualPixelDensityכדי לספק יחס פיקסלים למטר שמבוסס על חומרה למיפוי מדויק של מימדים פיזיים ב-ActivitySpace. (I0e3ac) - הוספנו ממשקי API ציבוריים ליצירה ולעיבוד של רשתות בהתאמה אישית. (I7ad2f)
- ה-API של
VertexLayoutעודכן כך שישתמש ברשימה שלVertexBufferLayouts, כשכלVertexBufferLayoutמתאר את המאפיינים בתוך מאגר קודקודים יחיד. כך אפשר ליהנות מסידורי נתוני קודקוד גמישים יותר, כולל מאפיינים משולבים עם צעדים והיסטים בהתאמה אישית. (Ic426b) - הפונקציה מספקת
MovableComponent.createTrackingMovableכדי להמיר אובייקט שאפשר לעקוב אחריו ב-ARCore לתנוחה ביחס למרחב הפעילות. (I12249) - ערך ברירת המחדל של ההורה ב-
Entity.createעודכן ל-null. (Ic3145) -
Entityעודכן והפך למחלקה במקום לממשק, ועכשיו הוא מחלקת הבסיס לכל סוגי הישויות. כחלק מהשינוי הזה,BaseEntityהוסר. (I7fbc9) -
GltfModel, ExrImageו-ImageBasedLightingAssetכוללים עכשיו הטמעה שלAutoCloseableכדי לאפשר ניהול אידיומטי של משאבים באמצעות הבלוקuseשל Kotlin. (I1ac79) - הוספנו את המחלקה
ImageBasedLightingAssetכדי להחליף את המחלקהExrImageלהגדרת תאורה של סביבה מרחבית. הפונקציהExrImageהוצאה משימוש והוסרה מה-API הציבורי. העדכון שלSpatialEnvironmentPreferenceבוצע לשימוש ב-ImageBasedLightingAsset. (I6c92a) - שינינו את השם של הפרמטר
skyboxב-SpatialEnvironmentל-imageBasedLightingAssetכדי לשקף טוב יותר את המטרה שלו, והבהרנו שצריך לכלול בפרמטר הגיאומטריה טקסטורות של תיבת שמיים חזותית. (I24d4a) - יחידות מרחביות משתמשות עכשיו בצפיפות מכשיר יציבה לחישובים של פיקסלים למטר ברמות 1 ו-2 של Spatial API, כדי להבטיח גודל עקבי ללא קשר לשינויים בצפיפות התצוגה של המערכת. (I37051)
גרסה 1.0.0-alpha15
19 במאי 2026
androidx.xr.scenecore:scenecore-*:1.0.0-alpha15 מופץ. גרסה 1.0.0-alpha15 מכילה את השמירות האלה.
שינויים ב-API
- הסרנו את
Entity.dispose()כ-API ציבורי. במקום לקרוא ל-dispose()במופעי Entity, אפליקציות יכולות להגדיר מופעים כניתנים לניקוי על ידי הגדרתparentל-nullועל ידי ניקוי הפניות החזקות למופעים האלה. (I396c9) - השיטות של
SoundEffectPoolset/clearOnLoadCompleteListenerנמחקו. במקום זאת, אתם צריכים להשתמש ב-add/removeLoadCompleteListener. (Iae78d) - הערך של
set/clearSpatialVisibilityChangedListenerבסצנה הוחלף בערךadd/removeSpatialVisibilityChangedListener. (I67dff) - כל השיטות של SceneCore
add/removeOnFooListenerקיבלו שם חדשadd/removeFooListener, והוסר מהשםOn. (Ibe50b) - השיטות
AnchorEntity.setOnOriginChangedListenerו-AnchorEntity.setOnStateChangedListenerהוחלפו בשיטותadd/removeFooListener, כדי לתמוך בכמה מאזינים בו-זמנית. (I13749) - השם של
AnchorEntity.State.TIMEDOUTשונה ל-State.TIMED_OUT. (Id2b8d) - בוצע רפקטורינג של Component API כדי לשפר את הבטיחות וההרחבה.
Componentהיא עכשיו מחלקה מופשטת. השיטותonAttach()ו-onDetach()הן עכשיוprotectedכדי למנוע קריאות ישירות. במקומה צריך להשתמש במדיניותEntity.addComponent()ו-Entity.removeComponent()כדי לנהל את מחזורי החיים של הרכיבים. (Id04e8) - הקבועים
PlaneSemanticTypePlaneOrientationשל SceneCore הועברו מ-Ints לסוגים מותאמים אישית. הקבועיםANYשלהם יוסרו, ולכן הלקוחות צריכים לציין במפורש את כל הקבועים הרצויים, או להשתמש בקבועים החדשים של.ALLimmutable Set. שיטת היצירהAnchorEntityמקבלת עכשיו קבוצה של הסוגים האלה, במקום ערך יחיד. (Ib1033) - הוספנו תמיכה באנימציה של שלד (skinning) ל-Custom Mesh API הניסיוני. מפתחים יכולים עכשיו להנפיש רשתות בהתאמה אישית על ידי ציון
boneCountכשיוצריםMeshEntityועדכון האנימציה בזמן אמת באמצעותMeshEntity.setBoneTransforms(). (Id8ba2, b/496692490) - השקנו את
CustomMeshAPI הניסיוני. מפתחים יכולים עכשיו ליצור ולעבד גיאומטריה תלת-ממדית בסצנות שלהם באופן פרוגרמטי באמצעותCustomMesh,MeshBufferו-MeshEntity. (I94617) - בוצעה הסרה של
androidx.xr.scenecore.SpatializerConstants.SourceType.SOURCE_TYPE_SOUND_FIELD. במקומה צריך להשתמש במדיניותSourceType.SOUND_FIELD. (Ia68b9) - הוספת רכיבי אודיו מרחבי:
PositionalAudioComponent,SoundEffectPoolComponentו-SoundFieldAudioComponent(Ieda89) -
AnchorEntity.getAnchorהוחלף ב-AnchorEntity.anchorועכשיו יחזירAnchorכש-AnchorEntityנוצר מ-Anchorשל ARCore (I5c7c8) - ערך ברירת המחדל של הפרמטר
parentבשיטות ליצירת אובייקטיםActivityPanelEntity,GltfModelEntity,GroupEntity,PanelEntityו-SurfaceEntityהשתנה מ-ActivitySpaceל-null. כדי לצרף ישות לתרשים הסצנה ולהפוך אותה לגלוי, המפתחים צריכים להגדיר במפורש את ההורה שלה במהלך יצירת המופע או באמצעותEntity.parent = ...(Ie7cc1)
תיקוני באגים
-
SceneCoreEntityמעכשיו, המערכת משחררת באופן אוטומטי מופעים כשהם הופכים לזמינים באופן וירטואלי, כך שמפתחים לא צריכים להפעיל במפורש אתdispose()כדי לפנות משאבים. כדי לוודא שמופע של [Entity] יוחזר בצורה תקינה, המפתחים צריכים:- מנתקים אותו מתרשים הסצנה על ידי הגדרת
parentשלו ל-null. - לוותר על כל ההפניות החזקות למופע בקוד שלהם.
- הערה לגבי סוגי ישויות מיוחדים: במקרה של ישויות שלא ניתן להגדיר להן ישות אב (כמו
AnchorEntity), המפתחים צריכים לשמור על הפניה חזקה בזמן שהמופע נמצא בשימוש. אם כל ההפניות ישוחררו, המופעים האלה יהפכו למופעים שאפשר להגיע אליהם אבל לא ניתן להשתמש בהם, והם יוחזרו באופן אוטומטי. (I83fe4)
- מנתקים אותו מתרשים הסצנה על ידי הגדרת
- צמצמנו את כללי השמירה של Proguard לכל הספריות של
SceneCore. (I98447)
בעיות מוכרות
- צירוף
PositionalAudioComponentל-Entityעם מופעExoPlayerלא פעיל יגרום לקריסה. אל תתקשרו אלsetPointSourceParamsאו תצרפו/תנתקו את רכיבי האודיו המרחבי בזמן ש-ExoPlayer מושבת. נפתור את הבעיה הזו במהדורה הבאה.
גרסה 1.0.0-alpha14
6 במאי 2026
androidx.xr.scenecore:scenecore-*:1.0.0-alpha14 מופץ. גרסה 1.0.0-alpha14 מכילה את השמירות האלה.
שינויים ב-API
- הסוגים
TrackingStateו-VpsAvailabilityResultהועברו אלandroidx.xr.arcore package, והסוגים ב-androidx.xr.runtimeהוצאו משימוש. (Ic7930, b/480462213) - השם של
Plane.Typeשונה ל-PlaneType. (I8c90c, b/482675376) - השם של
Plane.Labelשונה ל-PlaneLabel. (Ic6b67, b/482675376) - הגרסה
androidx.xr.runtime.FieldOfViewהוצאה משימוש. במקומה צריך להשתמש במדיניותandroidx.xr.runtime.math.FieldOfView. (Ia01a0, b/480233045) - השם של
Matrix4.poseהשתנה לשםMatrix4.toPose(). המאפיין pose יצא משימוש. (I329b4, b/493383490) - שינוי השם של ערכי ה-enum
HandJointType. (Ifbc83, b/482670596) - חשיפת
Component.onAttachו-onDetachכממשקי API ציבוריים כדי לאפשר הטמעות מותאמות אישית שלComponent. (I0ca1f) - הוספת רכיבי אודיו מרחבי (I39ddd, b/489421980, b/436642086, b/436642499)
- הסרת הישות מהאוסף
PointSourceParams. במקום זאת, הישות תשמש ישירות עםSpatialAudioTrack, SpatialSoundPoolו-SpatialMediaPlayer(Ib3685, b/489421980, b/436634048) - השם
DeviceTrackingMode.LAST_KNOWNשונה ל-SPATIAL_LAST_KNOWN(עם חזרה לגרסה קודמת שהוצאה משימוש), נוסףINERTIAL_LAST_KNOWNלמעקב 3DoF, ונוסףTRACKING_DEGRADEDל-TrackingState. (Ie661c, b/445466590) - הוצא משימוש
GroupEntity. כדי ליצור Entity עם הפונקציונליות הבסיסית בלבד של Entity, מפעילים את הפונקציהEntity.create, שתחזיר ממשק Entity. (I4c450, b/473867483) - נוסף API של
XrLog. מגדירים אתXrLog.isEnabledל-trueכדי להפעיל את הרישום ביומן ב-JetpackXR, ומשתמשים ב-XrLog.Levelכדי להגדיר את רמת היומן. (I76a1f, b/463460895, b/487378441)
תיקוני באגים
- ברירת המחדל של
Scene.keyEntityהיא עכשיוmainPanelEntity. (I6a3ef)
גרסה 1.0.0-alpha13
25 במרץ 2026
androidx.xr.scenecore:scenecore-*:1.0.0-alpha13 מופץ. גרסה 1.0.0-alpha13 מכילה את השמירות האלה.
שינויים ב-API
- הסרנו את הדגל
unscaledGravityAlignedActivitySpaceמהתוכןSession.create. התמונהActivitySpaceתמיד לא מותאמת ומוצגת בהתאם לכוח המשיכה. (If6f11, b/458173423) - הוסרו הפונקציות
setMaterialOverrideו-clearMaterialOverrideשהוצאו משימוש מ-GltfModelEntity, ועכשיו הן נקראות ב-GltfModelNode. (I2e5d2) - נוספו
transformPixelCoordinatesToLocalPositionו-transformNormalizedCoordinatesToLocalPositionל-PanelEntityוהוסרו שיטות ניסיוניות מקבילות שהחזירו בעבר תנוחות במקום מיקומיVector3. (Ib6960, b/460123106, b/458333591) - הוספנו ממשקי API של
GltfAnimationלשליטה באנימציות glTF ב-SceneCore. (I2c172, b/466065486, b/465819070, b/465818617) - השם של
ScenePose.activitySpacePoseשונה לScenePose.poseInActivitySpace(I8f175, b/427822261) - נוספה הטמעה של זמן ריצה מוקרן של Scenecore (I9c4ab, b/476440158)
- כשמשנים את הגודל של הישות בחלונית הראשית, יכול להיות שהיא תמוקם מחדש בנקודת המוצא
ActivitySpace. אין פתרון עקיף מלבד שינוי המיקום של החלונית חזרה למיקום המקורי שלה באופן ידני או באמצעות תוכנה. הבאג הזה יתוקן בגרסה עתידית. (b/489427007). - במקרים מסוימים, יכול להיות שהאפשרות
MovableComponentלא תופיע עבורSurfaceEntityוסוגים אחרים של ישויות שאינן חלוניות. הגדרה מפורשת שלMovableComponent.sizeתגרום להצגת האפשרות. הבאג הזה יתוקן בגרסה עתידית (b/490983469).
גרסה 1.0.0-alpha12
25 בפברואר 2026
androidx.xr.scenecore:scenecore-*:1.0.0-alpha12 מופץ. גרסה 1.0.0-alpha12 מכילה את השמירות האלה.
בעיות מוכרות
- יכול להיות שיעברו כמה שניות עד שהישות המעוגנת תעבור מהמיקום המעוגן שלה לנקודת המוצא של מרחב הפעילות.
- יכול להיות שאפליקציות יקרסו כשיוצרים מופעים של
SurfaceEntity. הבעיה הזו נפתרה בגרסהandroidx.xr.scenecore:scenecore-*:1.0.0-alpha13ובגרסאות הבאות. צריך לעדכן את האפליקציות המושפעות לגרסאות האחרונות.
שינויים ב-API
- השמות של
ActivitySpace.addOnSpaceUpdatedListenerו-ActivitySpace.removeOnSpaceUpdatedListenerשונו ל-addOnOriginChangedListenerו-removeOnOriginChangedListener. השם שלAnchorEntity.setOnSpaceUpdatedListenerהשתנה לשםsetOnOriginChangedListener. (I5d8fb) - הוספנו מאפיין של שם ציבורי ל-
FakeEntityוהגדרנו את התצוגה כציבורית ב-FakePanelEntity. (Ifa1f9)
תיקוני באגים
- תוקנו חישובים של צפיפות פיקסלים בתמונות מערכת חדשות יותר (I57d04)
גרסה 1.0.0-alpha11
28 בינואר 2026
androidx.xr.scenecore:scenecore-*:1.0.0-alpha11 מופץ. גרסה 1.0.0-alpha11 מכילה את השמירות האלה.
שינויים ב-API
- השם של
PerceivedResolutionResult.InvalidCameraViewמשתנה ל-PerceivedResolutionResult.InvalidRenderViewpointכי ממשקי ה-API שלgetPerceivedResolutionמסתמכים עכשיו על API שלRenderViewpointבמקום עלCameraViewScenePose. השם הזה משקף טוב יותר את ההטמעה החדשה. (I8c967, b/446989745, b/419311998) - ה-methods
PanelEntity/SurfaceEntity.getPerceivedResolutionמקבלים עכשיו את הארגומנטRenderViewpointשהמפתח מספק. בעבר, סביבת זמן הריצה בחרה באופן שרירותי אתRenderViewpointשמשמש לחישוב הרזולוציה הנתפסת. (I8c967, b/446989745, b/419311998) - הוסרו
SpatialUser,ScenePose.Headו-ScenePose.CameraView. הפונקציונליות של ממשקי ה-API האלה כלולה בממשקי ה-APIArDeviceו-RenderViewpointב-ARCore for Jetpack XR. כדי לקבלScenePoseשמתאים לראש של המשתמש או לעין שמאל או ימין, מפתחים יכולים להשתמש ב-PerceptionSpace.getScenePoseFromPerceptionPoseעם התנוחה המתאימה שהתקבלה באמצעות ARCore APIs. (I2f69c, b/446989745)
גרסה 1.0.0-alpha10
3 בדצמבר 2025
androidx.xr.scenecore:scenecore-*:1.0.0-alpha10 מופץ. גרסה 1.0.0-alpha10 מכילה את השמירות האלה.
שינויים ב-API
- הוספת את
transformPixelCoordinatesToPoseואתtransformNormalizedCoordinatesToPoseאלPanelEntity(I462b3) - נוספה מחלקה מסייעת, Utils, אל
SceneCoreRuntime על סמך הלוגיקה ב-SceneCore(I570b9)
תיקוני באגים
- תוקנה קריסה פוטנציאלית שיכולה להתרחש כשסשן נהרס ומתקבל
SpatialModeChangeEvent(If44e8) - תוקן באג שיכול היה לגרום להצגת הודעת שגיאה
IllegalStateExceptionכשיוצאים מפעילות או כשנכנסים אליה מחדש. (Ibff1c)
גרסה 1.0.0-alpha09
19 בנובמבר 2025
androidx.xr.scenecore:scenecore-*:1.0.0-alpha09 מופץ. גרסה 1.0.0-alpha09 מכילה את השמירות האלה.
תכונות חדשות
- נוסף API לאחזור
ScenePoseשמייצג את הקומפוזיציה של תנוחת המקור של מרחב התפיסה ותנוחה ביחס למקור של מרחב התפיסה. (I5b50a) - נוספה הפונקציה
getGravityAlignedPose. התנוחה שמותאמת לכוח הכבידה מתעלמת מההטיה ומהגלגול של הסיבוב. (I5ae21) - הסוגים הקבועים
AnchorEntity.Stateהשתנו מ-Ints לסוגי משנה של State. (Ib0c49) - נוסף
getChildren()לממשק הישות. עודכן מחזור החייםMainPanelEntity. (Ia69d6)
שינויים ב-API
- סוגי הקבועים
PointerCaptureComponent.PointerCaptureStateהשתנו מ-Ints לסוגי משנה שלPointerCaptureState. (Ic888a) - השדה
Scene.spatialCapabilitiesהוא עכשיו מסוגSet<SpatialCapability>ולא שדה Int. השם של הקבועיםSpatialCapabilityהשתנה. (I9c109) - השם של סוגי הקבועים
SurfaceEntityהשתנה מ-Ints לסוגי משנה שלSurfaceEntity. (I419ed) - השם של סוגי הקבועים
SpatializerConstantהשתנה מ-Ints לסוגי משנה שלSpatializerConstant. (Ia0e18) - השם של סוגי הקבועים
TextureSamplerהשתנה מ-Ints לסוגי משנה שלTextureSampler. (I44078) - הסוגים הקבועים
SpatialVisibilityהשתנו מ-Ints לסוגי משנה שלSpatialVisibility. (I70739) - השם של סוגי הקבועים
ResizeEvent.ResizeStateהשתנה, והם הוגדרו מחדש כסוגי משנה שלResizeState. (I384d5) - השמות של הקבועים
InputEventהשתנו, והם יורשים עכשיו מהסוג המתאים שכולל אותם במקום להיות מסוג Ints. (I82817) - סוגי הקבועים
GltfModelEntity.AnimationStateהשתנו מ-Ints לסוגי משנה שלAnimationState. (I24f4e) - השם של סוגי הקבועים
AlphaModeהשתנה מ-Ints לסוגי משנה שלAlphaMode. (I27b56) - הסוגים הקבועים
Spaceהשתנו מ-Ints לסוגי משנה של Space. (I9255b) - הפונקציה
ScenePose.hitTestוהפונקציות הקשורות מחזירות עכשיוnullאם לא נמצא חיתוך, במקוםHitTestResultעם ערך null שלhitPosition. השדהHitTestResult.hitPositionכבר לא יכול להיות ריק. (I1400a) - ההפניות ל-
ActivityPoseהשתנו ל-ScenePose. (I7fe43)
גרסה 1.0.0-alpha08
22 באוקטובר 2025
androidx.xr.scenecore:scenecore-*:1.0.0-alpha08 מופץ. גרסה 1.0.0-alpha08 מכילה את השמירות האלה.
שינויים ב-API
- השם של
ActivityPanelEntity.moveActivityשונה לtransferActivity(I273c5, b/430332856)
תיקוני באגים
-
:xr:scenecore:scenecore-spatial-renderingו-:xr:scenecore:scenecore-spatial-coreנוספו כתלות בהטמעה של:xr:scenecore:scenecore(I6ab65, b/447000520) - מוצגת חריגה אם מתבצעת גישה אל
session.sceneאחרי השמדת הסשן. (I77e6f)
גרסה 1.0.0-alpha07
24 בספטמבר 2025
הגרסאות androidx.xr.scenecore:scenecore:1.0.0-alpha07, androidx.xr.scenecore:scenecore-guava:1.0.0-alpha07 וגם androidx.xr.scenecore:scenecore-testing:1.0.0-alpha07 פורסמו. גרסה 1.0.0-alpha07 מכילה את השמירות האלה.
שינויים ב-API
- השם של
fixedAspectRatioשונה ל-isFixedAspectRatioEnabledוהוא הוגדר כמאפיין בוליאני (I5c4e8, b/440588971) Scenecoreעכשיו אפשר למצוא את ה-Fakes במודולxr:scenecore:scenecore-testing. (Idd951)- השם של
shouldAutoHideContentשונה ל-isAutoHideContentWhileResizingEnabledוהשם שלshouldAlwaysShowOverlayשונה ל-isAlwaysShowOverlayEnabled(I97c36, b/432335421) - עדכנו את הקבועים
SceneCoreTextureSamplerכדי לשפר את הקריאות. לדוגמה,TextureSampler.MinFilter.LINEARהוא עכשיוTextureSampler.MIN_FILTER_LINEAR(Ib159c) - הפונקציה להגדרת המאפיין
setKeyEntityשל Scene מוזגה למשתנהkeyEntity. הגדרתkeyEntityלישות שלא ניתן להעביר, כמוAnchorEntity, תגרום להקפצת הודעת שגיאה (throw)IllegalArgumentExceptionבמקום להחזרת הערך הבוליאני false. (I62080, b/428721695, b/422215745) - המשתנה
SpatialModeChangeListenerשל הסצנה הוחלף ב-setSpatialModeChangedListener. הוא מקבלConsumer<SpatialModeChangeEvent>במקוםSpatialModeChangedListener. מעכשיו אפשר להוסיף ל-setSpatialModeChangedListenerExecutor באופן אופציונלי. (I62080, b/428721695, b/422215745) - הוסר הפרמטר
bundleמActivityPanelEntity.startActivity(I64344, b/430332856, b/430333040) - השם של
SpatializerConstants.SOURCE_TYPE_BYPASSשונה ל-SpatializerConstants.SOURCE_TYPE_DEFAULT. (Ifc7fe, b/422215565) - נוסף קבוע
SpatialSoundPool.PLAY_FAILED. (Ifc7fe, b/422215565) - הוספנו ארגומנטים שמוגדרים כברירת מחדל לשיטות
SpatialSoundPool.play. (Ifc7fe, b/422215565) - הוסר ערך ההחזרה של פונקציות setter ב-
SpatialAudioTrackBuilder. (Ifc7fe, b/422215565) - שינויים ב-SurfaceEntity
SurfaceEntity.CanvasShapeשינה/ה את השם שלShapeSurfaceEntity.CanvasShape.Vr180Hemisphereשינה/ה את השם שלHemisphereSurfaceEntity.CanvasShape.Vr360Sphereשינה/ה את השם שלSphereSurfaceEntity.EdgeFeatheringParams.SmoothFeatherשינה/ה את השם שלRectangleFeatherSurfaceEntity.EdgeFeathingParams.SolidEdgeשינה/ה את השם שלNoFeatheringSurfaceEntity.ContentSecurityLevelשינה/ה את השם שלSurfaceProtectionSurfaceEntity.ContentSecurityLevel.{values}הוסיף קידומתSURFACE_PROTECTION_.SurfaceEntity.SuperSampling.{$values}הוסיף קידומתSUPER_SAMPLING_SurfaceEntity.StereoMode.{values}הוסיף קידומתSTEREO_MODE_-
SurfaceEntity.ContentColorMetadata.maxCLLשינה את השם שלmaxContentLightLevel(I7eb5f, b/422216050, b/427529950)
- השם של
launchActivityשונה לstartActivity(I7db90, b/430332856) - בוצעה הסרה של
Scene.activitySpaceRoot. במקומה צריך להשתמש במדיניותScene.activitySpace. (I05ee8, b/378706624, b/422215745) -
configureBundleForFullSpaceModeLaunchו-configureBundleForFullSpaceModeLaunchWithEnvironmentInheritedשונו ל-createBundleForFullSpaceModeLaunchו-createBundleForFullSpaceModeLaunchWithEnvironmentInheritedבהתאמה, והועברו לקובץ LaunchUtils.kt כשיטות ברמה העליונה, והם מקבלים Session כפרמטר הראשון (I64a2c, b/437186050) - הפונקציה
GroupEntityfactory מחזירה עכשיו את הסוגGroupEntityבמקום Entity. (I66042)
תיקוני באגים
- הפעלת
IllegalStateExceptionכשמשתמשים במופע של ישות אחרי סילוק. (I90990, b/427314036, b/432063442)
גרסה 1.0.0-alpha06
13 באוגוסט 2025
הגרסאות androidx.xr.scenecore:scenecore:1.0.0-alpha06, androidx.xr.scenecore:scenecore-guava:1.0.0-alpha06 וגם androidx.xr.scenecore:scenecore-testing:1.0.0-alpha06 פורסמו. גרסה 1.0.0-alpha06 מכילה את השמירות האלה.
שינויים ב-API
- הסרת ההגבלה מממשקי ה-API
BaseEntityו-BaseScenePoseשלSceneCore(88c0ff6)
גרסה 1.0.0-alpha05
30 ביולי 2025
הגרסאות androidx.xr.scenecore:scenecore-guava:1.0.0-alpha05, androidx.xr.scenecore:scenecore-testing:1.0.0-alpha05 וגם androidx.xr.scenecore:scenecore:1.0.0-alpha05 פורסמו. גרסה 1.0.0-alpha05 מכילה את השמירות האלה.
תכונות חדשות
- נוסף API של רזולוציה נתפסת לישויות של חלוניות ול-
SurfaceEntities. (I118f6) PerceivedResolutionנוספו שיטות קריאה חוזרת (callback) ל-Scene.kt כדי לעקוב אחרי הרזולוציה הנתפסת של החלונית הראשית של הפעילות ב-HSM. (I58084)-
SurfaceEntity– נוספה תמיכה באפליקציה כדי לבקש דגימת יתר בזמן היצירה. כך אפליקציות יכולות להשתמש במסנן דגימת-על להחלקת קצוות משוננים. (I06913) - הנכס
recommendedContentBoxInFullSpaceנוסף אלActivitySpace. הפונקציה מחזירה תיבה מומלצת למיקום תוכן במצב מרחב מלא. (I4cd6f) - נוסף בנאי עמוס יתר על המידה לשינוי הניתן להזזה, שמאפשר הצמדה. (Ic0c70)
שינויים ב-API
בוצעו שינויים נרחבים ב-API של SceneCore בגרסה הזו. חלק מהמחלקות הועברו למודולים אחרים או שהשם שלהן השתנה, ורוב שיטות ה-getter וה-setter הוחלפו במאפייני Kotlin. אנחנו צופים שיהיו עוד שינויים משמעותיים ב-API עד לגרסת הבטא הראשונה שלנו, אבל הם לא יהיו משמעותיים או רבים כמו השינויים שכבר ביצענו.
- בוצע שינוי שם ו/או העברה של הממשקים והמחלקות הבאים:
androidx.xr.scenecore.PixelDimensionsל-androidx.xr.runtime.math.IntSize2d;androidx.xr.scenecore.Dimensionsל-androidx.xr.runtime.math.FloatSize3d;androidx.xr.scenecore.ActivityPoseל-ScenePose,androidx.xr.scenecore.ContentlessEntityל-GroupEntity,androidx.xr.scenecore.PlaneTypeל-PlaneOrientation;androidx.xr.scenecore.PlaneSemanticל-PlaneSemanticType. (Ifd405)(I3b622) (If534d) - מספר פונקציות להגדרת מאפיינים של
Sceneהפכו לפרטיות. לא הייתה כוונה לשנות אותן על ידי לקוחות שלSceneCore: activitySpace, activitySpaceRoot, mainPanelEntity, perceptionSpace, spatialCapabilities, spatialEnvironmentו-spatialUser. (I2f506) - ב-Entity: המאפיינים הבאים שונו:
get/setParent(),setContentDescription; המאפייןEntity.is/setHidden()הוצא משימוש, צריך להשתמש במאפייןEntity.is/setEnabledבמקומו. (Ibc4c6) - הוסרה המחלקה
androidx.xr.scenecore.BasePanelEntity. במקומה צריך להשתמש ישירות ב-PanelEntity. הוחלפו פונקציות getter ו-setter שלPanelEntityבמאפיינים. המאפייןPanelEntity.sizeהשתנה מ-Float3dSizeל-Float2dSize. הסרנו את השיטהandroidx.xr.scenecore.PanelEntity.getPixelDimensionsשהוצאה משימוש. במקומה צריך להשתמש ב-getSizeInPixels. (Icc174) - הטקסט
androidx.xr.scenecore.OnSpaceUpdatedListenerהוחלף בטקסטRunnable. (I19308) - הוחלף
SpatialUser.getCameraViews()בנכס. (Ib0cc5) ב-ExrImageוב-GltfModel:, שינינו את שיטותcreateכך שיהיו פונקציות השהיה. שינינו את פרמטרי היצירה כך שיקבלוUriאוPathבמקוםString. (Id8883) (I0d247), (I25706) - העברנו את
SpatialEnvironment.requestFullSpaceModeו-SpatialEnvironment.requestHomeSpaceModeל-Scene. לדוגמה, במקוםsession.scene.spatialEnvironment.requestFullSpaceMode()צריך להשתמש ב-session.scene.requestFullSpaceMode(). ל-addOnPassthroughOpacityChangedListenerול-addOnSpatialEnvironmentChangedListenerיש עכשיו החלפות שמקבלות Executors אופציונליים. (I12fe0) (I6b21e) - הוסרו השיטות הבאות שהוצאו משימוש
SpatialEnvironment:togglePassthrough,setPassthrough,setPassthroughOpacity,getPassthroughMode,getPassthroughOpacity,setSkyboxו-setGeometry. הוסר גם השימוש בכיתה שיצאה משימושSpatialEnvironment.PassthroughMode(I927bd) (I927bd) (I927bd) - החלפנו את הפונקציות הבאות של
SpatialEnvironmentgetters ו-setters במאפייני Kotlin: getCurrentPassthroughOpacity(), get/setPassthroughOpacityPreference(), get/setSpatialEnvironmentPreference(), isSpatialEnvironmentPreferenceActive()(I33a7b) (Ie06e2) (Ie06e2) - הסוג של
SpatialEnvironmentPreference.preferredPassthroughOpacityהשתנה מ-Float?ל-Float. הוא כבר לא מקבל ערכים ריקים (null). במקום זאת, נעשה שימוש בערךSpatialEnvironment.NO_PASSTHROUGH_OPACITY_PREFERENCEכדי לציין שאין העדפה לגבי אטימות. (I40107) - הפרמטר
windowBoundsPxעודכן ל-pixelDimensionsוהסוג שלו עודכן מ-Rect ל-IntSize2dבשיטת היצירה. (I1926e) - הקונסטרוקטור
SpatialEnvironmentהוא עכשיו פנימי (I75a51) - הוחלפה המחלקה
SpatialPointerIconNoneוהמחלקותSpatialPointerIconCircleבאובייקטים נלוויםSpatialPointerIcon.NONEו-SpatialPointerIcon.CIRCLE(I416d2) - השדה
SpatialPointerIconבטבלהSpatialPointerComponentכבר לא יכול להכיל ערך null. כדי לציין שצריך להשתמש בסמל ברירת המחדל של המערכת לציון מיקום הסמן, צריך להשתמש ב-SpatialPointerIcon.DEFAULTבמקום ב-null. (I416d2) - המאפיין
androidx.xr.scenecore.AnchorEntity.getState()הוחלף במאפיין לקריאה בלבד. השמות של הפרמטרים במתודהAnchorEntity.create()השתנו לשם הבהרה. בשיטות שלAnchorEntityלהגדרת מאזינים ולהוספת מאזינים, המאזין הועבר לארגומנט האחרון כדי להפעיל למבדות נגררות. הטקסטandroidx.xr.scenecore.OnStateChangedListenerהוחלף בטקסטConsumer<AnchorEntity.State>עבורAnchorEntity. (I472e0) GltfModelEntity.getAnimationState()הוא עכשיו נכס. (I10b29)- הוחלף
ActivitySpace.getBounds()בנכס. השם שלActivitySpace.addBoundsChangedListenerשונה ל-ActivitySpace.addOnBoundsChangedListener. הוחלףActivitySpace.setOnSpaceUpdatedListenerבשיטות להוספה או להסרה. (I4c956) - השם של
AnchorPlacement: planeTypeFilterהשתנה לanchorablePlaneOrientations, השם שלplaneSemanticFilterהשתנה לanchorablePlaneSemanticTypes. הוספה שלMovableComponentל-AnchorEntityאו ל-ActivitySpaceתחזיר false, MoveListenerשונה ל-EntityMoveListener shouldDisposeParentAnchorשונה ל-disposeParentOnReAnchor systemMovableהוסר מהפונקציהcreateלטובתcreeateCustomMovable, createSystemMovableו-createAnchorable(If11c4) - הוסר
SurfaceEntity.featherRadiusX/Yוהוסף קונספט של כיתהEdgeFeatheringParams. (Ic78fc) - ה-method
PanelEntity.enablePanelDepthTest()הוחלפה במאפייןpanelClippingConfig. מגדירים אתScene.panelClippingConfig = PanelClippingConfig(isDepthTestEnabled = true)כדי להפעיל את בדיקת העומק או מגדירים אתPanelClippingConfig(isDepthTestEnabled = false)כדי להשבית אותה. (I0cbe0) - הסוג של
Scene.mainPanelEntityהוא עכשיוMainPanelEntityבמקוםPanelEntity(I7125a) - השם של השיטה
setFullSpaceModeשל Scene השתנה ל-configureBundleForFullSpaceModeLaunch, והשם של השיטהsetFullSpaceModeWithEnvironmentInheritedהשתנה ל-configureBundleForFullSpaceModeLaunchWithEnvironmentInherited. (I0cbe0) (I0cbe0) - השמות של הערכים
SpatialVisibilityUNKNOWN, OUTSIDE_FOV, PARTIALLY_WITHIN_FOV ו-WITHIN_FOV שונו ל-SPATIAL_VISIBILITY_UNKNOWN, SPATIAL_VISIBILITY_OUTSIDE_FIELD_OF_VIEW, SPATIAL_VISIBILITY_PARTIALLY_WITHIN_FIELD_OF_VIEW ו-SPATIAL_VISIBILITY_WITHIN_FIELD_OF_VIEW, בהתאמה (Ie7e8c) - המחלקות
SpatialVisibilityהוחלפו באובייקט ציבורי עם ערכי Int קבועים. הפרמטרsetSpatialVisibilityChangedListenerמקבל עכשיוConsumer<Int>במקוםConsumer<SpatialVisibility>(Ie7e8c) - הקבועים
PointerCaptureComponentשונו והועברו לאובייקטPointerCaptureComponent.PointerCaptureState(I9c7ac) - הטקסט
PointerCaptureComponents' StateListenerהוחלף בטקסטConsumer<Int>. (I9c7ac) - הטקסט
InputEventListenerהוחלף בטקסטConsumer<InputEvent>(I9c7ac) -
setPreferredAspectRatioהועבר מהמחלקה Scene לאובייקטSpatialWindow, והוא מקבל Session כפרמטר הראשון. (I7b717) -
Entity.setHidden()הוחלף ב-Entity.setEnabled()ו-Entity.isHidden()הוחלף ב-Entity.isEnabled(). setHidden(false)שווה ל-setEnabled(true)ול-isHidden() == !isEnabled(). (Icf0de) - הסוג של
Entity.contentDescriptionהשתנה מ-String ל-CharSequence. (Ie59be) - הפונקציות
Session.createו-Session.configureמקפיצות עכשיו הודעת שגיאה (throw)SecurityExceptionאם לא ניתנו הרשאות מספיקות, במקום להחזירSessionCreatePermissionsNotGrantedאוSessionConfigurePermissionsNotGranted. (I7c488) -
ResizableComponent.createnow requires aConsumer<ResizeEvent> ResizeEventListenerwas replaced withConsumer<ResizeEvent> ResizableComponent.sizewas renamed toResizableComponent.affordanceSize ResizableComponent.minimumSizewas renamed toResizableComponent.minimumEntitySize ResizableComponent.maximumSizewas renamed toResizableComponent.maximumEntitySize,ResizableComponent.autoHideContentwas renamed toResizableComponent.shouldAutoHideContentResizableComponent.forceShowResizeOverlaywas renamed toResizableComponent.shouldAlwaysShowOverlay(I97a2d) - הפחתת
minSDKל-24 עבורandroidx.xr.scenecoreו-androidx.xr.compose. חבילות XR עדיין דורשות API 34 בזמן הריצה. (I17224) - הוסרה ההגבלה
RequiresApi(34)על כל חבילות Jetpack XR. ההגבלה הזו הייתה מיותרת כי Jetpack XR זמין כרגע רק במכשירים עם רמת API 34 ומעלה. (Iae0f8) - ארטיפקט
SceneCore(xr:scenecore:scenecore) הראשי יכיל רק ממשקי API אסינכרוניים בסגנון Kotlin. מפתחי Java יכולים להסתמך על הספרייהxr:scenecore:scenecore-guavaכדי לגשת לממשקי API תואמים. (If221b) - כדי להשתמש בפרויקטים שפורסמו עם Kotlin 2.0, צריך KGP 2.0.0 או גרסה חדשה יותר (Idb6b5)
- הספרייה הזו משתמשת עכשיו באנוטציות של JSpecify nullness, שהן מסוג type-use. מפתחי Kotlin צריכים להשתמש בארגומנט הבא של הקומפיילר כדי לאכוף שימוש נכון:
-Xjspecify-annotations=strict(זו ברירת המחדל החל מגרסה 2.1.0 של Kotlin Compiler) (Ia8420) - כל השיטות האסינכרוניות שמחזירות
ListenableFutureהוחלפו בפונקציות השהיה של Kotlin. מפתחי Java שרוצים להשתמש בשיטות אסינכרוניות שמבוססות עלListenableFutureבמקום בפונקציות השהיה של Kotlin צריכים עכשיו להשתמש בפונקציות הרחבה ב-:xr:scenecore-scenecore-guava. לדוגמה,GuavaExrImageמכיל את הפונקציות האסינכרוניות המקבילות של Guava,GuavaScenePoseמכיל את הפונקציות האסינכרוניות המקבילות שלScenePose,GuavaGltfModelמכיל את הפונקציות האסינכרוניות שלGuava-equivalent GltfModelוכו'. (If7283) (I0af60) (If7283) (Ia8515) (I4efdf) (I54bbf) (I3467a) (I82a33)
תיקוני באגים
- עדכון של כלל
ProGuardב-Jetpack XR Scenecore כדי למנועAbstractMethodErrorבלקוחות שעברו מיניפיקציה. (I91a01) - תיקונים נוספים לתמיכה בהקטנת קובץ Proguard ל-Jetpack XR
SceneCore(I4f47e) - תוקן באג שבו
InteractableComponentעלול לגרום לקריסה אםhitPositionב-HitInfo שלInputEventעלול לקרוס אםhitPositionשהוחזר מהמערכת היה null (I7a695) - שם ההגדרה *Mode vals שונה כדי לשקף את ההתנהגות שלה. (I6d247)
- תוקנו בעיות שקשורות לשדה הראייה ול-
HitTestב-TestAppSceneCore. (I2c51e) - תוקן באג בפונקציה
SpatialCapabilities.hasCapability()שגרם לה להחזיר true אם אחת מהיכולות שהועברו עם OR ברמת הביט הייתה true, במקום להחזיר true רק אם כולן היו true. (I2cd40) SurfaceEntity.StereoMode.TOP_BOTTOMעודכן כך שהמפה העליונה תהיה לעין שמאל והמפה התחתונה תהיה לעין ימין. (I4ae68)
גרסה 1.0.0-alpha04
7 במאי 2025
androidx.xr.scenecore:scenecore:1.0.0-alpha04 וגם androidx.xr.scenecore:scenecore-testing:1.0.0-alpha04 מופצים. גרסה 1.0.0-alpha04 מכילה את השמירות האלה.
תכונות חדשות
- מעכשיו, טיפול בהחזרה יעבוד על ישויות בחלונית ללא פעילויות מוטמעות. כדי שהטיפול בהחזרה יפעל, צריך לציין את
android:enableOnBackInvokedCallback= "true"במניפסט של Android. -
StereoSurfaceEntityתומך עכשיו בהפעלה של MV-HEVC באמצעות שני ערכים חדשים שלStereoMode: MULTIVIEW_LEFT_PRIMARY ו-MULTIVIEW_RIGHT_PRIMARY. - הפונקציות
PanelEntity.setSizeו-PanelEntity.getSizeמחזירות עכשיו גדלים במרחב ההורה. - הפרמטר החדש
relativeToנוסף לפונקציותEntity.setPose,Entity.getPose,Entity.setScale,Entity.getScale,Entity.setAlphaו-Entity.getAlpha. הפרמטר הזה מאפשר לקבל או להגדיר ערכים ביחס למרחבים שונים. הערכים הנתמכים הם Parent, Activity ו-Real World spaces, וערך ברירת המחדל של הפרמטר הזה הוא Parent. - נוספו שיטות הרחבה של קריאה חוזרת (callback) לנראות מרחבית אל
SessionExt.ktכדי לעקוב אחרי תנועת התוכן בסצנה בתוך שדה הראייה של המשתמש או מחוצה לו. - הוספנו את
setPointSourceParamsאלSpatialAudioTrack, כדי לאפשר עדכון של הפרמטרים אחרי שהשיר נוצר. - נוספה מחלקה חדשה, Scene, עם הפניות לממשקי API של
Scenecore. הסצנה תהיה נגישה כמאפיין הרחבה של Session. פונקציות בתוךSessionExtהועברו ל-Scene, ולכן צריך לשנות את הייבוא. לדוגמה,SessionExt.getScene(session).addSpatialCapababilitiesChangedListenerמולSessionExt.addSpatialCapabilitiesChangedListener. -
ActivityPose.hitTestAsyncנוסף, והוא מאפשרhitTestנגד תוכן וירטואלי. - נוסף סוג רכיב חדש
SpatialPointerComponent, שמאפשר ללקוחות לציין את הסמל שמוצג עבור מצביע העכבר, או להשבית את הסמל. בשלב הזה, אפשר לצרף את הרכיב הזה רק למופעים שלPanelEntity. - השקנו מפעל חדש
PanelEntityשמקבל את מידות הפאנל במטרים או בפיקסלים. הוסרה פונקציית factory ישנה יותרPanelEntityשמקבלת שני פרמטרים מסוג Dimension עבור חלונית.
שינויים ב-API
- הוסרה ההגבלה
RequiresApi(34)על כל חבילות Jetpack XR. ההגבלה הזו הייתה מיותרת כי Jetpack XR זמין כרגע רק במכשירים עם רמת API 34 ומעלה. (Iae0f8) - כדי להשתמש בפרויקטים שפורסמו עם Kotlin 2.0, צריך KGP 2.0.0 או גרסה חדשה יותר (Idb6b5)
- הוסרה המחלקה
PermissionHelper. - האפשרות
PanelEntity.getPixelDensityהוצאה משימוש. - המינויים
PanelEntity.setPixelDimensionsו-PanelEntity.getPixelDimensionיוסרו ויוחלפו במינוייםsetSizeInPixelsו-getSizeInPixels. - האפשרות
Entity.getActivitySpaceAlphaהוסרה. אפשר להחליף אותו ב-Entity.getAlpha(Space.Activity). - האפשרות
Entity.getWorldSpaceScaleהוסרה. אפשר להחליף אותו ב-Entity.getScale(Space.REAL\_WORLD). - הכיתה Session ב-
SceneCoreנמחקה לטובת Session ב-XR Runtime. - השם של
StereoSurfaceEntityהשתנה לשםSurfaceEntity. - ה-methods
Entity.setSizeו-Entity.getSizeהוסרו, וה-methods האלה נוספו ל-PanelEntity. - השם של
PointSourceAttributesהשתנה לשםPointSourceParams. - השם של
SpatializerConstants.SOURCE\_TYPE\_BYPASSהשתנה לשםSpatializerConstants.SOURCE\_TYPE\_DEFAULT. - ההרשאה של הישות
PointSourceParamsשונתה מגישה ציבורית לגישה פנימית. - מעכשיו צריך להגדיר את
PlaneTrackingModeב-Session.configure()כדי להשתמש ב-AnchorEntity.create. SpatialUserמעכשיו צריך להגדיר אתHeadTrackingModeב-Session.configure()כדי להשתמש בממשקי API.- אם
ResizableComponentלא מצורף, יומן ברמת INFO יוצג במקום יומן ברמת ERROR. - מחלקת ה-FOV היא עכשיו מחלקת Kotlin רגילה.
- מפצלים את
Entity.ktכדי להציב כל סוג ישות קונקרטי בקובץ משלו. - כשיוצרים
PanelEntityחדש, רוב התצוגות משויכות מחדש לFrameLayout. כך קל יותר להשתמש ב-LayoutInspectorעם חלוניות מרחביות. - מופע
XrExtensionsשנעשה בו שימוש כרגע רשום עכשיו בפלטפורמה, בדרך הטובה ביותר האפשרית, כדי לעזור בניפוי באגים באפליקציה.
תיקוני באגים
- נוסף תיקון כדי למנוע קריסה שיכולה לקרות כשמעבירים
PanelEntityעםMovableComponentו-AnchorPlacement - תוקנה בעיה שבה
ResizableComponentסיפק גדלים לא עדכניים בקריאה חוזרת (callback) שלonResizeStart. - תוקנה קריסה כשקוראים ל-
JxrPlatformAdapterAxrשלdispose()כמה פעמים.
גרסה 1.0.0-alpha03
26 בפברואר 2025
androidx.xr.scenecore:scenecore:1.0.0-alpha03 וגם androidx.xr.scenecore:scenecore-testing:1.0.0-alpha03 מופצים. גרסה 1.0.0-alpha03 מכילה את השמירות האלה.
תכונות חדשות
- יש עכשיו תמיכה ב-Proguard minification לקוד Jetpack XR
תיקוני באגים
- תיקונים נוספים לתמיכה בהקטנת קובץ Proguard עבור Jetpack XR SceneCore (I4f47e)
- עדכון של כלל
ProGuardב-Jetpack XR Scenecore כדי למנועAbstractMethodErrorבלקוחות שעברו מיניפיקציה. (I91a01)
גרסה 1.0.0-alpha02
12 בפברואר 2025
androidx.xr.scenecore:scenecore:1.0.0-alpha02 וגם androidx.xr.scenecore:scenecore-testing:1.0.0-alpha02 מופצים. גרסה 1.0.0-alpha02 מכילה את השמירות האלה.
שינוי משמעותי שצפוי להשפיע על אפליקציות שנבנו לפני גרסה 1.0.0-alpha02
- ה-factory methods הועברו מהמחלקה
Sessionל-companion method בכל סוג:- המינוי
Session.createActivityPanelEntity(Dimensions, String, Activity, Pose)נמחק והוחלף במינויActivityPanelEntity.create(Session, Dimensions, String, Pose) - המינוי
Session.createAnchorEntity(Anchor)נמחק והוחלף במינויAnchorEntity.create(Session, Anchor) - המינוי
Session.createAnchorEntity(Dimensions, Int, Int, Duration)נמחק והוחלף במינויAnchorEntity.create(Session, Dimensions, Int, Int, Duration) - המינוי
Session.createEntity(String, Pose)נמחק והוחלף במינויContentlessEntity.create(Session, String, Pose) - המינוי
Session.createExrImageResource(String)נמחק והוחלף במינויExrImage.create(Session, String) - המינוי
Session.createGltfEntity(GltfModel, Pose)נמחק והוחלף במינויGltfModelEntity.create(Session, GltfModel, Pose) - המינוי
Session.createGltfModelResource(String)נמחק והוחלף במינויGltfModel.create(Session, String) - המינוי
Session.createInteractableComponent(Executor, InputEventListener)נמחק והוחלף במינויInteractableComponent.create(Session, Executor, InputEventListener) - המינוי
Session.createMovableComponent(Boolean, Boolean, Set<AnchorPlacement>, Boolean)נמחק והוחלף במינויMovableComponent.create(Session, Boolean, Boolean, Set<AnchorPlacement>, Boolean) - המינוי
Session.createPanelEntity(View, Dimensions, Dimensions, String, Pose)נמחק והוחלף במינויPanelEntity.create(Session, View, Dimensions, Dimensions, String, Pose) - המינוי
Session.createResizableComponent(Dimensions, Dimensions)נמחק והוחלף במינויResizableComponent.create(Session, Dimensions, Dimensions) - המינוי
Session.createStereoSurfaceEntity(Int, Dimensions, Pose)נמחק והוחלף במינויStereoSurface.create(Session, Int, Dimensions, Pose)
- המינוי
- ה-methods הבאות שהוצאו משימוש הוסרו:
Session.canEmbedActivityPanel(Activity)נמחק. במקומה צריך להשתמש במדיניותgetSpatialCapabilities.hasCapabilility(SPATIAL_CAPABILITY_EMBED_ACTIVITY).Session.hasSpatialCapability(Int)נמחק. היא הוחלפה בשימוש ב-getSpatialCapabilities().hasCapability()כדרך מופרדת יותר לבדיקת נוכחות של יכולות מרחביות, כיgetSpatialCapabilities()מחזירה אובייקטSpatialCapabilities.- המינוי
Session.requestFullSpaceMode()נמחק והוחלף במינויSpatialEnvironment.requestFullSpaceMode() - המינוי
Session.requestHomeSpaceMode()נמחק והוחלף במינויSpatialEnvironment.requestHomeSpaceMode()
- הפונקציות
Session.setFullSpaceMode(Bundle)ו-Session.setFullSpaceModeWithEnvironmentInherited(Bundle)הועברו לפונקציות של תוספים. מפתחים יצטרכו להוסיף את הייבוא החדש לקבצים שלהם כדי לקבל גישה:import androidx.xr.scenecore.setFullSpaceModeimport androidx.xr.scenecore.setFullSpaceModeWithEnvironmentInherited
-
Session.setPreferredAspectRatio(Activity, Float)הועבר לפונקציית הרחבה. המפתחים יצטרכו להוסיף את הייבוא החדש לקבצים שלהם כדי לקבל גישה:import androidx.xr.scenecore.setPreferredAspectRatio
- הפונקציות
Session.getEntitiesOfType(Class<out T>)ו-Session.getEntityForRtEntity(RtEntity)הועברו לפונקציות של תוספים. מפתחים יצטרכו להוסיף את הייבוא החדש לקבצים שלהם כדי לקבל גישה:import androidx.xr.scenecore.getEntitiesOfTypeimport androidx.xr.scenecore.getEntityForRtEntity
- המשתמש
Session.unpersistAnchor(Anchor)נמחק - המשתמש
Session.createPersistedAnchorEntity(UUID)נמחק
בעיות מוכרות
- יכול להיות שהשינויים ב-
PanelEntity.setCornerRadius()וב-ActivityPanelEntity.setCornerRadius()יחולו רק אחרי שתזיזו את החלונית בפעם הבאה. כדי לפתור את הבעיה, אפשר להזיז את החלונית למיקום הנוכחי שלה. - כשקוראים ל-
BoundsChangedב-ActivitySpace, יכול להיות שחלק מה-ActivityPoseלא עודכנו בצורה נכונה. הפרטים יעודכנו בשיחה הבאהOnSpaceUpdatedבתאריךActivitySpace
שינויים בתוכנה שעלולים לגרום לכשלים ושינויים בהתנהגות
- ל-
PanelEntityול-ActivityPanelEntityיהיה רדיוס פינות שמוגדר כברירת מחדל של 32dp או פחות אם הרוחב או הגובה של החלונית קטנים מ-32dp
ממשקי API ויכולות חדשים
- השקנו את
StereoSurface.CanvasShape, שמאפשר ליצור פריטי Canvas שלSphericalושלHemisphericalלעיבוד של מדיה סוחפת. - הפרמטר
StereoSurfaceEntity.create()מקבל עכשיו את הפרמטרCanvasShape. (הפרמטר הזה מתעלם כרגע, אבל ייעשה בו שימוש בגרסה עתידית) - הפרמטר
StereoSurfaceEntity.create()לא מקבל יותר את הפרמטרDimensions. האפליקציות צריכות לשלוט בגודל של אזור הציור באמצעות הגדרתCanvasShape - ל-
StereoSurfaceEntityיש חברCanvasShapeשאפשר להגדיר באופן דינמי. - המאפיין
StereoSurfaceEntity.dimensionsהוא עכשיו מאפיין לקריאה בלבד. כדי לשנות מאפיינים, האפליקציות צריכות להגדיר אתCanvasShape. - האפשרות
StereoSurfaceEntityמאפשרת עכשיו לאפס אתStereoModeאחרי הבנייה.
שינויים אחרים
- הפחתנו את הערך של minSDK בזמן ההידור ל-24. כל ממשקי Jetpack XR API עדיין דורשים API ברמה 34 בזמן הריצה.
- ה-Session factory של
SceneCore(Session.create) לא מפעיל יותר Intent כדי לקבל את ההרשאהSCENE_UNDERSTANDING. במקום זאת, אפליקציית הלקוח צריכה לבקש מהמשתמש באופן מפורש את ההרשאות לפני שהיא מנסה ליצור את העוגנים. אם המשתמש לא יעניק את ההרשאה, יצירת העוגן תיכשל.
תיקוני באגים
- תוקן באפשרות
getActivitySpacePose()כך שהיא תתחשב בסולםActivitySpaceותחזיר ערכי תרגום במטרים מותאמים ולא תמיד במטרים לא מותאמים. transformPoseToמשתמשת עכשיו גם ביחידות הנכונות כדי לחשב שינויים בקואורדינטות כש-ActivitySpaceמעורבת במקור או ביעד. - החל מעכשיו, כשמעבירים העדפה של skybox ריק באמצעות
setSpatialEnvironmentPreference(new SpatialEnvironmentPreference(null, geom)), ה-skybox מוגדר כ-skybox שחור לחלוטין. כדי לחזור לברירת המחדל של המערכת לגבי תיבת השמיים והגיאומטריה, משתמשים ב-setSpatialEnvironmentPreference(null).
גרסה 1.0.0-alpha01
12 בדצמבר 2024
androidx.xr.scenecore:scenecore-* 1.0.0-alpha01 מופץ.
תכונות של הגרסה הראשונית השקנו גרסה ראשונית של Jetpack SceneCore למפתחים, ספרייה של גרף סצנות בתלת-ממד ליצירה ולשינוי של סצנות וסביבות מרתקות. הספרייה הזו מאפשרת לכם למקם ולסדר מודלים של תלת מימד ולוחות תוכן ביחס אחד לשני ולסביבות הווירטואליות או הפיזיות שלכם.
- SpatialEnvironment: יצירת חוויות אימרסיביות מלאות באמצעות תמונת skybox או גיאומטריית מודל תלת-ממדי כרקע לסצנת ה-XR של הסביבה. אפשר גם להפעיל את התכונה 'העברה' כדי שהסצנה הווירטואלית תשתלב עם הסביבה האמיתית של המשתמש.
- PanelEntity: אפשר להוסיף תוכן דו-ממדי לסצנות תלת-ממדיות על ידי הטמעה של פריסות ופעילויות סטנדרטיות של Android בחלוניות מרחביות שיכולות לצוף או להיות מעוגנות למשטחים בעולם האמיתי.
- GltfModelEntity: מיקום, הנפשה ואינטראקציה עם מודלים תלת-ממדיים בסצנה. SceneCore תומך בפורמט הקובץ glTF כדי להקל על השילוב עם מודלים קיימים.
- SpatialAudio: מוסיפים מקורות אודיו סביבתיים וממוקדים לסצנת תלת-ממד כדי ליצור צליל מרחבי שמעניק חוויה סוחפת.
- StereoSurfaceEntity: SceneCore תומך בהעברת תוכן שמעובד ב-Android Surface לעין ימין או לעין שמאל. אפשר להשתמש בזה כדי להציג תוכן סטריאוסקופי בפורמט זה לצד זה או מלמעלה למטה, כמו תמונות סטריאו, סרטוני תלת-ממד או ממשקי משתמש אחרים שמוצגים באופן דינמי. אפליקציות צריכות להשתמש ב-MediaPlayer או ב-ExoPlayer לפענוח וידאו.
- מערכת רכיבים: SceneCore מציעה מערכת רכיבים חזקה וגמישה להוספת יכולות לתוכן ה-XR, כולל אפשרויות למשתמשים להזיז מודלים ולוחות, לשנות את הגודל שלהם ולבצע איתם אינטראקציה.
- הצמדה: כשמפעילים את התכונה 'העברה', אפשר להצמיד חלוניות ומודלים למשטחים אמיתיים, וכך המשתמשים יכולים לשלב תוכן וירטואלי בצורה חלקה בסביבה שלהם בעולם האמיתי.
- תנוחת המשתמש: גישה למיקום המשתמש בסצנה הווירטואלית, כדי להתאים את התוכן למיקום המשתמש.
- SpatialCapabilities: פיתוח אפליקציות שמותאמות באופן מלא ומנצלות את היכולות המרחביות כשהן זמינות, כמו מיקום תלת-ממדי של תוכן בממשק המשתמש. בנוסף, האפליקציה יכולה לעקוב אחרי שינויים ביכולות בזמן שהיא פועלת, כדי לשנות את חוויית השימוש בהתאם לאופן שבו המשתמש משתמש במכשיר Android XR.
בעיות מוכרות
- נכון לעכשיו, נדרשת גרסת minSDK של 30 כדי להשתמש ב-Jetpack SceneCore. כפתרון עקיף, מוסיפים את רשומת המניפסט הבאה
<uses-sdk tools:overrideLibrary="androidx.xr.scenecore, androidx.xr.compose"/>כדי שיהיה אפשר לבנות ולהפעיל עם minSDK בערך 23. - סשן יכול להיות לא תקף במצבים שונים שבהם הפעילות נוצרת מחדש באופן אוטומטי, כולל שינוי הגודל של חלונית ראשית, חיבור ציוד היקפי ומעבר בין מצב בהיר למצב כהה. אם נתקלתם בבעיות שקשורות לביטול תוקף של סשנים, יש כמה פתרונות אפשריים: להגדיר את החלונית הראשית ככזו שלא ניתן לשנות את הגודל שלה, להשתמש בישות של חלונית דינמית, להשבית את יצירת הפעילות מחדש לשינויים ספציפיים בהגדרות או להשבית את השינויים של ערכות הנושא במצב בהיר או במצב כהה.
- אין תמיכה ברכיבים שאפשר להזיז ולשנות את הגודל שלהם ב-GltfEntity.
- אין תמיכה ב-Entity.getSize() ב-GltfEntity.
- אפליקציות Jetpack XR צריכות לבקש את ההרשאה
android.permission.SCENE_UNDERSTANDINGב-AndroidManifest. - אפשר ליצור סשן רק במכשיר Android XR. בשלב הזה, אם תיצרו סשן ותנסו להשתמש בו במכשיר Android XR שאינו כזה, תקבלו RuntimeException.
- הגדרת ה-skybox כ-null באמצעות `SpatialEnvironment.setSpatialEnvironmentPreference()` לא יוצרת skybox שחור מלא כמו שמתואר במסמכים. יכול להיות שהתוצאה תהיה תיבת שמיים שמוגדרת כברירת מחדל במערכת, או שלא יהיה שינוי בתיבת השמיים הנוכחית.
- לקוחות SceneCore צריכים להוסיף את
implementation(“com.google.guava:listenablefuture-1.0”)להגדרת Gradle של התלויות של האפליקציה שלהם. בגרסה עתידית, scenecore תכלול את הספרייה הזו כתלותapi, כך שהלקוחות לא יצטרכו להצהיר עליה באופן מפורש. - SceneCore כולל בטעות את
com.google.guava:guava-31.1-androidו-com.google.protobuf:protobuf-javaliteכתלות טרנזיטיבית. אם הפעולה הזו גורמת לשגיאות כפולות בכיתה ב-build, אפשר להחריג את שתי התלויות האלה בבטחה. - אם האפליקציה שלכם משתמשת ב-SceneCore ומופעל בה ProGuard, היא תקרוס כשתיצרו Session. כפתרון עקיף, אפשר להשבית את ProGuard. מידע נוסף על הפעלת ProGuard זמין במדריך הזה.