Jetpack SceneCore
| Son Güncelleme | Kararlı Sürüm | Sürüm Adayı | Beta sürümü | Alfa Sürümü |
|---|---|---|---|---|
| 7 Ekim 2026 | - | 1.0.0-rc02 | - | - |
Bağımlılıkları bildirme
XR SceneCore'a bağımlılık eklemek için Google Maven deposunu projenize eklemeniz gerekir. Daha fazla bilgi için Google'ın Maven deposu başlıklı makaleyi inceleyin.
Uygulamanız veya modülünüz için build.gradle dosyasına ihtiyacınız olan yapılarla ilgili bağımlılıkları ekleyin:
Eski
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") }
Bağımlılıklar hakkında daha fazla bilgi için Derleme bağımlılıkları ekleme başlıklı makaleyi inceleyin.
Geri bildirim
Geri bildiriminiz Jetpack'in iyileştirilmesine yardımcı olur. Yeni sorunlar keşfederseniz veya bu kitaplığı iyileştirmeye yönelik fikirleriniz varsa lütfen bize bildirin. Lütfen yeni bir tane oluşturmadan önce bu kitaplıktaki mevcut sorunlara göz atın. Yıldız düğmesini tıklayarak mevcut bir soruna oyunuzu ekleyebilirsiniz.
Daha fazla bilgi için Issue Tracker belgelerine bakın.
Sürüm 1.0
Sürüm 1.0.0-rc02
7 Ekim 2026
androidx.xr.scenecore:scenecore-*:1.0.0-rc02 yayınlandı. 1.0.0-rc02 sürümü bu commit'leri içerir.
Hata düzeltmeleri
perceptionRuntimeCacheiçindeSessionExtkaldırılıpPerceptionRuntimedoğrudanSessionörneğinden alınacak şekilde yeniden düzenlenerek olası bir bellek sızıntısı düzeltildi. (Ie35b1)- Yerel çalışma zamanının
Activitybağlamına referans tutmamasını sağlamak içinOpenXRyerel tutamaçları içinapplicationContextkullanılarak olası bir bağlam sızıntısı düzeltildi. (Ie35b1) - Uygun senkronizasyon ve başlatma kilitleme işlemleri uygulanarak
XrInstanceManageriçindeki yarış koşulları düzeltildi. (Ie35b1) - Temizleme işlemlerinin kaydının silinmesini desteklemek için
ReferenceCleanerdüzeltildi veEntitytemizleme işlemlerinindispose()sırasında açıkça çalıştırılması sağlandı. Böylece, atık toplama sırasında yinelenen yürütme önlendi. (Ie35b1) - içinde
SessionExtiçindekisceneCachekaldırılıpScene, örneği doğrudansessionConnectors'den getirecek şekilde yeniden düzenlenerekScene'deki bellek sızıntısı düzeltildi. (Ie35b1)
Sürüm 1.0.0-rc01
9 Eylül 2026
androidx.xr.scenecore:scenecore-*:1.0.0-rc01 yayınlandı. 1.0.0-rc01 sürümü bu commit'leri içerir.
API değişiklikleri
xr:scenecore:scenecore-openxrkitaplığı eklendi. (Ic49f2)- 1.0.0 kararlı sürümünden önce, desteği sonlandırılan çeşitli API'ler kaldırıldı.
Hata düzeltmeleri
- Etkinlik yok edildiğinde Etkinlik referansının sistem tarafından tutulabildiği bellek sızıntısı hatası düzeltildi. (I6dcd7)
Davranış Değişiklikleri
- SceneCore'dan logcat çıkışı kaldırıldı. (I10c3c)
Sürüm 1.0.0-beta02
12 Ağustos 2026
androidx.xr.scenecore:scenecore-*:1.0.0-beta02 yayınlandı. 1.0.0-beta02 sürümü bu commit'leri içerir.
Hata düzeltmeleri
- Üst öğe için çöp toplama işlemi yapıldıysa
toMoveEvent(),nulldeğerini döndürür. (Ia7a1b)
Sürüm 1.0.0-beta01
15 Temmuz 2026
androidx.xr.scenecore:scenecore-*:1.0.0-beta01 yayınlandı. 1.0.0-beta01 sürümü bu commit'leri içerir.
API değişiklikleri
GltfAnimationveSpatialGltfModelAnimationAPI'leri deneysel olarak işaretlendi. Bazı özellikler getter'a dönüştürüldü. (I8d689, b/524771027)- Herkese açık
MovableComponent.createTrackingMovablefabrika yöntemi kaldırıldı. (I00912, b/477169015) - Converted Session.create to a suspend function. (I5d27f)
ActivitySpaceveAnchorSpaceartık, konumları sistem tarafından kontrol edilen öğeler için ortak davranışlar içeren ortak birSpaceEntitysınıfını genişletiyor (I506ec, b/513619219).AnchorEntity,AnchorSpaceolarak güncellendi (Ifa95e, b/513619219)- Herkese açık test API'si
SoundEffectPoolComponentTestersağlar. (I87df7, b/498104417) SurfaceEntity.Shape.Quadoluşturucusuna isteğe bağlı bircornerRadiusparametresi eklendi vecornerRadiusözelliği herkese açık hale getirildi. Geliştiriciler artık yuvarlak köşeliSurfaceEntitytuvaller oluşturmak için dörtgen şekli oluştururken köşe yarıçapı belirtebilir ve mevcut dörtgenlerin yarıçapını sorgulayabilir. (Ia7809, b/474681085)- Herkese açık test API'si
SpatialAudioTrackBuilderTester,SpatialAudioTrackTesterveSceneCoreTestRule.getTesteraşırı yüklemeleri sağlar. (I378c6, b/496333938) - Bir dizi ARCore türü için
toString()öğesinin özel geçersiz kılmalarını ekleyin. Bu türler, hata ayıklama amacıyla geliştiricilere ek bilgi sağlamak için tasarlanmıştır ve üretimde veya gönderilen uygulamalarda kullanılmak üzere tasarlanmamıştır.
Sürüm 1.0.0-alpha16
17 Haziran 2026
androidx.xr.scenecore:scenecore-*:1.0.0-alpha16 yayınlandı. 1.0.0-alpha16 sürümü bu commit'leri içerir.
API değişiklikleri
addVertexData,setIndexDataveaddSubsetiçinCustomMesh.BuilderFromMeshDataveCustomMesh.BuilderFromMeshBuffer'ye aşırı yüklemeler eklendi. Bu aşırı yüklemeler, geliştiricilerinByteBufferRegionveyaMeshSubsetgibi ara nesnelere sarmalamalarına gerek kalmadan ham verileri ve parametreleri doğrudan (ör.ByteBuffer,offset,size,topology,indexOffset,indexCount) iletmelerine olanak tanır. (I84d5c)Scene.requestFullSpaceMode()veScene.requestHomeSpaceMode(), sırasıylarequestFullSpace()verequestHomeSpace()olarak yeniden adlandırıldı. "Ana Sayfa Alanı Modu" ve "Tam Ekran Alanı Modu"na atıfta bulunan diğer yöntemler ve belgeler de benzer şekilde güncellendi. (I45751)- Herkese açık test API'si
PanelEntityTesterveMainPanelEntityTester(I961e4) sağlar. pointSourceParamsmülkünüSoundEffectPoolComponent'a ekleme (I4a750)- Herkese açık test API'si sağlar
MovableComponentTester(I0c972) - Herkese açık test API'si
PointerCaptureComponentTester(Ic0d4f) sağlar. - Herkese açık test API'si sağlar
ActivityPanelEntityTester(I837c4) - Herkese açık test API'si
ResizableComponentTester(I0a3a4) sağlar. - Herkese açık test API'si sağlar
BoundsComponentTester.(Iefd53) - Herkese açık test API'si
SpatialMediaPlayerTester(Ia3e09) sağlar. - Herkese açık test API'si sağlar
SpatialEnvironmentTester(Icf60f) - Herkese açık test API'leri
GltfModelTesterveSceneCoreTestRule.getGltfModelTestersağlar. (I33fcb) - Herkese açık test API'si
InteractableComponentTestersağlar. (Ia7096) - Herkese açık test API'si
SurfaceEntityTestersağlar. (Ic0740) - Herkese açık test API'leri
GltfModelEntityTester,TestGltfModelNodeveTestGltfAnimationsağlar. (I72c4d) - Herkese açık test API'leri
SceneTesterveSceneCoreTestRule.sceneTestersağlar. (Ib4ec5) - Herkese açık test API'leri
PerceptionSpaceTesterveSceneCoreTestRule.perceptionSpaceTestersağlar. (Icf739) - Herkese açık test API'si
MeshEntityTestersağlar. (I63801) ImageBasedLightingAssetTesterveSceneCoreTestRule.getTesteraşırı yüklemeleri için herkese açık test API'si sağlar. (I57ec4)- Herkese açık test API'si
TextureTester(Ia865b) sağlar. - Herkese açık test API'si sağlar
PositionalAudioComponentTester(Icd96e) - Herkese açık test API'si sağlar
SpatialSoundPoolTester(Ia3531) - Herkese açık test API'si
SoundEffectPoolTester(If349a) sağlar. - Herkese açık test API'leri
ActivitySpaceTesterveSceneCoreTestRule.activitySpaceTestersağlar. (I2d5c2) - Herkese açık test API'si sağlar
SpatialWindowTester(I41837) - Herkese açık test API'si sağlar
AnchorEntityTester(I68404) - Herkese açık test API arayüzünü
SceneCoreTestRulesağlar. (Ic72d3) PixelDensitysınıfı eklendi veActivitySpace'de doğru fiziksel boyut eşlemesi için donanıma dayalı metre başına piksel oranı sağlamak üzereScene#virtualPixelDensityaracılığıyla kullanıma sunuldu. (I0e3ac)- Özel ağlar oluşturma ve oluşturma için herkese açık API'ler eklendi. (I7ad2f)
VertexLayoutAPI,VertexBufferLayoutlistesini kullanacak şekilde güncellendi. Buradaki herVertexBufferLayout, tek bir köşe arabelleğindeki özellikleri tanımlar. Bu sayede, özel adımlar ve ofsetlerle serpiştirilmiş özellikler de dahil olmak üzere daha esnek tepe noktası verisi düzenlemeleri yapılabilir. (Ic426b)- ARCore Trackable'ı Activity Space'e göre bir duruşa dönüştürmek için
MovableComponent.createTrackingMovablesağlar. (I12249) Entity.createiçindeki üst öğenin varsayılan değeri null olarak güncellendi. (Ic3145)Entity, arayüz yerine sınıf olacak şekilde güncellendi ve artık tüm Varlık türleri için temel sınıf olarak kullanılıyor. Bu değişiklik kapsamındaBaseEntitykaldırıldı. (I7fbc9)GltfModel,ExrImageveImageBasedLightingAsset, Kotlin'inusebloğunu kullanarak deyimsel kaynak yönetimine olanak tanımak için artıkAutoCloseable'ü uyguluyor. (I1ac79)- Mekansal ortam aydınlatmasını tanımlamak için
ExrImageyerineImageBasedLightingAssetsınıfı kullanıma sunuldu.ExrImageartık kullanılmıyor ve genel API'den kaldırıldı.SpatialEnvironmentPreference,ImageBasedLightingAssetkullanacak şekilde güncellendi. (I6c92a) skyboxparametresinin adını, amacını daha iyi yansıtması içinSpatialEnvironmentiçindeimageBasedLightingAssetolarak değiştirdik ve görsel gökyüzü kutusu dokularının geometri parametresine dahil edilmesi gerektiğini netleştirdik. (I24d4a)- Mekansal öğeler artık Mekansal API düzeyleri 1 ve 2'de pikselden metreye hesaplamalar için sabit bir cihaz yoğunluğu kullanıyor. Bu sayede, sistem ekran yoğunluğu değişikliklerinden bağımsız olarak tutarlı boyutlandırma sağlanıyor. (I37051)
Sürüm 1.0.0-alpha15
19 Mayıs 2026
androidx.xr.scenecore:scenecore-*:1.0.0-alpha15 yayınlandı. 1.0.0-alpha15 sürümü bu commit'leri içerir.
API değişiklikleri
Entity.dispose()artık genel API olarak kaldırıldı. Uygulamalar,dispose()öğesini Entity örneklerinde çağırmak yerineparentöğesininullolarak ayarlayarak ve bu örneklere yönelik tüm güçlü referansları temizleyerek örnekleri temizlenebilir hale getirebilir. (I396c9)SoundEffectPooladlı kullanıcınınset/clearOnLoadCompleteListeneryöntemleri silindi. Bunun yerineadd/removeLoadCompleteListenerpolitikasını kullanın. (Iae78d)- Sahnenin
set/clearSpatialVisibilityChangedListenerdeğeri,add/removeSpatialVisibilityChangedListenerile değiştirildi. (I67dff) - Tüm SceneCore
add/removeOnFooListeneryöntemleriadd/removeFooListenerolarak yeniden adlandırıldı ve adlardanOnkaldırıldı. (Ibe50b) - Aynı anda birden fazla işleyiciyi desteklemek için
AnchorEntity.setOnOriginChangedListenerveAnchorEntity.setOnStateChangedListeneryöntemlerinin yeriniadd/removeFooListeneryöntemleri aldı. (I13749) AnchorEntity.State.TIMEDOUT,State.TIMED_OUTolarak yeniden adlandırıldı. (Id2b8d)- Bileşen API'si, güvenliği ve genişletilebilirliği artırmak için yeniden düzenlendi.
Componentartık soyut bir sınıf. Doğrudan aramaları önlemek içinonAttach()veonDetach()yöntemleri artıkprotected. Bileşen yaşam döngülerini yönetmek için lütfenEntity.addComponent()veEntity.removeComponent()kullanın. (Id04e8) - SceneCore'un
PlaneSemanticTypePlaneOrientationsabitleri, Ints'ten özel türlere taşındı. Bu sabitlerinANYsabitleri kaldırılacak. Bunun yerine, istemciler istenen tüm sabitleri açıkça numaralandırmalı veya yeni.ALLdeğiştirilemez sabitleri kullanmalıdır.AnchorEntityfabrika yöntemi artık tek bir değer yerine bu türlerin bir kümesini kabul ediyor. (Ib1033) - Deneysel Custom Mesh API'ye iskelet animasyonu (kaplama) desteği eklendi. Geliştiriciler artık
MeshEntityoluştururkenboneCountbelirterek özel ağları canlandırabilir veMeshEntity.setBoneTransforms()kullanarak animasyonu gerçek zamanlı olarak güncelleyebilir. (Id8ba2, b/496692490) - Deneysel
CustomMeshAPI'si kullanıma sunuldu. Geliştiriciler artıkCustomMesh,MeshBufferveMeshEntitykullanarak sahnelerinde 3D geometriyi programatik olarak oluşturup işleyebilir. (I94617) androidx.xr.scenecore.SpatializerConstants.SourceType.SOURCE_TYPE_SOUND_FIELDkaldırıldı. Bunun yerineSourceType.SOUND_FIELDpolitikasını kullanın. (Ia68b9)- Üç boyutlu ses bileşenleri ekleme:
PositionalAudioComponent,SoundEffectPoolComponentveSoundFieldAudioComponent(Ieda89) AnchorEntity.getAnchor,AnchorEntity.anchorile değiştirildi ve artıkAnchorEntity, ARCoreAnchor'den (I5c7c8) oluşturulduğundaAnchordöndürecek.ActivityPanelEntity,GltfModelEntity,GroupEntity,PanelEntityveSurfaceEntityfabrika yöntemlerindekiparentparametresinin varsayılan değeriActivitySpace'dannull'ye değiştirildi. Geliştiricilerin artık bir öğeyi sahne grafiğine eklemek ve görünür hale getirmek için örnekleme sırasında veyaEntity.parent = ...(Ie7cc1) aracılığıyla üst öğesini açıkça ayarlaması gerekir.
Hata düzeltmeleri
SceneCoreartıkEntityörnekleri hayalet olarak erişilebilir hale geldiğinde otomatik olarak geri alır. Böylece geliştiricilerin kaynakları boşaltmak içindispose()'yi açıkça çağırmasına gerek kalmaz. Bir [Entity] örneğinin düzgün şekilde geri alınmasını sağlamak için geliştiriciler:parentözelliğininullolarak ayarlayarak sahne grafiğinden ayırın.- Kodlarındaki örnekle ilgili tüm güçlü referansları bırakın.
- Özel varlık türleriyle ilgili not: Üst öğe atanamayan varlıklar (ör.
AnchorEntity) için geliştiriciler, örnek kullanımdayken güçlü bir referans sağlamalıdır. Tüm referanslar serbest bırakılırsa bu örnekler hayalet olarak erişilebilir hale gelir ve otomatik olarak geri alınır. (I83fe4)
- Tüm
SceneCorekitaplıkları için ProGuard keep kuralları daraltıldı. (I98447)
Bilinen Sorunlar
- Etkin olmayan bir
ExoPlayerörneği içeren birEntity'yePositionalAudioComponenteklemek kilitlenmeye neden olur. ExoPlayer durdurulmuşkensetPointSourceParamscihazını aramayın veya üç boyutlu ses bileşenlerini takıp çıkarmayın. Bu sorun, sonraki sürümde düzeltilecektir.
Sürüm 1.0.0-alpha14
6 Mayıs 2026
androidx.xr.scenecore:scenecore-*:1.0.0-alpha14 yayınlandı. 1.0.0-alpha14 sürümü bu commit'leri içerir.
API değişiklikleri
TrackingStateveVpsAvailabilityResult,androidx.xr.arcore package'ye taşındı.androidx.xr.runtime'deki türler artık kullanımdan kaldırıldı. (Ic7930, b/480462213)Plane.Type,PlaneTypeolarak yeniden adlandırıldı. (I8c90c, b/482675376)Plane.Label,PlaneLabelolarak yeniden adlandırıldı. (Ic6b67, b/482675376)androidx.xr.runtime.FieldOfViewdesteği sonlandırıldı. Bunun yerineandroidx.xr.runtime.math.FieldOfViewpolitikasını kullanın. (Ia01a0, b/480233045)Matrix4.pose,Matrix4.toPose()olarak yeniden adlandırıldı. Poz özelliği artık kullanımdan kaldırıldı. (I329b4, b/493383490)HandJointTypeenum değerleri yeniden adlandırıldı. (Ifbc83, b/482670596)- Özel
Componentuygulamalarına izin vermek içinComponent.onAttachveonDetachöğelerini herkese açık API olarak kullanıma sunun. (I0ca1f) - Üç boyutlu ses bileşenleri ekleme (I39ddd, b/489421980, b/436642086, b/436642499)
- Öğeyi
PointSourceParamskoleksiyonundan kaldırın. Bunun yerine, öğe doğrudanSpatialAudioTrack,SpatialSoundPoolveSpatialMediaPlayerile birlikte kullanılır (Ib3685, b/489421980, b/436634048). DeviceTrackingMode.LAST_KNOWN,SPATIAL_LAST_KNOWNolarak yeniden adlandırıldı (kullanımdan kaldırılmış bir geri dönüşle), 3DoF izleme içinINERTIAL_LAST_KNOWNeklendi veTRACKING_DEGRADED,TrackingState'ye eklendi. (Ie661c, b/445466590)GroupEntitydesteği sonlandırıldı. Yalnızca temel Entity işlevine sahip bir Entity'ye sahip olmak içinEntity.createişlevini çağırın. Bu işlev, bir Entity arayüzü döndürür. (I4c450, b/473867483)XrLogAPI'si eklendi. JetpackXR'de günlük kaydını etkinleştirmek içinXrLog.isEnableddeğerinitrueolarak ayarlayın ve günlük düzeyini ayarlamak içinXrLog.Leveldeğerini kullanın. (I76a1f, b/463460895, b/487378441)
Hata düzeltmeleri
Scene.keyEntityartık varsayılan olarakmainPanelEntitydeğerini kullanıyor. (I6a3ef)
Sürüm 1.0.0-alpha13
25 Mart 2026
androidx.xr.scenecore:scenecore-*:1.0.0-alpha13 yayınlandı. 1.0.0-alpha13 sürümü bu commit'leri içerir.
API değişiklikleri
Session.createöğesindenunscaledGravityAlignedActivitySpaceişareti kaldırıldı.ActivitySpaceartık her zaman ölçeklendirilmemiş ve yer çekimiyle hizalanmış durumda. (If6f11, b/458173423)- Desteği sonlandırılan
setMaterialOverrideveclearMaterialOverrideişlevleri, artık ayrı ayrıGltfModelNodeolarak adlandırılanGltfModelEntity'dan kaldırıldı. (I2e5d2) PanelEntity'yetransformPixelCoordinatesToLocalPositionvetransformNormalizedCoordinatesToLocalPositioneklendi. Ayrıca,Vector3konumları yerine pozlar döndüren eşdeğer deneysel yöntemler kaldırıldı. (Ib6960, b/460123106, b/458333591)GltfAnimation'daki glTF animasyonlarını kontrol etmek içinSceneCoreAPI'leri eklendi. (I2c172, b/466065486, b/465819070, b/465818617)ScenePose.activitySpacePose,ScenePose.poseInActivitySpaceolarak yeniden adlandırıldı (I8f175, b/427822261)- Added Scenecore Projected Runtime Implementation (I9c4ab, b/476440158)
- Ana paneldeki öğe yeniden boyutlandırılırken
ActivitySpacebaşlangıç noktasına yeniden konumlandırılabilir. Paneli manuel olarak veya programatik olarak orijinal konumuna geri taşımanın dışında bir geçici çözüm yoktur. Bu hata, gelecekteki bir sürümde düzeltilecektir. (b/489427007). - Bazı durumlarda,
MovableComponentseçeneğiSurfaceEntityve diğer Panel dışı öğe türleri için görünmeyebilir.MovableComponent.sizedeğerinin açıkça ayarlanması, fırsatın görünmesine neden olur. Bu hata, gelecekteki bir sürümde düzeltilecektir (b/490983469).
Sürüm 1.0.0-alpha12
25 Şubat 2026
androidx.xr.scenecore:scenecore-*:1.0.0-alpha12 yayınlandı. 1.0.0-alpha12 sürümü bu commit'leri içerir.
Bilinen Sorunlar
- Sabitlenmiş öğeler, birkaç saniye sonra sabitlenmiş konumlarından etkinlik alanı başlangıcına geçebilir.
SurfaceEntityörneği oluştururken uygulamalar kilitlenebilir. Bu sorun,androidx.xr.scenecore:scenecore-*:1.0.0-alpha13ve sonraki sürümlerde giderilmiştir. Etkilenen uygulamalar en yeni sürümlere güncellenmelidir.
API değişiklikleri
ActivitySpace.addOnSpaceUpdatedListenerveActivitySpace.removeOnSpaceUpdatedListener,addOnOriginChangedListenerveremoveOnOriginChangedListenerolarak yeniden adlandırıldı.AnchorEntity.setOnSpaceUpdatedListener,setOnOriginChangedListenerolarak yeniden adlandırıldı. (I5d8fb)FakeEntity'ya herkese açık ad özelliği eklendi veFakePanelEntity'da görünüm herkese açık hale getirildi. (Ifa1f9)
Hata düzeltmeleri
- Daha yeni sistem görüntülerinde (I57d04) sabit piksel yoğunluğu hesaplamaları
Sürüm 1.0.0-alpha11
28 Ocak 2026
androidx.xr.scenecore:scenecore-*:1.0.0-alpha11 yayınlandı. 1.0.0-alpha11 sürümü bu commit'leri içerir.
API değişiklikleri
PerceivedResolutionResult.InvalidCameraView,PerceivedResolutionResult.InvalidRenderViewpointolarak yeniden adlandırıldı. Bunun nedeni,getPerceivedResolutionAPI'lerinin artıkCameraViewScenePoseyerine ARCore'unRenderViewpointAPI'sini kullanmasıdır. Bu ad, yeni uygulamayı daha iyi yansıtıyor. (I8c967, b/446989745, b/419311998)PanelEntity/SurfaceEntity.getPerceivedResolutionyöntemleri artık geliştirici tarafından sağlanan birRenderViewpointbağımsız değişkenini alıyor. Daha önce, çalışma zamanı algılanan çözünürlük hesaplamasında kullanılanRenderViewpointdeğerini rastgele seçiyordu. (I8c967, b/446989745, b/419311998)SpatialUser,ScenePose.HeadveScenePose.CameraViewkaldırıldı. Bu API'lerin işlevleri, Jetpack XR için ARCore'dakiArDeviceveRenderViewpointAPI'leri tarafından karşılanır. Geliştiriciler, kullanıcının kafasına veya sol ya da sağ gözüne karşılık gelen birScenePoseelde etmek için ARCore API'leri kullanılarak elde edilen uygun pozla birliktePerceptionSpace.getScenePoseFromPerceptionPosekullanabilir. (I2f69c, b/446989745)
Sürüm 1.0.0-alpha10
3 Aralık 2025
androidx.xr.scenecore:scenecore-*:1.0.0-alpha10 yayınlandı. 1.0.0-alpha10 sürümü bu commit'leri içerir.
API değişiklikleri
PanelEntityiçintransformPixelCoordinatesToPosevetransformNormalizedCoordinatesToPoseeklendi (I462b3)SceneCoreiçindeki mantığa dayalı olarakSceneCoreRuntime'a Utils adlı yardımcı sınıf eklendi (I570b9).
Hata düzeltmeleri
- Oturum yok edildiğinde ve
SpatialModeChangeEventalındığında meydana gelebilecek olası kilitlenme sorunu düzeltildi (If44e8). - Bir Etkinlikten ayrılırken veya Etkinliğe yeniden girerken
IllegalStateExceptionatılmasına neden olabilen hata düzeltildi. (Ibff1c)
Sürüm 1.0.0-alpha09
19 Kasım 2025
androidx.xr.scenecore:scenecore-*:1.0.0-alpha09 yayınlandı. 1.0.0-alpha09 sürümü bu commit'leri içerir.
Yeni Özellikler
- Algı alanı başlangıç pozisyonunun ve algı alanı başlangıcına göre bir pozisyonun bileşimini temsil eden bir
ScenePosealmak için bir API ekler. (I5b50a) getGravityAlignedPoseişlevi eklendi. Yer çekimiyle hizalanmış poz, dönmenin eğim ve yuvarlanma değerlerini yoksayar. (I5ae21)AnchorEntity.Statesabit türleri, Ints'den State alt türlerine değiştirildi. (Ib0c49)- Varlık arayüzüne
getChildren()eklendi.MainPanelEntityyaşam döngüsü güncellendi. (Ia69d6)
API değişiklikleri
PointerCaptureComponent.PointerCaptureStatesabit türü, Ints'denPointerCaptureStatealt türlerine değiştirildi. (Ic888a)Scene.spatialCapabilitiesartık Int alanı yerineSet<SpatialCapability>türünde.SpatialCapabilitysabitlerinin adı değiştirildi. (I9c109)SurfaceEntitysabit türleri yeniden adlandırıldı ve Ints'denSurfaceEntityalt türlerine değiştirildi. (I419ed)SpatializerConstantsabit türleri yeniden adlandırıldı ve Ints'denSpatializerConstantalt türlerine değiştirildi. (Ia0e18)TextureSamplersabit türleri yeniden adlandırıldı ve Ints'denTextureSampleralt türlerine değiştirildi. (I44078)SpatialVisibilitysabit türü, Ints'denSpatialVisibilityalt türlerine değiştirildi. (I70739)ResizeEvent.ResizeStatesabit türleri yeniden adlandırıldı ve Ints'denResizeStatealt türlerine değiştirildi. (I384d5)InputEventsabit türlerinin adı değiştirildi ve türleri, kapsayan türlerinden devralınacak şekilde Ints'ten değiştirildi. (I82817)GltfModelEntity.AnimationStatesabit türü, Ints'denAnimationStatealt türlerine değiştirildi. (I24f4e)AlphaModesabit türleri yeniden adlandırıldı ve Ints'denAlphaModealt türlerine değiştirildi. (I27b56)Spacesabit türü, Ints'den Space alt türlerine değiştirildi. (I9255b)ScenePose.hitTestve ilgili yöntemler artık kesişim bulunamadığında boşhitPositioniçeren birHitTestResultyerinenulldöndürüyor.HitTestResult.hitPositionartık boş değer içerebilir değil. (I1400a)ActivityPosereferanslarıScenePoseolarak değiştirildi. (I7fe43)
Sürüm 1.0.0-alpha08
22 Ekim 2025
androidx.xr.scenecore:scenecore-*:1.0.0-alpha08 yayınlandı. 1.0.0-alpha08 sürümü bu commit'leri içerir.
API değişiklikleri
ActivityPanelEntity.moveActivity,transferActivityolarak yeniden adlandırıldı (I273c5, b/430332856)
Hata düzeltmeleri
:xr:scenecore:scenecore-spatial-renderingve:xr:scenecore:scenecore-spatial-core,:xr:scenecore:scenecore'nin (I6ab65, b/447000520) uygulama bağımlılığı olarak eklendi- Oturum yok edildikten sonra
session.sceneerişilirse istisna oluşturulur. (I77e6f)
Sürüm 1.0.0-alpha07
24 Eylül 2025
androidx.xr.scenecore:scenecore:1.0.0-alpha07, androidx.xr.scenecore:scenecore-guava:1.0.0-alpha07 ve androidx.xr.scenecore:scenecore-testing:1.0.0-alpha07 yayınlandı. 1.0.0-alpha07 sürümü bu commit'leri içerir.
API değişiklikleri
fixedAspectRatio,isFixedAspectRatioEnabledolarak yeniden adlandırıldı ve Boole özelliği haline getirildi (I5c4e8, b/440588971)ScenecoreSahteler artıkxr:scenecore:scenecore-testingmodülünde yer alıyor. (Idd951)shouldAutoHideContent,isAutoHideContentWhileResizingEnabled,shouldAlwaysShowOverlayveisAlwaysShowOverlayEnabledolarak yeniden adlandırıldı (I97c36, b/432335421)- Okunabilirliği artırmak için
SceneCoreTextureSamplersabitleri güncellendi. Örneğin,TextureSampler.MinFilter.LINEARartıkTextureSampler.MIN_FILTER_LINEAR(Ib159c) olarak kullanılıyor. - Sahnenin
setKeyEntitybelirleyicisi,keyEntitydeğişkeniyle birleştirildi.keyEntitydeğeriniAnchorEntitygibi taşınamayan bir Varlık olarak ayarlamak, boole değeri false döndürmek yerineIllegalArgumentExceptionoluşturur. (I62080, b/428721695, b/422215745) - Sahnenin
SpatialModeChangeListenerdeğişkeni,setSpatialModeChangedListenerile değiştirildi.SpatialModeChangedListeneryerineConsumer<SpatialModeChangeEvent>alır.setSpatialModeChangedListenerartık isteğe bağlı olarak bir Executor alabilir. (I62080, b/428721695, b/422215745) bundleparametresiActivityPanelEntity.startActivityöğesinden kaldırıldı (I64344, b/430332856, b/430333040)SpatializerConstants.SOURCE_TYPE_BYPASS,SpatializerConstants.SOURCE_TYPE_DEFAULTolarak yeniden adlandırıldı. (Ifc7fe, b/422215565)SpatialSoundPool.PLAY_FAILEDsabiti eklendi. (Ifc7fe, b/422215565)SpatialSoundPool.playyöntemlerine varsayılan bağımsız değişkenler eklendi. (Ifc7fe, b/422215565)SpatialAudioTrackBuilderiçindeki ayarlayıcıların döndürülen değeri kaldırıldı. (Ifc7fe, b/422215565)- SurfaceEntity değişiklikleri
SurfaceEntity.CanvasShape,Shapeolarak yeniden adlandırıldıSurfaceEntity.CanvasShape.Vr180Hemisphere,Hemisphereolarak yeniden adlandırıldıSurfaceEntity.CanvasShape.Vr360Sphere,Sphereolarak yeniden adlandırıldıSurfaceEntity.EdgeFeatheringParams.SmoothFeather,RectangleFeatherolarak yeniden adlandırıldıSurfaceEntity.EdgeFeathingParams.SolidEdge,NoFeatheringolarak yeniden adlandırıldıSurfaceEntity.ContentSecurityLevel,SurfaceProtectionolarak yeniden adlandırıldıSurfaceEntity.ContentSecurityLevel.{values},SURFACE_PROTECTION_önekini ekledi.SurfaceEntity.SuperSampling.{$values},SUPER_SAMPLING_önekini eklediSurfaceEntity.StereoMode.{values},STEREO_MODE_önekini eklediSurfaceEntity.ContentColorMetadata.maxCLL,maxContentLightLevelolarak yeniden adlandırıldı (I7eb5f, b/422216050, b/427529950)
launchActivity,startActivityolarak yeniden adlandırıldı (I7db90, b/430332856)Scene.activitySpaceRootkaldırıldı. Bunun yerineScene.activitySpacepolitikasını kullanın. (I05ee8, b/378706624, b/422215745)configureBundleForFullSpaceModeLaunchveconfigureBundleForFullSpaceModeLaunchWithEnvironmentInheritedsırasıylacreateBundleForFullSpaceModeLaunchvecreateBundleForFullSpaceModeLaunchWithEnvironmentInheritedolarak yeniden adlandırıldı ve üst düzey yöntemler olarak LaunchUtils.kt dosyasına taşındı. İlk parametre olarak Session'ı alır (I64a2c, b/437186050).GroupEntityfabrikası artık Entity yerineGroupEntitytürünü döndürüyor. (I66042)
Hata düzeltmeleri
- Bir öğe örneği, Dispose'dan sonra kullanıldığında
IllegalStateExceptionoluşturun. (I90990, b/427314036, b/432063442)
Sürüm 1.0.0-alpha06
13 Ağustos 2025
androidx.xr.scenecore:scenecore:1.0.0-alpha06, androidx.xr.scenecore:scenecore-guava:1.0.0-alpha06 ve androidx.xr.scenecore:scenecore-testing:1.0.0-alpha06 yayınlandı. 1.0.0-alpha06 sürümü bu commit'leri içerir.
API değişiklikleri
SceneCore'nınBaseEntityveBaseScenePoseAPI'lerindeki kısıtlamaları kaldırın (88c0ff6)
Sürüm 1.0.0-alpha05
30 Temmuz 2025
androidx.xr.scenecore:scenecore-guava:1.0.0-alpha05, androidx.xr.scenecore:scenecore-testing:1.0.0-alpha05 ve androidx.xr.scenecore:scenecore:1.0.0-alpha05 yayınlandı. 1.0.0-alpha05 sürümü bu commit'leri içerir.
Yeni Özellikler
- Perceived Resolution API, Panel Entities ve
SurfaceEntities'ye eklendi. (I118f6) PerceivedResolutionHSM'deki etkinliğin ana panelinin algılanan çözünürlüğünü izlemek için Scene.kt'ye geri arama yöntemleri eklendi. (I58084)SurfaceEntity- Oluşturma sırasında süper örnekleme isteğinde bulunma uygulaması için destek eklendi. Bu, uygulamaların kenar yumuşatma için süper örnekleme filtresi kullanmasına olanak tanır. (I06913)recommendedContentBoxInFullSpaceözelliğiActivitySpaceöğesine eklendi. Tam Ekran Alanı modundayken içeriğin yerleştirileceği önerilen bir kutu döndürür. (I4cd6f)- Taşınabilir değiştirici için, sabitlemeye olanak tanıyan aşırı yüklenmiş oluşturucu sağlandı. (Ic0c70)
API değişiklikleri
Bu sürümde SceneCore'da kapsamlı API değişiklikleri yapıldı. Çeşitli sınıfların adı değiştirildi ve/veya farklı modüllere taşındı. Ayrıca, çoğu getter/setter yöntemi Kotlin özellikleri ile değiştirildi. İlk beta sürümümüz yayınlanana kadar gelecekte API'de uyumluluğu bozacak değişiklikler olacağını tahmin etsek de bu değişiklikler o kadar rahatsız edici veya çok sayıda olmayacak.
- Aşağıdaki sınıflar ve arayüzler yeniden adlandırıldı ve/veya taşındı:
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özelliklerinin bir dizi ayarlayıcısı,SceneCoreistemcileri tarafından değiştirilmesi amaçlanmadığı için özel olarak ayarlandı:activitySpace,activitySpaceRoot,mainPanelEntity,perceptionSpace,spatialCapabilities,spatialEnvironmentvespatialUser. (I2f506)- Varlıkta:
get/setParent(),setContentDescriptionözellikleri değiştirildi.Entity.is/setHidden()desteği sonlandırıldı, bunun yerineEntity.is/setEnabledkullanılıyor. (Ibc4c6) androidx.xr.scenecore.BasePanelEntitysınıfı kaldırıldı. Bunun yerine doğrudanPanelEntitysınıfını kullanın.PanelEntityiçin alıcılar ve ayarlayıcılar özelliklerle değiştirildi.PanelEntity.sizeözelliği,Float3dSizeolan değerdenFloat2dSizedeğerine değiştirildi. Desteği sonlandırılanandroidx.xr.scenecore.PanelEntity.getPixelDimensionsyöntemi kaldırıldı. Bunun yerinegetSizeInPixelsyöntemini kullanın. (Icc174)androidx.xr.scenecore.OnSpaceUpdatedListener,Runnableile değiştirildi. (I19308)SpatialUser.getCameraViews(), bir mülkle değiştirildi. (Ib0cc5)ExrImageveGltfModel:içincreateyöntemleri askıya alma işlevleri olarak değiştirildi; oluşturma parametreleri,StringyerineUriveyaPathkabul edecek şekilde değiştirildi. (Id8883) (I0d247), (I25706)SpatialEnvironment.requestFullSpaceModeveSpatialEnvironment.requestHomeSpaceMode, Sahne'ye taşındı. Örneğin,session.scene.spatialEnvironment.requestFullSpaceMode()yerinesession.scene.requestFullSpaceMode()kullanın.addOnPassthroughOpacityChangedListenerveaddOnSpatialEnvironmentChangedListenerartık isteğe bağlı Executor'ları kabul eden geçersiz kılma işlemlerine sahip. (I12fe0) (I6b21e)- Desteği sonlandırılan aşağıdaki
SpatialEnvironmentyöntemleri kaldırıldı:togglePassthrough,setPassthrough,setPassthroughOpacity,getPassthroughMode,getPassthroughOpacity,setSkyboxvesetGeometry. Ayrıca, kullanımdan kaldırılanSpatialEnvironment.PassthroughMode(I927bd) sınıfı da kaldırıldı (I927bd) (I927bd). - Aşağıdaki
SpatialEnvironmentalıcıları ve ayarlayıcıları Kotlin özellikleriyle değiştirdik:getCurrentPassthroughOpacity(),get/setPassthroughOpacityPreference(),get/setSpatialEnvironmentPreference(),isSpatialEnvironmentPreferenceActive()(I33a7b) (Ie06e2) (Ie06e2) SpatialEnvironmentPreference.preferredPassthroughOpacitytürüFloat?Floatolarak değiştirildi. Artık boş değerleri kabul etmiyor. Bunun yerine, opaklık tercihi olmadığını belirtmek içinSpatialEnvironment.NO_PASSTHROUGH_OPACITY_PREFERENCEkullanılır. (I40107)- Oluşturma yönteminde
windowBoundsPxparametresipixelDimensions, türü ise Rect'tenIntSize2dolarak güncellendi. (I1926e) SpatialEnvironmentoluşturucusu artık dahili (I75a51)SpatialPointerIconNoneveSpatialPointerIconCirclesınıfları, yardımcı nesnelerSpatialPointerIcon.NONEveSpatialPointerIcon.CIRCLEile değiştirildi (I416d2).SpatialPointerComponentiçindekiSpatialPointerIconartık boş değer içermez. Sistem varsayılanı işaretçi simgesinin kullanılması gerektiğini belirtmek için null yerineSpatialPointerIcon.DEFAULTdeğerini kullanın. (I416d2)androidx.xr.scenecore.AnchorEntity.getState(), salt okunur bir özellik ile değiştirildi. Daha anlaşılır olması içinAnchorEntity.create()yöntemindeki parametrelerin adı değiştirildi.AnchorEntity'nın işleyici ayarlama ve ekleme yöntemlerinde, sondaki lambda'ların etkinleştirilmesi için işleyici son bağımsız değişkene taşındı.androidx.xr.scenecore.OnStateChangedListener,AnchorEntityiçinConsumer<AnchorEntity.State>ile değiştirildi. (I472e0)GltfModelEntity.getAnimationState()artık bir mülk. (I10b29)ActivitySpace.getBounds(), bir mülkle değiştirildi.ActivitySpace.addBoundsChangedListener,ActivitySpace.addOnBoundsChangedListenerolarak yeniden adlandırıldı.ActivitySpace.setOnSpaceUpdatedListener, ekleme/kaldırma yöntemleriyle değiştirildi. (I4c956)AnchorPlacement: planeTypeFilter,anchorablePlaneOrientationsolarak,planeSemanticFilteriseanchorablePlaneSemanticTypesolarak yeniden adlandırıldı.AnchorEntityveyaActivitySpaceöğesineMovableComponenteklemek yanlış değerini döndürür,MoveListener,EntityMoveListener shouldDisposeParentAnchorolarak yeniden adlandırıldı,disposeParentOnReAnchor systemMovable,creeateCustomMovable,createSystemMovablevecreateAnchorablelehinecreateişlevinden kaldırıldı (If11c4)SurfaceEntity.featherRadiusX/Ykaldırılır veEdgeFeatheringParamssınıfı kavramı eklenir. (Ic78fc)PanelEntity.enablePanelDepthTest()yöntemi,panelClippingConfigözelliğiyle değiştirildi. Derinlik testini etkinleştirmek içinScene.panelClippingConfig = PanelClippingConfig(isDepthTestEnabled = true), devre dışı bırakmak içinPanelClippingConfig(isDepthTestEnabled = false)olarak ayarlayın. (I0cbe0)Scene.mainPanelEntityartıkPanelEntityyerineMainPanelEntitytüründe (I7125a)- Scene sınıfının
setFullSpaceModeyöntemiconfigureBundleForFullSpaceModeLaunch,setFullSpaceModeWithEnvironmentInheritedyöntemi iseconfigureBundleForFullSpaceModeLaunchWithEnvironmentInheritedolarak yeniden adlandırıldı. (I0cbe0) (I0cbe0) SpatialVisibility'nın UNKNOWN, OUTSIDE_FOV, PARTIALLY_WITHIN_FOV ve WITHIN_FOV değerleri sırasıyla SPATIAL_VISIBILITY_UNKNOWN, SPATIAL_VISIBILITY_OUTSIDE_FIELD_OF_VIEW, SPATIAL_VISIBILITY_PARTIALLY_WITHIN_FIELD_OF_VIEW ve SPATIAL_VISIBILITY_WITHIN_FIELD_OF_VIEW olarak yeniden adlandırıldı (Ie7e8c).SpatialVisibilitysınıfı, sabit tamsayı değerlerine sahip genel nesneyle değiştirildi.setSpatialVisibilityChangedListenerartıkConsumer<SpatialVisibility>yerineConsumer<Int>kabul ediyor (Ie7e8c)PointerCaptureComponentsabiti yeniden adlandırıldı vePointerCaptureComponent.PointerCaptureStatenesnesine taşındı (I9c7ac)PointerCaptureComponents' StateListener,Consumer<Int>ile değiştirildi. (I9c7ac)InputEventListener,Consumer<InputEvent>ile değiştirildi (I9c7ac)setPreferredAspectRatio, Scene sınıfındanSpatialWindownesnesine taşındı ve ilk parametre olarak Session'ı alıyor. (I7b717)Entity.setHidden(),Entity.setEnabled()ile,Entity.isHidden()iseEntity.isEnabled()ile değiştirildi.setHidden(false),setEnabled(true)veisHidden() == !isEnabled()değerlerine eşittir. (Icf0de)Entity.contentDescriptiontürü, dize olarakCharSequencedeğiştirildi. (Ie59be)Session.createveSession.configureartıkSessionCreatePermissionsNotGrantedveyaSessionConfigurePermissionsNotGranteddöndürmek yerine yeterli izin verilmediğindeSecurityExceptionhatası veriyor. (I7c488)ResizableComponent.createartıkConsumer<ResizeEvent> ResizeEventListenerile değiştirildi.Consumer<ResizeEvent> ResizableComponent.size,ResizableComponent.affordanceSize ResizableComponent.minimumSizeolarak yeniden adlandırıldı.ResizableComponent.minimumEntitySize ResizableComponent.maximumSize,ResizableComponent.maximumEntitySizeolarak yeniden adlandırıldı.ResizableComponent.autoHideContent,ResizableComponent.shouldAutoHideContentolarak yeniden adlandırıldı.ResizableComponent.forceShowResizeOverlay,ResizableComponent.shouldAlwaysShowOverlayolarak yeniden adlandırıldı (I97a2d)minSDK,androidx.xr.scenecoreveandroidx.xr.composeiçin 24'e düşürüldü. XR paketleri, çalışma zamanında API 34'ü gerektirir. (I17224)- Tüm Jetpack XR paketlerindeki
RequiresApi(34)kısıtlaması kaldırıldı. Jetpack XR şu anda yalnızca API düzeyi 34 ve üzeri olan cihazlarda kullanılabildiğinden bu kısıtlama gereksizdi. (Iae0f8) - Ana
SceneCoreyapısı (xr:scenecore:scenecore) yalnızca Kotlin tarzı eş zamansız API'ler içerir. Java geliştiriciler, uyumlu API'lere erişmek içinxr:scenecore:scenecore-guavakitaplığını kullanabilir. (If221b) - Kotlin 2.0 ile yayınlanan projelerin kullanılabilmesi için KGP 2.0.0 veya daha yeni bir sürüm gerekir (Idb6b5)
- Bu kitaplık artık tür kullanımı olan JSpecify nullness ek açıklamalarını kullanıyor. Kotlin geliştiricileri, doğru kullanımı zorunlu kılmak için aşağıdaki derleyici bağımsız değişkenini kullanmalıdır:
-Xjspecify-annotations=strict(bu, Kotlin derleyicisinin 2.1.0 sürümünden itibaren varsayılan değerdir) (Ia8420) ListenableFuturedöndüren tüm eş zamansız yöntemler, Kotlin'in askıya alma işlevleriyle değiştirildi. Kotlin'in askıya alma işlevleri yerineListenableFuturetabanlı eş zamansız yöntemler kullanmak isteyen Java geliştiricilerin artık:xr:scenecore-scenecore-guava'deki uzantı işlevlerini kullanması gerekiyor. Örneğin,GuavaExrImage, Guava'ya eşdeğer ExrImage eş zamansız işlevlerini,GuavaScenePose, Guava'ya eşdeğerScenePoseeş zamansız işlevlerini,GuavaGltfModeliseGuava-equivalent GltfModeleş zamansız işlevlerini içerir. (If7283) (I0af60) (If7283) (Ia8515) (I4efdf) (I54bbf) (I3467a) (I82a33)
Hata düzeltmeleri
- Küçültülmüş istemcilerde
AbstractMethodError'i önlemek için güncellenmiş Jetpack XR ScenecoreProGuardkuralı. (I91a01) - Jetpack XR için Proguard küçültme özelliğini destekleyen ek düzeltmeler
SceneCore(I4f47e) - Sistemden döndürülen
hitPositiondeğeri boşsa (null)InputEventöğesinin HitInfo'sundakihitPositiondeğerinin kilitlenmesine neden olabilecekInteractableComponenthatası düzeltildi (I7a695). - Yapılandırma *Modu değerleri, davranışlarını yansıtacak şekilde yeniden adlandırıldı. (I6d247)
SceneCoreTestApp'te FOV veHitTestile ilgili sorunlar düzeltildi. (I2c51e)SpatialCapabilities.hasCapability()işlevinde, bit düzeyinde OR ile iletilen özelliklerden herhangi biri doğruysa yalnızca tüm özellikler doğru olduğunda doğru değerini döndürmesi gerekirken doğru değerini döndürmesine neden olan hata düzeltildi. (I2cd40)SurfaceEntity.StereoMode.TOP_BOTTOM, üstteki harita sol gözde, alttaki harita ise sağ gözde olacak şekilde güncellendi. (I4ae68)
Sürüm 1.0.0-alpha04
7 Mayıs 2025
androidx.xr.scenecore:scenecore:1.0.0-alpha04 ve androidx.xr.scenecore:scenecore-testing:1.0.0-alpha04 yayınlandı. 1.0.0-alpha04 sürümü bu commit'leri içerir.
Yeni Özellikler
- Geriye doğru işleme artık yerleştirilmiş etkinlikler içermeyen panel öğelerinde çalışacak. Geriye doğru işleme özelliğinin çalışması için android manifestinde
android:enableOnBackInvokedCallback= "true"belirtmeniz gerekir. StereoSurfaceEntityartık MULTIVIEW_LEFT_PRIMARY ve MULTIVIEW_RIGHT_PRIMARY olmak üzere iki yeniStereoModedeğeriyle MV-HEVC oynatmayı destekliyor.PanelEntity.setSizevePanelEntity.getSizeartık üst alandaki boyutları döndürüyor.Entity.setPose,Entity.getPose,Entity.setScale,Entity.getScale,Entity.setAlphaveEntity.getAlphaartık farklı alanlara göre değerlerin alınmasına/ayarlanmasına olanak tanıyan yeni bir parametre (relativeTo) alıyor. Desteklenen değerler üst, etkinlik ve gerçek dünya alanlarıdır. Bu parametrenin varsayılan değeri üst öğedir.- Sahne içeriğinin kullanıcının görüş alanının içine veya dışına taşındığı zamanı izlemek için
SessionExt.kt'ya Spatial Visibility Callback (Uzamsal Görünürlük Geri Çağırma) uzantı yöntemleri eklendi. setPointSourceParams,SpatialAudioTracköğesine eklendi. Bu sayede, parça oluşturulduktan sonra parametrelerin güncellenmesine olanak tanındı.ScenecoreAPI'lerine referanslar içeren yeni bir sınıf (Sahne) eklendi. Sahne, Oturum'un bir uzantı özelliği olarak erişilebilir.SessionExtiçindeki işlevler Sahne'ye taşındı. Bu nedenle, içe aktarmaların ayarlanması gerekecek. Örneğin,SessionExt.getScene(session).addSpatialCapababilitiesChangedListener-SessionExt.addSpatialCapabilitiesChangedListener.ActivityPose.hitTestAsynceklendi. Bu sayede sanal içeriklere karşıhitTestkullanılabiliyor.- Yeni bileşen türü
SpatialPointerComponenteklendi. Bu tür, müşterilerin işaretçi için oluşturulan simgeyi belirtmesine veya simgeyi devre dışı bırakmasına olanak tanır. Bu Bileşen şu anda yalnızcaPanelEntityörneğine eklenebilir. - Yeni
PanelEntityfabrika işlevi kullanıma sunuldu. Bu işlev, panel boyutlarını metre veya piksel cinsinden alır. Panel için iki boyut türü parametresi alan eskiPanelEntityfabrika kaldırıldı.
API değişiklikleri
- Tüm Jetpack XR paketlerindeki
RequiresApi(34)kısıtlaması kaldırıldı. Jetpack XR şu anda yalnızca API düzeyi 34 ve üzeri olan cihazlarda kullanılabildiğinden bu kısıtlama gereksizdi. (Iae0f8) - Kotlin 2.0 ile yayınlanan projelerin kullanılabilmesi için KGP 2.0.0 veya daha yeni bir sürüm gerekir (Idb6b5)
PermissionHelpersınıfı kaldırıldı.PanelEntity.getPixelDensitykullanımdan kaldırıldı.PanelEntity.setPixelDimensionsvePanelEntity.getPixelDimensionkaldırıldı, yerlerinesetSizeInPixelsvegetSizeInPixelseklendi.Entity.getActivitySpaceAlphakaldırıldı.Entity.getAlpha(Space.Activity)ile değiştirilebilir.Entity.getWorldSpaceScalekaldırıldı.Entity.getScale(Space.REAL\_WORLD)ile değiştirilebilir.SceneCoreiçindeki Session sınıfı, XR Runtime'daki Session sınıfı lehine silindi.StereoSurfaceEntity,SurfaceEntityolarak yeniden adlandırıldı.Entity.setSizeveEntity.getSizekaldırıldı. Aynı yöntemlerPanelEntity'ye eklendi.PointSourceAttributes,PointSourceParamsolarak yeniden adlandırıldı.SpatializerConstants.SOURCE\_TYPE\_BYPASS,SpatializerConstants.SOURCE\_TYPE\_DEFAULTolarak yeniden adlandırıldı.PointSourceParamsöğesinin erişimi herkese açık yerine dahili olarak değiştirildi.AnchorEntity.createartıkSession.configure()'dePlaneTrackingModeyapılandırılmasını gerektiriyor.SpatialUserAPI'leri artıkSession.configure()içindeHeadTrackingModeyapılandırılmasını gerektiriyor.ResizableComponenteklenmediğinde HATA düzeyinde günlük yerine BİLGİ düzeyinde günlük verilir.- Fov sınıfı artık normal bir Kotlin sınıfı.
- Her somut varlık türünü kendi dosyasına yerleştirmek için
Entity.ktöğesini bölün. - Yeni bir
PanelEntityoluştururken çoğu görünüm,FrameLayoutöğesine yeniden üst öğe olarak atanır. Bu,LayoutInspectorile Spatial Panels'in kullanılmasını kolaylaştırır. - Şu anda kullanılan
XrExtensionsörneği, uygulama hata ayıklamasına yardımcı olmak için platforma en iyi şekilde kaydedilir.
Hata düzeltmeleri
MovableComponentveAnchorPlacementiçeren birPanelEntitytaşındığında oluşabilecek kilitlenmeyi önlemek için düzeltme eklendi.ResizableComponentöğesininonResizeStartgeri çağırmasında eski boyutlar sağlamasıyla ilgili sorun düzeltildi.JxrPlatformAdapterAxr'nındispose()işlevi birden çok kez çağrıldığında yaşanan kilitlenme sorunu düzeltildi.
Sürüm 1.0.0-alpha03
26 Şubat 2025
androidx.xr.scenecore:scenecore:1.0.0-alpha03 ve androidx.xr.scenecore:scenecore-testing:1.0.0-alpha03 yayınlandı. 1.0.0-alpha03 sürümü bu commit'leri içerir.
Yeni Özellikler
- Proguard sadeleştirme artık Jetpack XR kodu için destekleniyor
Hata düzeltmeleri
- Jetpack XR SceneCore için Proguard küçültmesini desteklemeye yönelik ek düzeltmeler (I4f47e)
- Küçültülmüş istemcilerde
AbstractMethodError'i önlemek için güncellenmiş Jetpack XR ScenecoreProGuardkuralı. (I91a01)
Sürüm 1.0.0-alpha02
12 Şubat 2025
androidx.xr.scenecore:scenecore:1.0.0-alpha02 ve androidx.xr.scenecore:scenecore-testing:1.0.0-alpha02 yayınlandı. 1.0.0-alpha02 sürümü bu commit'leri içerir.
1.0.0-alpha02'den önce oluşturulan uygulamaları etkileyecek yakında yapılacak bir değişiklik
- Fabrika yöntemleri,
Sessionsınıfından ilgili her türdeki yardımcı yönteme taşındı:Session.createActivityPanelEntity(Dimensions, String, Activity, Pose)silindi veActivityPanelEntity.create(Session, Dimensions, String, Pose)ile değiştirildiSession.createAnchorEntity(Anchor)silindi veAnchorEntity.create(Session, Anchor)ile değiştirildiSession.createAnchorEntity(Dimensions, Int, Int, Duration)silindi veAnchorEntity.create(Session, Dimensions, Int, Int, Duration)ile değiştirildiSession.createEntity(String, Pose)silindi veContentlessEntity.create(Session, String, Pose)ile değiştirildiSession.createExrImageResource(String)silindi veExrImage.create(Session, String)ile değiştirildiSession.createGltfEntity(GltfModel, Pose)silindi veGltfModelEntity.create(Session, GltfModel, Pose)ile değiştirildiSession.createGltfModelResource(String)silindi veGltfModel.create(Session, String)ile değiştirildiSession.createInteractableComponent(Executor, InputEventListener)silindi veInteractableComponent.create(Session, Executor, InputEventListener)ile değiştirildiSession.createMovableComponent(Boolean, Boolean, Set<AnchorPlacement>, Boolean)silindi veMovableComponent.create(Session, Boolean, Boolean, Set<AnchorPlacement>, Boolean)ile değiştirildiSession.createPanelEntity(View, Dimensions, Dimensions, String, Pose)silindi vePanelEntity.create(Session, View, Dimensions, Dimensions, String, Pose)ile değiştirildiSession.createResizableComponent(Dimensions, Dimensions)silindi veResizableComponent.create(Session, Dimensions, Dimensions)ile değiştirildiSession.createStereoSurfaceEntity(Int, Dimensions, Pose)silindi veStereoSurface.create(Session, Int, Dimensions, Pose)ile değiştirildi
- Desteği sonlandırılan aşağıdaki yöntemler kaldırıldı:
Session.canEmbedActivityPanel(Activity)silindi. Bunun yerinegetSpatialCapabilities.hasCapabilility(SPATIAL_CAPABILITY_EMBED_ACTIVITY)politikasını kullanın.Session.hasSpatialCapability(Int)silindi.getSpatialCapabilities(),SpatialCapabilitiesnesnesi döndürdüğünden,getSpatialCapabilities().hasCapability()'nın uzamsal özelliklerin varlığını kontrol etmek için daha bölümlere ayrılmış bir yol olarak kullanılması tercih edildi.Session.requestFullSpaceMode()silindi veSpatialEnvironment.requestFullSpaceMode()ile değiştirildiSession.requestHomeSpaceMode()silindi veSpatialEnvironment.requestHomeSpaceMode()ile değiştirildi
Session.setFullSpaceMode(Bundle)veSession.setFullSpaceModeWithEnvironmentInherited(Bundle), uzantı işlevlerine taşındı. Geliştirici dosyalarının erişim için yeni içe aktarmaları eklemesi gerekir:import androidx.xr.scenecore.setFullSpaceModeimport androidx.xr.scenecore.setFullSpaceModeWithEnvironmentInherited
Session.setPreferredAspectRatio(Activity, Float), uzantı işlevine taşındı. Geliştirici dosyalarının erişim için yeni içe aktarma işlemini eklemesi gerekir:import androidx.xr.scenecore.setPreferredAspectRatio
Session.getEntitiesOfType(Class<out T>)veSession.getEntityForRtEntity(RtEntity), uzantı işlevlerine taşındı. Geliştirici dosyalarının erişim için yeni içe aktarmaları eklemesi gerekir:import androidx.xr.scenecore.getEntitiesOfTypeimport androidx.xr.scenecore.getEntityForRtEntity
Session.unpersistAnchor(Anchor)silindiSession.createPersistedAnchorEntity(UUID)silindi
Bilinen sorunlar
PanelEntity.setCornerRadius()veActivityPanelEntity.setCornerRadius(), panel bir sonraki taşıma işlemine kadar geçerli olmayabilir. Bu durum, paneli mevcut konumuna taşıyarak giderilebilir.BoundsChanged,ActivitySpaceüzerinde çağrıldığında bazıActivityPose'ler doğru şekilde güncellenmemiş olabilir.ActivitySpacetarihinde yapılacakOnSpaceUpdatedgörüşmesinde güncellenecek.
Zarar veren ve davranışsal değişiklikler
- Panelin genişliği veya yüksekliği 32 dp'den küçükse
PanelEntityveActivityPanelEntityiçin varsayılan köşe yarıçapı 32 dp veya daha küçük olur.
Yeni API'ler ve özellikler
StereoSurface.CanvasShape'ı kullanıma sunar. Bu özellik, sürükleyici medya oluşturmak içinSphericalveHemisphericaltuvallerinin oluşturulmasına olanak tanır.StereoSurfaceEntity.create()artıkCanvasShapeparametresini kabul ediyor. (Bu parametre şu anda yoksayılıyor ancak gelecekteki bir sürümde kullanılacak.)StereoSurfaceEntity.create()artıkDimensionsparametresini almıyor. Uygulamalar,CanvasShapeayarını yaparak tuvalin boyutunu kontrol etmelidir.StereoSurfaceEntity, dinamik olarak ayarlanabilen birCanvasShapeüyeye sahiptir.StereoSurfaceEntity.dimensionsartık salt okunur bir özelliktir. Uygulamalar, boyutları değiştirmek içinCanvasShapedeğerini ayarlamalıdır.StereoSurfaceEntityartıkStereoMode'ın oluşturulduktan sonra sıfırlanmasına olanak tanıyor.
Diğer değişiklikler
- Derleme zamanı minSDK 24'e düşürüldü. Tüm Jetpack XR API'leri, çalışma zamanında API 34'ü gerektirmeye devam eder.
SceneCore'nın oturum fabrikası (Session.create) artıkSCENE_UNDERSTANDINGiznini almak için bir amaç başlatmıyor. Bunun yerine, istemci uygulaması, bağlantı oluşturmaya çalışmadan önce izinleri kullanıcıdan açıkça istemelidir. İzin kullanıcı tarafından verilmezse bağlantı oluşturma işlemi başarısız olur.
Hata düzeltmeleri
getActivitySpacePose(), çeviri değerlerini her zaman ölçeklendirilmemiş metre olarak döndürmek yerine ölçeklendirilmiş metre olarak döndürerekActivitySpaceölçeğini hesaba katacak şekilde düzeltildi.transformPoseTo, kaynak veya hedefteActivitySpaceolduğunda koordinat değişikliklerini hesaplamak için artık doğru birimleri de kullanıyor.- Artık
setSpatialEnvironmentPreference(new SpatialEnvironmentPreference(null, geom))kullanılarak boş bir gökyüzü kutusu tercihi iletildiğinde gökyüzü kutusu tamamen siyah bir gökyüzü kutusu olarak ayarlanacak. Sistemin varsayılan gökyüzü kutusuna ve geometrisine geri dönmek içinsetSpatialEnvironmentPreference(null).simgesini kullanın.
Sürüm 1.0.0-alpha01
12 Aralık 2024
androidx.xr.scenecore:scenecore-* 1.0.0-alpha01 yayınlandı.
İlk Sürümün Özellikleri Jetpack SceneCore'un ilk geliştirici sürümü. Bu kitaplık, etkileyici sahneler ve ortamlar oluşturup bunları düzenlemek için kullanılan bir 3D sahne grafiği kitaplığıdır. Bu kitaplık, 3D modelleri ve içerik panellerini birbirlerine ve sanal ya da gerçek dünya ortamlarınıza göre yerleştirip düzenlemenize olanak tanır.
- SpatialEnvironment: Gökyüzü görüntüsü ve/veya 3D model geometrisiyle, ortamınızın XR sahnesi için arka plan olarak tamamen yoğun içerik deneyimleri oluşturun. Alternatif olarak, sanal sahnenizin kullanıcının gerçek dünya ortamıyla entegre olabilmesi için geçişi etkinleştirin.
- PanelEntity: Standart Android düzenlerini ve Etkinliklerini, gerçek dünyadaki yüzeylere sabitlenebilen veya yüzeylerde hareket edebilen uzamsallaştırılmış panellere yerleştirerek 3D sahnelerinize 2D içerik ekleyin.
- GltfModelEntity: Sahnenizdeki 3D modelleri yerleştirin, canlandırın ve bunlarla etkileşim kurun. SceneCore, mevcut modellerle kolay entegrasyon için glTF dosya biçimini destekler.
- SpatialAudio: Tamamen sürükleyici ve uzamsallaştırılmış ses için 3D sahnenize ortam ve nokta ses kaynakları ekleyin.
- StereoSurfaceEntity: SceneCore, Android Surface'te oluşturulan içeriğin sol/sağ göz yönlendirmesini destekler. Bu, stereo fotoğraflar, 3D video veya dinamik olarak oluşturulan diğer kullanıcı arayüzleri gibi stereoskopik içerikleri yan yana veya üst-alt biçiminde oluşturmak için kullanılabilir. Uygulamalar, video kod çözme için MediaPlayer veya ExoPlayer'ı kullanmalıdır.
- Bileşen Sistemi: SceneCore, kullanıcıların modeller ve panellerle hareket etme, bunları yeniden boyutlandırma ve etkileşim kurma gibi olanaklar da dahil olmak üzere XR içeriğinize özellikler eklemek için güçlü ve esnek bir bileşen sistemi sunar.
- Sabitleme: Geçiş etkinleştirildiğinde panelleri ve modelleri gerçek yüzeylere ekleyebilir, böylece kullanıcılar sanal içeriği gerçek dünya ortamlarına sorunsuz bir şekilde entegre edebilir.
- Kullanıcı Pozu: İçeriğinizi kullanıcının konumuna göre yönlendirmek için sanal sahnedeki kullanıcının konumuna erişin.
- SpatialCapabilities: Kullanılabilir olduğunda, kullanıcı arayüzü içeriğinin 3D konumlandırılması gibi uzamsallaştırılmış özelliklerden yararlanan, tamamen uyarlanabilir uygulamalar oluşturun. Bununla da kalmayıp uygulamanız, kullanıcıların Android XR cihazlarını kullanma şekillerine göre deneyimi değiştirmek için uygulama yürütülürken özelliklerdeki değişiklikleri izleyebilir.
Bilinen Sorunlar
- Jetpack SceneCore'u kullanmak için şu anda minimum SDK sürümü 30 olmalıdır. Geçici çözüm olarak, 23 minSDK'sı ile derleme ve çalıştırma yapabilmek için aşağıdaki manifest girişini
<uses-sdk tools:overrideLibrary="androidx.xr.scenecore, androidx.xr.compose"/>ekleyin. - Oturum, ana paneli yeniden boyutlandırma, çevre birimleri bağlama ve açık mod ile koyu mod arasında geçiş yapma gibi etkinliğin otomatik olarak yeniden oluşturulduğu çeşitli durumlarda geçersiz hale gelebilir. Oturum geçersiz kılma sorunlarıyla karşılaşırsanız geçici çözümler arasında ana panelinizi yeniden boyutlandırılamaz hale getirme, dinamik panel öğesi kullanma, belirli yapılandırma değişiklikleri için etkinlik yeniden oluşturmayı devre dışı bırakma veya açık/koyu mod tema değişikliklerini devre dışı bırakma yer alır.
- Taşınabilir ve yeniden boyutlandırılabilir bileşenler GltfEntity'de desteklenmez.
- Entity.getSize() işlevi, GltfEntity'de desteklenmez.
- Jetpack XR uygulamalarının AndroidManifest'te
android.permission.SCENE_UNDERSTANDINGizni istemesi gerekir. - Oturum oluşturma yalnızca Android XR cihazlarda desteklenir. Şu anda bir oturum oluşturup Android XR olmayan bir cihazda kullanmaya çalışırsanız RuntimeException alırsınız.
- `SpatialEnvironment.setSpatialEnvironmentPreference()` ile gökyüzü kutusunu null olarak ayarlamak, belgelendiği gibi tamamen siyah bir gökyüzü kutusuyla sonuçlanmıyor. Bu durumda sistemin varsayılan gökyüzü kutusu gösterilebilir veya mevcut gökyüzü kutusunda değişiklik yapılmayabilir.
- SceneCore istemcileri, uygulamalarının bağımlılıkları için Gradle yapılandırmalarına
implementation(“com.google.guava:listenablefuture-1.0”)eklemelidir. Gelecekteki bir sürümde, scenecore bu kitaplığıapibağımlılık olarak içerecek. Böylece istemcilerin bunu açıkça bildirmesi gerekmeyecek. - SceneCore,
com.google.guava:guava-31.1-androidvecom.google.protobuf:protobuf-javaliteöğelerini yanlışlıkla geçişli bağımlılık olarak içeriyor. Bu durum, derlemenizde yinelenen sınıf hatalarına neden olursa bu iki bağımlılık güvenli bir şekilde hariç tutulabilir. - Uygulamanız SceneCore kullanıyor ve ProGuard'ı etkinleştiriyorsa oturum oluşturduğunuzda çöker. Geçici çözüm olarak ProGuard'ı devre dışı bırakın. ProGuard'ı etkinleştirme hakkında daha fazla bilgi için bu kılavuza bakın.