Jetpack SceneCore
| Son Güncelleme | Kararlı Sürüm | Sürüm Adayı | Beta Sürümü | Alfa Sürümü |
|---|---|---|---|---|
| 21 Ekim 2026 | 1.0.0 | - | - | 1.1.0-alpha01 |
Bağımlılıkları bildirme
XR SceneCore'a bağımlılık eklemek için projenize Google Maven deposunu eklemeniz gerekir. Daha fazla bilgi için Google'ın Maven deposu sayfasını okuyun.
Uygulamanız veya modülünüz için build.gradle dosyasında ihtiyacınız olan yapıların bağımlılıklarını ekleyin:
Eski
dependencies { implementation "androidx.xr.scenecore:scenecore:1.1.0-alpha01" // Use to write unit tests testImplementation "androidx.xr.scenecore:scenecore-testing:1.1.0-alpha01" }
Kotlin
dependencies { implementation("androidx.xr.scenecore:scenecore:1.1.0-alpha01") // Use to write unit tests testImplementation("androidx.xr.scenecore:scenecore-testing:1.1.0-alpha01") }
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ştirmek için fikirleriniz varsa lütfen bize bildirin. Yeni bir sorun oluşturmadan önce lütfen bu kitaplıktaki mevcut sorunlara göz atın. Yıldız düğmesini tıklayarak mevcut bir sorun için oy verebilirsiniz.
Daha fazla bilgi için Issue Tracker belgelerine bakın.
Sürüm 1.1
Sürüm 1.1.0-alpha01
21 Ekim 2026
androidx.xr.scenecore:scenecore-*:1.1.0-alpha01 yayınlandı. 1.1.0-alpha01 sürümü bu kayıtları içerir.
API Değişiklikleri
- Çalışma zamanında köşe ve dizin verilerinin güncellenmesini desteklemek için dinamik ağ güncelleme API'leri (
MeshBuffer.createDynamic,MeshBuffer.updateVertexData,MeshBuffer.updateIndexDatave dinamik birCustomMesh.BuilderFromMeshDataoluşturucu) eklendi. (Ia1ecb) - Belirli bir
VertexAttributeveyaVertexBufferLayoutiçin arabellek dizinini kolayca almak üzereVertexLayout.getBufferIndexyardımcı yöntemleri eklendi. (I1a9e3) - Sınırlayıcı kutunun çalışma zamanında dinamik olarak güncellenebilmesi için
CustomMesh.boundsbir değişken haline getirildi. (Ib0397) glTFanimasyon API'leri (GltfAnimation,GltfModelEntity.getAnimationsveGltfModelEntity.stopAllAnimations) herkese açık/kararlı sürüme yükseltildi.GltfAnimation.loop ayarlayıcı, deneysel olarak kaldı.GltfAnimationStartOptionsve start(options) ise deneysel ve desteği sonlandırılmış olarak kaldı. (Iacdae)stopAllAnimations(),GltfModelEntitysınıfına eklendi,GltfAnimation.start()parametresiz hale getirildi,loopvespeedözellikleriGltfAnimationsınıfına eklendi veGltfAnimationStartOptions,start(options)veseekTo(Duration)kullanımdan kaldırıldı. (I53105)GltfModelEntityAPI'leri, atılan varlıklarda çağrıldığındaIllegalStateException(özellikleEntity.DisposedException) belgesini gösterecek şekilde güncellendi. I65a76f
Hata Düzeltmeleri
androidx.lifecycle:lifecycle-runtimebağımlılığı 2.10.0 olarak güncellendi. Bu sürüm, paket halinde sunulan yaşam döngüsü çalışma zamanı lint kontrollerinin AGP 9.5.0-alpha04 veya sonraki sürümlerle çalışması için gereklidir. (I99bfd, b/556807521)- Birden fazla
ExoPlayerörneğiyle yeniden kullanılmaması gerektiğini vurgulamak içinAudioOutputProviderile ilgili kdoc'lar iyileştirildi (I6b18e). - Çeşitli XR modüllerinden
impressile ilgili gereksiz bağımlılıklar kaldırıldı. I84636c
Sürüm 1.0
Sürüm 1.0.0
21 Ekim 2026
androidx.xr.scenecore:scenecore-*:1.0.0 yayınlandı. 1.0.0 sürümü bu commit'leri içerir.
1.0.0 sürümünün önemli özellikleri:
- Jetpack XR SceneCore artık kararlı sürümde. SceneCore, varlıklar tarafından tanımlanan 3D içerikleri birbirine ve ortamınıza göre yerleştirip düzenlemenize olanak tanır. SceneCore ile sanal ve karma gerçeklik sahnelerinde 2D paneller ve 3D modeller oluşturabilir, yerleştirebilir ve değiştirebilirsiniz. Ayrıca üç boyutlu ortamları ve üç boyutlu ses kaynaklarını belirleyebilir, sanal içeriği gerçek dünyaya sabitleyebilirsiniz.
- Daha fazla bilgi için Genel Bakış sayfamıza ve API Referansı'na bakın.
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 kayıtları içerir.
Hata Düzeltmeleri
SessionExtiçindekiperceptionRuntimeCachekaldı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 bir
Activitybağlamına referanslar içermemesini sağlamak amacıylaOpenXRyerel tutamaçları içinapplicationContextkullanılarak olası bir bağlam sızıntısı düzeltildi. (Ie35b1) - Doğru senkronizasyon ve başlatma kilitlemesi eklenerek
XrInstanceManageruygulamasındaki yarışma durumları 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ğlanarak çöp toplama sırasında yinelenen yürütme önlendi. (Ie35b1) SessionExtiçindekisceneCachekaldırılıpScene, örneği doğrudansessionConnectorsüzerinden alacak şekilde yeniden düzenlenerekSceneiçindeki 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 kayıtları içerir.
API Değişiklikleri
xr:scenecore:scenecore-openxrkitaplığına eklendi. (Ic49f2)- 1.0.0 kararlı sürümünden önce, desteği sonlandırılan birkaç API kaldırıldı.
Hata Düzeltmeleri
- Etkinlik yok edildiğinde Etkinlik referansının sistem tarafından tutulmasına neden olan bir 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 varlık çöp toplama işlemine tabi tutulduysa
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 kayıtları içerir.
API Değişiklikleri
GltfAnimationveSpatialGltfModelAnimationAPI'leri deneysel olarak işaretlendi. Bazı özellikler alıcıya dönüştürüldü. (I8d689, b/524771027)- Herkese açık
MovableComponent.createTrackingMovablefabrika yöntemi kaldırıldı. (I00912, b/477169015) - Session.create, askıya alma işlevine dönüştürüldü. (I5d27f)
ActivitySpaceveAnchorSpaceartık konumları sistem tarafından kontrol edilen varlıklar için ortak davranış 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 sağlar
SoundEffectPoolComponentTester. (I87df7, b/498104417) SurfaceEntity.Shape.Quadoluşturucusuna isteğe bağlı bircornerRadiusparametresi eklendi vecornerRadiusözelliği herkese açık hale getirildi. Geliştiriciler artıkSurfaceEntitytuvalini yuvarlak köşeli olarak oluşturmak için Quad şekli oluştururken köşe yarıçapı belirtebilir ve mevcut Quad'ların yarıçapını sorgulayabilir. (Ia7809, b/474681085)- Herkese açık test API'si
SpatialAudioTrackBuilderTester,SpatialAudioTrackTesterveSceneCoreTestRule.getTesteraşırı yüklemeleri sağlar. (I378c6, b/496333938) - Çeşitli ARCore türleri için
toString()öğesinin özel geçersiz kılmalarını ekleyin. Bu türler, geliştiricilere hata ayıklama amacıyla 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 kayıtları içerir.
API Değişiklikleri
CustomMesh.BuilderFromMeshDataveCustomMesh.BuilderFromMeshBufferiçinaddVertexData,setIndexDataveaddSubsetaşırı yüklemeleri eklendi. Bu aşırı yüklemeler, geliştiricilerin ham verileri ve parametreleriByteBufferRegionveyaMeshSubsetgibi ara nesnelere sarmalamadan doğrudan (ör.ByteBuffer,offset,size,topology,indexOffset,indexCount) iletmesine olanak tanır. (I84d5c)Scene.requestFullSpaceMode()veScene.requestHomeSpaceMode(), sırasıylarequestFullSpace()verequestHomeSpace()olarak yeniden adlandırıldı. "Ev 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. pointSourceParamsözelliğiSoundEffectPoolComponent'e ekleniyor (I4a750)- Herkese açık test API'si
MovableComponentTestersağlar (I0c972) - Herkese açık test API'si
PointerCaptureComponentTester(Ic0d4f) sağlar. - Herkese açık test API'si
ActivityPanelEntityTester(I837c4) sağlar. - 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
SpatialEnvironmentTestersağlar (Icf60f) - Herkese açık test API'si
GltfModelTesterveSceneCoreTestRule.getGltfModelTestersağlar. (I33fcb) - Herkese açık test API'si sağlar
InteractableComponentTester. (Ia7096) - Herkese açık test API'si sağlar
SurfaceEntityTester. (Ic0740) - Herkese açık test API'leri
GltfModelEntityTester,TestGltfModelNodeveTestGltfAnimation'yi sağlar. (I72c4d) - Herkese açık test API'si
SceneTesterveSceneCoreTestRule.sceneTestersağlar. (Ib4ec5) - Herkese açık test API'si
PerceptionSpaceTesterveSceneCoreTestRule.perceptionSpaceTestersağlar. (Icf739) - Herkese açık test API'si sağlar
MeshEntityTester. (I63801) - Herkese açık test API'si
ImageBasedLightingAssetTesterveSceneCoreTestRule.getTesteraşırı yüklemeleri 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
SoundEffectPoolTestersağlar (If349a) - Herkese açık test API'si
ActivitySpaceTesterveSceneCoreTestRule.activitySpaceTestersağlar. (I2d5c2) - Herkese açık test API'si
SpatialWindowTestersağlar (I41837) - Herkese açık test API'si sağlar
AnchorEntityTester(I68404) - Herkese açık test API'si arayüzünü (
SceneCoreTestRule) sağlar. (Ic72d3) ActivitySpaceuygulamasında doğru fiziksel boyut eşleme için donanım tabanlı bir metre başına piksel oranı sağlamak üzerePixelDensitysınıfı eklendi veScene#virtualPixelDensityaracılığıyla kullanıma sunuldu. (I0e3ac)- Özel Mesh'ler oluşturmak ve oluşturmak için herkese açık API'ler eklendi. (I7ad2f)
VertexLayoutAPI'si,VertexBufferLayoutlistesi kullanacak şekilde güncellendi. HerVertexBufferLayout, tek bir köşe arabelleğindeki özellikleri açıklar. Bu sayede, özel adımlar ve ofsetler içeren aralıklı özellikler de dahil olmak üzere daha esnek köşe verisi düzenlemeleri yapılabilir. (Ic426b)- ARCore Trackable'ı Etkinlik Alanı'na göre bir poza dönüştürmek için
MovableComponent.createTrackingMovablesağlar. (I12249) Entity.createpolitikasındaki ü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 Entity 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'yi uyguluyor. (I1ac79)- Mekansal ortam aydınlatmasını tanımlamak için
ExrImageyerineImageBasedLightingAssetsınıfı kullanıma sunuldu.ExrImagedesteği sonlandırıldı ve herkese açık API'den kaldırıldı.SpatialEnvironmentPreference,ImageBasedLightingAssetkullanacak şekilde güncellendi. (I6c92a) SpatialEnvironmentiçindekiskyboxparametresi, amacını daha iyi yansıtması içinimageBasedLightingAssetolarak yeniden adlandırıldı ve görsel gökyüzü kutusu dokularının geometri parametresine dahil edilmesi gerektiği açıklandı. (I24d4a)- Üç boyutlu öğeler artık Üç Boyutlu API seviyesi 1 ve 2'de piksel-metre 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 kayıtları içerir.
API Değişiklikleri
Entity.dispose(), herkese açık API'den kaldırıldı. Uygulamalar, Entity örneklerindedispose()yöntemini çağırmak yerineparentdeğerininullolarak ayarlayarak ve bu örneklere yönelik tüm güçlü referansları temizleyerek örnekleri temizlenebilir hale getirebilir. (I396c9)SoundEffectPooladlı kullanıcınınset/clearOnLoadCompleteListeneryöntemi silindi. Bunun yerineadd/removeLoadCompleteListenerpolitikasını kullanın. (Iae78d)- Sahnenin
set/clearSpatialVisibilityChangedListeneröğesiadd/removeSpatialVisibilityChangedListenerile değiştirildi. (I67dff) - Tüm SceneCore
add/removeOnFooListeneryöntemleriadd/removeFooListenerolarak yeniden adlandırıldı ve addanOnkaldırıldı. (Ibe50b) AnchorEntity.setOnOriginChangedListenerveAnchorEntity.setOnStateChangedListeneryöntemleri, aynı anda birden fazla işleyiciyi desteklemek içinadd/removeFooListeneryöntemleriyle değiştirildi. (I13749)AnchorEntity.State.TIMEDOUT,State.TIMED_OUTolarak yeniden adlandırıldı. (Id2b8d)- Component API, daha fazla güvenlik ve genişletilebilirlik için yeniden düzenlendi.
Componentartık soyut bir sınıftır. Doğrudan çağrıları önlemek içinonAttach()veonDetach()yöntemleri artıkprotectedolarak ayarlandı. Bileşen yaşam döngülerini yönetmek için lütfenEntity.addComponent()veEntity.removeComponent()kullanın. (Id04e8) - SceneCore'un
PlaneSemanticTypePlaneOrientationsabitleri, Int'lerden özel türlere taşındı.ANYsabitleri kaldırılacak. İstemcilerin bunun yerine, istenen tüm sabitleri açıkça listelemesi veya yeni.ALLsabit kümesini kullanması gerekir.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 (skinning) desteği eklendi. Geliştiriciler artık
MeshEntityoluştururkenboneCountbelirterek veMeshEntity.setBoneTransforms()kullanarak animasyonu gerçek zamanlı olarak güncelleyerek özel mesh'leri canlandırabilir. (Id8ba2, b/496692490) - Deneysel
CustomMeshAPI'si kullanıma sunuldu. Geliştiriciler artıkCustomMesh,MeshBufferveMeshEntitykullanarak sahnelerinde programatik olarak 3D geometri oluşturabilir ve oluşturabilir. (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, bir ARCoreAnchor'den oluşturulduğundaAnchordöndürecek (I5c7c8)ActivityPanelEntity,GltfModelEntity,GroupEntity,PanelEntityveSurfaceEntityfabrika yöntemlerindekiparentparametresinin varsayılan değeriActivitySpaceyerinenullolarak değiştirildi. Geliştiricilerin bir varlığı sahne grafiğine eklemek ve görünür hale getirmek için artık örneklendirme sırasında veyaEntity.parent = ...aracılığıyla üst öğesini açıkça ayarlaması gerekir (Ie7cc1).
Hata Düzeltmeleri
SceneCoreartık hayalet erişilebilir hale gelenEntityörneklerini otomatik olarak geri alıyor. Böylece geliştiricilerin kaynakları serbest bırakmak içindispose()yöntemini açıkça çağırmasına gerek kalmıyor. [Entity] örneğinin düzgün şekilde geri alınmasını sağlamak için geliştiriciler şunları yapmalıdır:parentdeğerininullolarak ayarlayarak sahne grafiğinden ayırın.- Kodlarındaki örneğe yapılan tüm güçlü referansları kaldırmalıdır.
- Özel Varlık Türleri Hakkında Not: Üst öğesi olamayan varlıklar (ör.
AnchorEntity) için geliştiriciler, örnek kullanılırken güçlü bir referans sağlamalıdır. Tüm referanslar serbest bırakılırsa bu örnekler hayalet erişilebilir hale gelir ve otomatik olarak geri alınır. (I83fe4)
- Tüm
SceneCorekitaplıkları için Proguard saklama kuralları daraltıldı. (I98447)
Bilinen Sorunlar
- Etkin olmayan bir
ExoPlayerörneği içerenEntityöğesinePositionalAudioComponenteklemek kilitlenmeye neden olur. ExoPlayer durdurulduğundasetPointSourceParamsyöntemini çağırmayın veya üç boyutlu ses bileşenlerini eklemeyin/çı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 kayıtları içerir.
API Değişiklikleri
TrackingStateveVpsAvailabilityResult,androidx.xr.arcore packagepaketine taşındı veandroidx.xr.runtimepaketindeki 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ılmıştır. (I329b4, b/493383490)HandJointTypeenum değeri yeniden adlandırıldı. (Ifbc83, b/482670596)- Özel
Componentuygulamalarına izin vermek içinComponent.onAttachveonDetachöğelerini herkese açık API olarak gösterin. (I0ca1f) - Üç boyutlu ses bileşenleri ekleme (I39ddd, b/489421980, b/436642086, b/436642499)
- Varlığı
PointSourceParamsuygulamasından kaldırın. Bunun yerine, varlık doğrudanSpatialAudioTrack,SpatialSoundPoolveSpatialMediaPlayerile kullanılacak (Ib3685, b/489421980, b/436634048) DeviceTrackingMode.LAST_KNOWN,SPATIAL_LAST_KNOWNolarak yeniden adlandırıldı (desteği sonlandırılmış bir yedekle birlikte), 3DoF izleme içinINERTIAL_LAST_KNOWNeklendi veTrackingStateiçinTRACKING_DEGRADEDeklendi. (Ie661c, b/445466590)GroupEntitykullanımdan kaldırıldı. Yalnızca temel Entity işlevine sahip bir Entity oluşturmak içinEntity.createyöntemini çağırın. Bu yöntem, Entity arayüzünü döndürür. (I4c450, b/473867483)XrLogAPI'si eklendi. JetpackXR'da 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ğerine ayarlanır. (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 kayıtları içerir.
API Değişiklikleri
unscaledGravityAlignedActivitySpaceişaretiSession.createadlı öğeden kaldırıldı.ActivitySpaceartık her zaman ölçeklendirilmemiş ve yerçekimine göre hizalanmış durumda. (If6f11, b/458173423)GltfModelEntitysınıfından, desteği sonlandırılansetMaterialOverrideveclearMaterialOverrideişlevleri kaldırıldı. Bu işlevler artık bağımsızGltfModelNodesınıfında çağrılıyor. (I2e5d2)PanelEntitysınıfınatransformPixelCoordinatesToLocalPositionvetransformNormalizedCoordinatesToLocalPositioneklendi.Vector3konumları yerine poz döndüren eşdeğer deneysel yöntemler kaldırıldı. (Ib6960, b/460123106, b/458333591)SceneCore'da glTF animasyonlarını kontrol etmek içinGltfAnimationAPI'leri eklendi. (I2c172, b/466065486, b/465819070, b/465818617)ScenePose.activitySpacePose,ScenePose.poseInActivitySpaceolarak yeniden adlandırıldı (I8f175, b/427822261).- Scenecore Projected Runtime uygulaması eklendi (I9c4ab, b/476440158)
- Ana panel öğesi yeniden boyutlandırılırken
ActivitySpacebaşlangıç noktasına göre yeniden konumlandırılabilir. Paneli manuel olarak veya programatik bir şekilde orijinal konumuna geri taşımaktan başka bir çözüm yoktur. Bu hata, gelecekteki bir sürümde düzeltilecektir. (b/489427007). - Bazı durumlarda,
MovableComponentiçin olan olanakSurfaceEntityve diğer panel dışı varlık türleri için görünmeyebilir.MovableComponent.sizedeğerini açıkça ayarlamak, imkanı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 sabitlendikleri konumdan etkinlik alanının başlangıç noktasına geçebilir.
SurfaceEntityörneği oluşturulurken uygulamalar kilitlenebilir. Bu sorun,androidx.xr.scenecore:scenecore-*:1.0.0-alpha13ve sonraki sürümlerde çözülmüştür. Etkilenen uygulamalar en yeni sürüme güncellenmelidir.
API Değişiklikleri
ActivitySpace.addOnSpaceUpdatedListenerveActivitySpace.removeOnSpaceUpdatedListener,addOnOriginChangedListenerveremoveOnOriginChangedListenerolarak yeniden adlandırıldı.AnchorEntity.setOnSpaceUpdatedListener,setOnOriginChangedListenerolarak yeniden adlandırıldı. (I5d8fb)FakeEntityiçin herkese açık ad özelliği eklendi ve görünümFakePanelEntitytarihinde herkese açık hale getirildi. (Ifa1f9)
Hata Düzeltmeleri
- Daha yeni sistem görüntülerinde piksel yoğunluğu hesaplamaları düzeltildi (I57d04).
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
getPerceivedResolutionAPI'leri artıkCameraViewScenePoseyerine ARCore'unRenderViewpointAPI'sini kullandığındanPerceivedResolutionResult.InvalidCameraView,PerceivedResolutionResult.InvalidRenderViewpointolarak yeniden adlandırıldı. 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 birRenderViewpointdeğerini bağımsız değişken olarak alır. 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 desteklenir. Kullanıcının kafasına veya sol ya da sağ gözüne karşılık gelen birScenePoseelde etmek için geliştiriciler, ARCore API'leri kullanılarak elde edilen uygun pozlaPerceptionSpace.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)SceneCore'daki mantığa dayalı olarakSceneCoreçalışma zamanına yardımcı bir sınıf (Utils) eklendi (I570b9).
Hata Düzeltmeleri
- Oturum sonlandırıldığında ve
SpatialModeChangeEventalındığında oluşabilecek olası kilitlenme sorunu düzeltildi (If44e8). - Bir etkinlikten ayrılırken veya etkinliğe yeniden girerken
IllegalStateExceptionhatasının oluşmasına neden olabilen bir 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 kayıtları içerir.
Yeni özellikler
- Algılama alanı başlangıç pozunun ve algılama alanı başlangıcına göre bir pozun bileşimini temsil eden bir
ScenePosealmak için API ekler. (I5b50a) getGravityAlignedPoseişlevi eklendi. Yer çekimine göre hizalanmış poz, dönüşün eğimini ve yuvarlanmasını yok sayar. (I5ae21)AnchorEntity.Statesabit türleri, Int'ten State alt türlerine değiştirildi. (Ib0c49)- Entity arayüzüne
getChildren()eklendi.MainPanelEntityyaşam döngüsü güncellendi. (Ia69d6)
API Değişiklikleri
PointerCaptureComponent.PointerCaptureStatesabit türleri, Int'tenPointerCaptureStatealt türlerine değiştirildi. (Ic888a)Scene.spatialCapabilitiesartık Int alanı yerineSet<SpatialCapability>türünde.SpatialCapabilitysabitleri yeniden adlandırıldı. (I9c109)SurfaceEntitysabit türleri yeniden adlandırıldı ve Ints'tenSurfaceEntityalt türlerine değiştirildi. (I419ed)SpatializerConstantsabit türleri yeniden adlandırıldı ve Ints'tenSpatializerConstantalt türlerine değiştirildi. (Ia0e18)TextureSamplersabit türleri yeniden adlandırıldı ve Ints'tenTextureSampleralt türlerine değiştirildi. (I44078)SpatialVisibilitysabit türleri, Int'tenSpatialVisibilityalt türlerine değiştirildi. (I70739)ResizeEvent.ResizeStatesabit türleri yeniden adlandırıldı ve Ints'tenResizeStatealt türlerine değiştirildi. (I384d5)InputEventsabit türleri yeniden adlandırıldı ve Ints yerine ilgili kapsayıcı türlerinden devralınacak şekilde değiştirildi. (I82817)GltfModelEntity.AnimationStatesabit türleri, Int'tenAnimationStatealt türlerine değiştirildi. (I24f4e)AlphaModesabit türleri yeniden adlandırıldı ve Ints'tenAlphaModealt türlerine değiştirildi. (I27b56)Spacesabit türleri, Ints'ten Space alt türlerine değiştirildi. (I9255b)ScenePose.hitTestve ilgili yöntemler artık kesişim bulunamazsa boşhitPositioniçeren birHitTestResultyerinenulldöndürür.HitTestResult.hitPositionartık null değer alamaz. (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:scenecoreiçin uygulama bağımlılığı olarak eklendi (I6ab65, b/447000520)- Oturum sonlandırıldıktan sonra
session.sceneöğesine eriş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 kayıtları içerir.
API Değişiklikleri
fixedAspectRatio,isFixedAspectRatioEnabledolarak yeniden adlandırıldı ve Boole mülkü haline getirildi (I5c4e8, b/440588971).ScenecoreFakes artıkxr:scenecore:scenecore-testingmodülünde yer alıyor. (Idd951)shouldAutoHideContent,isAutoHideContentWhileResizingEnabledolarak veshouldAlwaysShowOverlay,isAlwaysShowOverlayEnabledolarak yeniden adlandırıldı (I97c36, b/432335421)SceneCoreTextureSamplersabitleri, okunabilirliği artırmak için güncellendi. Örneğin,TextureSampler.MinFilter.LINEARartıkTextureSampler.MIN_FILTER_LINEAR(Ib159c) oldu.- Sahnenin
setKeyEntityayarlayıcısı,keyEntitydeğişkeniyle birleştirildi.keyEntity,AnchorEntitygibi taşınamayan bir varlığa ayarlanırsa boole değeri olarak "false" döndürmek yerineIllegalArgumentExceptionhatası verir. (I62080, b/428721695, b/422215745) - Sahnenin
SpatialModeChangeListenerdeğişkenisetSpatialModeChangedListenerile değiştirildi.SpatialModeChangedListeneryerineConsumer<SpatialModeChangeEvent>alır.setSpatialModeChangedListenerartık isteğe bağlı olarak bir Executor alabilir. (I62080, b/428721695, b/422215745) ActivityPanelEntity.startActivityöğesindenbundleparametresi 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,Shapeadlı öğeyi yeniden adlandırdıSurfaceEntity.CanvasShape.Vr180Hemisphere,Hemisphereadlı öğeyi yeniden adlandırdıSurfaceEntity.CanvasShape.Vr360Sphere,Sphereadlı öğeyi yeniden adlandırdıSurfaceEntity.EdgeFeatheringParams.SmoothFeather,RectangleFeatheradlı öğeyi yeniden adlandırdıSurfaceEntity.EdgeFeathingParams.SolidEdge,NoFeatheringadlı öğeyi yeniden adlandırdıSurfaceEntity.ContentSecurityLevel,SurfaceProtectionadlı öğeyi yeniden adlandırdıSurfaceEntity.ContentSecurityLevel.{values},SURFACE_PROTECTION_önekini ekledi.SurfaceEntity.SuperSampling.{$values},SUPER_SAMPLING_ön ekini eklediSurfaceEntity.StereoMode.{values},STEREO_MODE_ön ekini 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ı, LaunchUtils.kt dosyasına üst düzey yöntemler olarak taşındı ve ilk parametre olarak Session'ı aldı (I64a2c, b/437186050).GroupEntityfabrikası artık Entity yerineGroupEntitytürünü döndürüyor. (I66042)
Hata Düzeltmeleri
- Bir varlık örneği, silindikten sonra kullanıldığında
IllegalStateExceptionhatası verilir. (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 kayıtları içerir.
API Değişiklikleri
SceneCore'ınBaseEntityveBaseScenePoseAPI'lerinin kısıtlamasını 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
- Algılanan Çözünürlük API'si, Panel Varlıkları'na ve
SurfaceEntitieseklenir. (I118f6) PerceivedResolutionHSM'deki etkinliğin ana panelinin algılanan çözünürlüğünü izlemek için Scene.kt'ye geri çağırma yöntemleri eklendi. (I58084)SurfaceEntity: Uygulamanın, oluşturma sırasında süper örnekleme isteğinde bulunması 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ş kurucu sağlandı. (Ic0c70)
API Değişiklikleri
Bu sürüm için SceneCore üzerinde kapsamlı API değişiklikleri yapıldı. Birkaç sınıf yeniden adlandırıldı ve/veya farklı modüllere taşındı. Çoğu getter/setter yöntemi ise Kotlin özellikleriyle değiştirildi. İlk Beta sürümümüze kadar API'de önemli değişiklikler yapmayı planlasak da bu değişiklikler çok fazla olmayacak ve kesintiye neden olmayacak.
- Şu sınıflar ve arayüzler yeniden adlandırıldı ve/veya taşındı:
androidx.xr.scenecore.PixelDimensions,androidx.xr.runtime.math.IntSize2dolarak;androidx.xr.scenecore.Dimensions,androidx.xr.runtime.math.FloatSize3dolarak;androidx.xr.scenecore.ActivityPose,ScenePoseolarak;androidx.xr.scenecore.ContentlessEntity,GroupEntityolarak;androidx.xr.scenecore.PlaneType,PlaneOrientationolarak;androidx.xr.scenecore.PlaneSemantic,PlaneSemanticTypeolarak. (Ifd405)(I3b622) (If534d) Sceneözelliklerinin bazı ayarlayıcıları gizli hale getirildi. BunlarınSceneCoreistemcileri tarafından değiştirilmesi amaçlanmamıştı:activitySpace,activitySpaceRoot,mainPanelEntity,perceptionSpace,spatialCapabilities,spatialEnvironmentvespatialUser. (I2f506)- Varlık'ta: Aşağıdakiler özellik olarak değiştirildi:
get/setParent(),setContentDescription;Entity.is/setHidden()kullanımdan kaldırıldı, bunun yerineEntity.is/setEnabledkullanın. (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ğiFloat3dSizeikenFloat2dSizeolarak 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 olacak şekilde 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ılmalara sahip. (I12fe0) (I6b21e)- Desteği sonlandırılan şu
SpatialEnvironmentyöntemleri kaldırıldı:togglePassthrough,setPassthrough,setPassthroughOpacity,getPassthroughMode,getPassthroughOpacity,setSkyboxvesetGeometry. Ayrıca, desteği sonlandırılanSpatialEnvironment.PassthroughModesınıfı da kaldırıldı (I927bd) (I927bd) (I927bd). - Şu
SpatialEnvironmentalıcı ve ayarlayıcılar Kotlin özellikleriyle değiştirildi:getCurrentPassthroughOpacity(),get/setPassthroughOpacityPreference(),get/setSpatialEnvironmentPreference(),isSpatialEnvironmentPreferenceActive()(I33a7b) (Ie06e2) (Ie06e2) SpatialEnvironmentPreference.preferredPassthroughOpacitytürüFloat?ikenFloatolarak değiştirildi. Artık boş değerleri kabul etmez. Bunun yerine, opaklık tercihinin olmadığını belirtmek içinSpatialEnvironment.NO_PASSTHROUGH_OPACITY_PREFERENCEkullanılır. (I40107)- Oluşturma yönteminde
windowBoundsPxparametresipixelDimensionsolarak, türü ise Rect yerineIntSize2dolarak güncellendi. (I1926e) SpatialEnvironmentoluşturucusu artık dahili (I75a51)SpatialPointerIconNonesınıfı veSpatialPointerIconCirclesınıfları,SpatialPointerIcon.NONEveSpatialPointerIcon.CIRCLEtamamlayıcı nesneleriyle değiştirildi (I416d2).SpatialPointerComponenttablosundakiSpatialPointerIconartık boş değer alamaz. Sistem varsayılan işaretçi simgesinin kullanılması gerektiğini belirtmek için null yerineSpatialPointerIcon.DEFAULTkullanın. (I416d2)androidx.xr.scenecore.AnchorEntity.getState(), salt okunur bir mülkle değiştirildi.AnchorEntity.create()yöntemindeki parametreler daha anlaşılır olacak şekilde yeniden adlandırıldı.AnchorEntitysınıfının işleyici ayarlama ve ekleme yöntemlerinde, işleyici son bağımsız değişkene taşınarak sondaki lambda'lar etkinleştirildi.AnchorEntityiçinandroidx.xr.scenecore.OnStateChangedListener,Consumer<AnchorEntity.State>ile değiştirildi. (I472e0)GltfModelEntity.getAnimationState()artık bir mülktür. (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 yeniden adlandırıldı.planeSemanticFilter,anchorablePlaneSemanticTypesolarak yeniden adlandırıldı.AnchorEntityveyaActivitySpace'yeMovableComponenteklemek yanlış değerini döndürür,MoveListener,EntityMoveListener shouldDisposeParentAnchorolarak yeniden adlandırıldı,disposeParentOnReAnchor systemMovable,creeateCustomMovablelehinecreateişlevinden kaldırıldı,createSystemMovablevecreateAnchorable(If11c4)SurfaceEntity.featherRadiusX/Ykaldırıldı veEdgeFeatheringParamssınıf kavramı eklendi. (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'in
setFullSpaceModeyöntemiconfigureBundleForFullSpaceModeLaunch,setFullSpaceModeWithEnvironmentInheritedyöntemi iseconfigureBundleForFullSpaceModeLaunchWithEnvironmentInheritedolarak yeniden adlandırıldı. (I0cbe0) (I0cbe0) SpatialVisibilityöğesinin 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ı, const Int değerleri içeren herkese açık nesneyle değiştirildi.setSpatialVisibilityChangedListenerartıkConsumer<SpatialVisibility>yerineConsumer<Int>kabul ediyor (Ie7e8c)PointerCaptureComponentsabitleri 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ır. (I7b717)Entity.setHidden(),Entity.setEnabled()ile değiştirildi veEntity.isHidden(),Entity.isEnabled()ile değiştirildi.setHidden(false),setEnabled(true)veisHidden() == !isEnabled()değerine eşittir. (Icf0de)Entity.contentDescriptiontürü, dizedenCharSequenceolarak değiştirildi. (Ie59be)Session.createveSession.configure, yeterli izinler verilmediğindeSessionCreatePermissionsNotGrantedveyaSessionConfigurePermissionsNotGranteddöndürmek yerineSecurityExceptionhatası veriyor. (I7c488)ResizableComponent.createartıkConsumer<ResizeEvent> ResizeEventListenergerektiriyor.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).androidx.xr.scenecoreveandroidx.xr.composeiçinminSDK24'e düşürüldü. XR paketleri, çalışma zamanında API 34'ü gerektirmeye devam eder. (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) SceneCoreana yapısı (xr:scenecore:scenecore) yalnızca Kotlin tarzı eşzamansız API'ler içerir. Java geliştiricileri, 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 boşluk ek açıklamalarını kullanıyor. Kotlin geliştiricileri, doğru kullanımı zorunlu kılmak için şu 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 askıya alma işlevleriyle değiştirildi. Kotlin askıya alma işlevleri yerineListenableFuturetabanlı eşzamansız yöntemleri kullanmak isteyen Java geliştiricilerinin artık:xr:scenecore-scenecore-guavaiçindeki uzantı işlevlerini kullanması gerekir. Örneğin,GuavaExrImage, Guava eşdeğeri ExrImage eş zamansız işlevlerini,GuavaScenePose, Guava eşdeğeriScenePoseeş zamansız işlevlerini,GuavaGltfModel,Guava-equivalent GltfModeleş zamansız işlevlerini vb. içerir. (If7283) (I0af60) (If7283) (Ia8515) (I4efdf) (I54bbf) (I3467a) (I82a33)
Hata Düzeltmeleri
- Sadeleştirilmiş istemcilerde
AbstractMethodErrorsorununu önlemek için Jetpack XR ScenecoreProGuardkuralı güncellendi. (I91a01) - Jetpack XR
SceneCoreiçin Proguard sadeleştirmesini destekleyen ek düzeltmeler (I4f47e) - Sistemden döndürülen
hitPositionnull iseInputEventöğesinin HitInfo'sundakihitPositionkilitlenebileceğindenInteractableComponentöğesinin kilitlenmeye neden olabileceği bir hata düzeltildi (I7a695). - Config *Mode 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çinde, bit düzeyinde VEYA ile iletilen özelliklerden herhangi biri doğruysa yalnızca hepsi doğru olduğunda doğru değerini döndürmek yerine doğru değerini döndürmesine neden olan hata düzeltildi. (I2cd40)SurfaceEntity.StereoMode.TOP_BOTTOM, üstteki harita sol göze, alttaki harita sağ göze gelecek ş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 kayıtları içerir.
Yeni özellikler
- Geri alma işlemi artık yerleşik etkinlikler olmadan panel öğelerinde çalışacak. Geri tuşu işleminin çalışması için Android manifest dosyasında
android:enableOnBackInvokedCallback= "true"değerini belirtmeniz gerekir. StereoSurfaceEntityartık iki yeniStereoModedeğeriyle MV-HEVC oynatmayı destekliyor: MULTIVIEW_LEFT_PRIMARY ve MULTIVIEW_RIGHT_PRIMARY.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ğerleri alma/ayarlama imkanı sunan yeni birrelativeToparametresi alıyor. Desteklenen değerler Parent, Activity ve Real World alanlarıdır. Bu parametrenin varsayılan değeri Parent'tır.- Sahne içeriğinin kullanıcının görüş alanının içine veya dışına ne zaman hareket ettiğini izlemek için
SessionExt.ktsınıfına eklenen Spatial Visibility Callback uzantı yöntemleri. setPointSourceParams,SpatialAudioTracksınıfına eklendi. Bu sayede, parça oluşturulduktan sonra parametreler güncellenebilir.ScenecoreAPI'lerine referanslar içeren yeni bir sınıf (Scene) eklendi. Scene'e, Session'ın bir uzantı özelliği olarak erişilebilir.SessionExtiçindeki işlevler Scene'e taşındığından içe aktarma işlemlerinin ayarlanması gerekir (ör.SessionExt.getScene(session)).addSpatialCapababilitiesChangedListener-SessionExt.addSpatialCapabilitiesChangedListener.ActivityPose.hitTestAsynceklendi. Bu sayede sanal içeriklere karşıhitTestsağlanıyor.- İşaretçi için oluşturulan simgeyi belirtmeye veya simgeyi devre dışı bırakmaya olanak tanıyan yeni bileşen türü
SpatialPointerComponenteklendi. Bu bileşen şu anda yalnızcaPanelEntityörneğe eklenebilir. - Panel boyutlarını metre veya piksel cinsinden alan yeni
PanelEntityfabrikası kullanıma sunuldu. Panel için iki Dimension türü parametre alan eskiPanelEntityfabrikası 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ı, yerlerinesetSizeInPixelsvegetSizeInPixelsgetirildi.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ı ve aynı yöntemlerPanelEntityiçin eklendi.PointSourceAttributes,PointSourceParamsolarak yeniden adlandırıldı.SpatializerConstants.SOURCE\_TYPE\_BYPASS,SpatializerConstants.SOURCE\_TYPE\_DEFAULTolarak yeniden adlandırıldı.PointSourceParamsvarlığının erişim düzeyi, herkese açık yerine dahili olarak değiştirildi.AnchorEntity.createiçin artıkSession.configure()içindePlaneTrackingModeyapılandırılması gerekiyor.SpatialUserAPI'leri için artıkSession.configure()içindeHeadTrackingModeyapılandırılması gerekiyor.ResizableComponenteklenmediğinde, ERROR düzeyinde günlük yerine INFO düzeyinde günlük verir.- Fov sınıfı artık normal bir Kotlin sınıfıdır.
- Her bir somut varlık türünü kendi dosyasına yerleştirmek için
Entity.ktdosyasını bölün. - Yeni bir
PanelEntityoluşturulduğunda çoğu görünüm birFrameLayoutile yeniden ilişkilendirilir. Bu sayedeLayoutInspector, uzamsal panellerle kullanılabilir. - Şu anda kullanılan
XrExtensionsörneği, uygulama hata ayıklama işlemine yardımcı olmak için platforma en iyi şekilde kaydedildi.
Hata Düzeltmeleri
MovableComponentveAnchorPlacementiçeren birPanelEntitytaşındığında oluşabilecek kilitlenme sorununu önlemek için bir düzeltme eklendi.ResizableComponent,onResizeStartgeri çağırmasında eski boyutlar sağlıyordu. Bu sorun düzeltildi.JxrPlatformAdapterAxröğesinindispose()işlevi birden çok kez çağrıldığında oluşan 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 kayıtları içerir.
Yeni özellikler
- Jetpack XR kodu için Proguard sadeleştirme artık destekleniyor.
Hata Düzeltmeleri
- Jetpack XR SceneCore için Proguard sadeleştirmesini destekleyen ek düzeltmeler (I4f47e)
- Sadeleştirilmiş istemcilerde
AbstractMethodErrorsorununu önlemek için Jetpack XR ScenecoreProGuardkuralı güncellendi. (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ı etkileyen, yakında yapılacak zarar veren değişiklik
- Fabrika yöntemleri,
Sessionsınıfından her bir türün tamamlayıcı yöntemine 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, uzamsal özelliklerin varlığını kontrol etmek için daha bölümlere ayrılmış bir yöntem olarak yerinegetSpatialCapabilities().hasCapability()kullanılmaya başlandı.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 aktarma işlemlerini eklemesi gerekir:import androidx.xr.scenecore.setFullSpaceModeimport androidx.xr.scenecore.setFullSpaceModeWithEnvironmentInherited
Session.setPreferredAspectRatio(Activity, Float), bir 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 sefer taşınana kadar geçerli olmayabilir. Bu durum, panel mevcut konumuna taşınarak düzeltilebilir.ActivitySpaceüzerindeBoundsChangedçağrıldığında bazıActivityPose'ler doğru şekilde güncellenmemiş olabilir.ActivitySpacetarihinde yapılacak bir sonrakiOnSpaceUpdatedgörüşmesinde güncellenecek.
Bozucu ve davranışsal değişiklikler
PanelEntityveActivityPanelEntity, varsayılan olarak 32 dp köşe yarıçapına sahip olur. Panel genişliği veya yüksekliği 32 dp'den küçükse köşe yarıçapı da 32 dp'den küçük olur.
Yeni API'ler ve özellikler
- Sürükleyici medya oluşturmak için
SphericalveHemisphericaltuval oluşturmaya olanak tanıyanStereoSurface.CanvasShapekullanıma sunuldu. StereoSurfaceEntity.create()artık birCanvasShapeparametresi kabul ediyor. (Bu parametre şu anda yoksayılmaktadır ancak gelecekteki bir sürümde kullanılacaktır.)StereoSurfaceEntity.create()artıkDimensionsparametresi almıyor. Uygulamalar,CanvasShapeayarını yaparak tuvalin boyutunu kontrol etmelidir.StereoSurfaceEntity, dinamik olarak ayarlanabilen birCanvasShapeüyesine sahip.StereoSurfaceEntity.dimensionsartık salt okunur bir özelliktir. Uygulamaların boyutları değiştirmek içinCanvasShapeözelliğini ayarlaması gerekir.StereoSurfaceEntity, oluşturma işleminden sonraStereoModedeğerinin sıfırlanmasına olanak tanır.
Diğer değişiklikler
- Derleme zamanı minSDK'si 24'e düşürüldü. Tüm Jetpack XR API'leri, çalışma zamanında API 34'ü gerektirmeye devam eder.
SceneCoreuygulamasının Session factory (Session.create) bileşeni artıkSCENE_UNDERSTANDINGiznini almak için intent başlatmıyor. Bunun yerine, istemci uygulama, sabitleyicileri oluşturmaya çalışmadan önce kullanıcıdan izinleri açıkça istemelidir. Kullanıcı izin vermezse sabitleyici oluşturma işlemi başarısız olur.
Hata düzeltmeleri
getActivitySpacePose(), her zaman ölçeklendirilmemiş metreler döndürmek yerine ölçeklendirilmiş metre cinsinden çeviri değerleri döndürerekActivitySpaceölçeğini hesaba katacak şekilde düzeltildi.transformPoseToartık kaynak veya hedefteActivitySpacekullanıldığında koordinat değişikliklerini hesaplamak için doğru birimleri de kullanıyor.setSpatialEnvironmentPreference(new SpatialEnvironmentPreference(null, geom))kullanılarak boş bir skybox tercihi iletildiğinde skybox artık tamamen siyah bir skybox olarak ayarlanacak. Sistem varsayılanı olan gökyüzü kutusuna ve geometriye dönmek içinsetSpatialEnvironmentPreference(null).komutunu 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 Sürükleyici sahneler ve ortamlar oluşturup bunları yönetmek için kullanılan 3D sahne grafiği kitaplığı Jetpack SceneCore'un ilk geliştirici sürümü. Bu kitaplık, 3D modelleri ve içerik panellerini birbirine ve sanal veya gerçek dünya ortamlarınıza göre yerleştirip düzenlemenize olanak tanır.
- SpatialEnvironment: Ortamınızın XR sahnesinin arka planı olarak bir skybox resmi ve/veya 3D model geometrisiyle tamamen sürükleyici deneyimler oluşturun. Alternatif olarak, geçiş özelliğini etkinleştirerek sanal sahnenizin kullanıcının gerçek dünyadaki ortamıyla entegre olmasını sağlayabilirsiniz.
- PanelEntity: Standart Android düzenlerini ve etkinliklerini, havada durabilen veya gerçek dünyadaki yüzeylere sabitlenebilen 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, üç boyutlu 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, stereoskopik içeriği yan yana veya üst-alt biçiminde (ör. stereo fotoğraflar, 3D video veya dinamik olarak oluşturulan diğer kullanıcı arayüzleri) oluşturmak için kullanılabilir. Uygulamalar, video kod çözme için MediaPlayer veya ExoPlayer'ı kullanmalıdır.
- Bileşen Sistemi: SceneCore, XR içeriğinize özellikler eklemek için sağlam ve esnek bir bileşen sistemi sunar. Bu sistem, kullanıcıların modelleri ve panelleri taşımasına, yeniden boyutlandırmasına ve bunlarla etkileşim kurmasına olanak tanır.
- Sabitleme: Şeffaf mod etkinleştirildiğinde panelleri ve modelleri gerçek yüzeylere ekleyerek kullanıcıların sanal içeriği gerçek dünyadaki ortamlarına sorunsuz bir şekilde entegre etmelerini sağlayabilirsiniz.
- Kullanıcı Duruşu: İçeriğinizi kullanıcının konumuna göre yönlendirmek için kullanıcının sanal sahnedeki konumuna erişin.
- SpatialCapabilities: Kullanılabilir olduğunda kullanıcı arayüzü içeriğinin 3D konumlandırması gibi uzamsal özelliklerden yararlanan, tamamen uyarlanabilir uygulamalar oluşturun. Ayrıca uygulamanız, çalışırken özelliklerdeki değişiklikleri izleyerek deneyimi, kullanıcının Android XR cihazını kullanma şekline göre değiştirebilir.
Bilinen Sorunlar
- Şu anda Jetpack SceneCore'u kullanmak için minimum SDK sürümü 30'dur. Geçici çözüm olarak, 23 minSDK 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. - Ana panelin yeniden boyutlandırılması, çevre birimlerinin bağlanması ve açık ile koyu mod arasında geçiş yapılması gibi etkinliği otomatik olarak yeniden oluşturan çeşitli durumlarda oturum geçersiz hale gelebilir. Oturum geçersiz kılma sorunlarıyla karşılaşırsanız 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 gibi geçici çözümlerden yararlanabilirsiniz.
- Taşınabilir ve yeniden boyutlandırılabilir bileşenler GltfEntity'de desteklenmez.
- Entity.getSize(), 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 hatası alırsınız.
- `SpatialEnvironment.setSpatialEnvironmentPreference() aracılığıyla gökyüzü kutusunu null olarak ayarlamak, belgelendiği gibi düz siyah bir gökyüzü kutusu oluşturmuyor. Bu durumda, sistem varsayılan gökyüzü kutusu kullanılabilir 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ığı olarak içerecek. Bu nedenle, istemcilerin bunu açıkça beyan etmesi gerekmeyecek. - SceneCore, geçişli bağımlılıklar olarak
com.google.guava:guava-31.1-androidvecom.google.protobuf:protobuf-javaliteöğelerini hatalı bir şekilde 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 kilitlenir. Geçici çözüm olarak ProGuard'ı devre dışı bırakın. ProGuard'ı etkinleştirme hakkında daha fazla bilgi için bu kılavuzu inceleyin.