Jetpack SceneCore

3D içeriklerle Android XR sahne grafiğini oluşturma ve değiştirme
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.

Yeni sorun oluşturma

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.updateIndexData ve dinamik bir CustomMesh.BuilderFromMeshData oluşturucu) eklendi. (Ia1ecb)
  • Belirli bir VertexAttribute veya VertexBufferLayout için arabellek dizinini kolayca almak üzere VertexLayout.getBufferIndex yardımcı yöntemleri eklendi. (I1a9e3)
  • Sınırlayıcı kutunun çalışma zamanında dinamik olarak güncellenebilmesi için CustomMesh.bounds bir değişken haline getirildi. (Ib0397)
  • glTF animasyon API'leri (GltfAnimation, GltfModelEntity.getAnimations ve GltfModelEntity.stopAllAnimations) herkese açık/kararlı sürüme yükseltildi. GltfAnimation.loop ayarlayıcı, deneysel olarak kaldı. GltfAnimationStartOptions ve start(options) ise deneysel ve desteği sonlandırılmış olarak kaldı. (Iacdae)
  • stopAllAnimations(), GltfModelEntity sınıfına eklendi, GltfAnimation.start() parametresiz hale getirildi, loop ve speed özellikleri GltfAnimation sınıfına eklendi ve GltfAnimationStartOptions, start(options) ve seekTo(Duration) kullanımdan kaldırıldı. (I53105)
  • GltfModelEntity API'leri, atılan varlıklarda çağrıldığında IllegalStateException (özellikle Entity.DisposedException) belgesini gösterecek şekilde güncellendi. I65a76f

Hata Düzeltmeleri

  • androidx.lifecycle:lifecycle-runtime bağı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çin AudioOutputProvider ile ilgili kdoc'lar iyileştirildi (I6b18e).
  • Çeşitli XR modüllerinden impress ile 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

  • SessionExt içindeki perceptionRuntimeCache kaldırılıp PerceptionRuntime doğrudan Session ö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 Activity bağlamına referanslar içermemesini sağlamak amacıyla OpenXR yerel tutamaçları için applicationContext kullanılarak olası bir bağlam sızıntısı düzeltildi. (Ie35b1)
  • Doğru senkronizasyon ve başlatma kilitlemesi eklenerek XrInstanceManager uygulamasındaki yarışma durumları düzeltildi. (Ie35b1)
  • Temizleme işlemlerinin kaydının silinmesini desteklemek için ReferenceCleaner düzeltildi ve Entity temizleme işlemlerinin dispose() sırasında açıkça çalıştırılması sağlanarak çöp toplama sırasında yinelenen yürütme önlendi. (Ie35b1)
  • SessionExt içindeki sceneCache kaldırılıp Scene, örneği doğrudan sessionConnectors üzerinden alacak şekilde yeniden düzenlenerek Scene iç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-openxr kitaplığı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(), null değ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

  • GltfAnimation ve SpatialGltfModelAnimation API'leri deneysel olarak işaretlendi. Bazı özellikler alıcıya dönüştürüldü. (I8d689, b/524771027)
  • Herkese açık MovableComponent.createTrackingMovable fabrika yöntemi kaldırıldı. (I00912, b/477169015)
  • Session.create, askıya alma işlevine dönüştürüldü. (I5d27f)
  • ActivitySpace ve AnchorSpace artık konumları sistem tarafından kontrol edilen varlıklar için ortak davranış içeren ortak bir SpaceEntity sınıfını genişletiyor (I506ec, b/513619219).
  • AnchorEntity, AnchorSpace olarak güncellendi (Ifa95e, b/513619219)
  • Herkese açık test API'si sağlar SoundEffectPoolComponentTester. (I87df7, b/498104417)
  • SurfaceEntity.Shape.Quad oluşturucusuna isteğe bağlı bir cornerRadius parametresi eklendi ve cornerRadius özelliği herkese açık hale getirildi. Geliştiriciler artık SurfaceEntity tuvalini 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, SpatialAudioTrackTester ve SceneCoreTestRule.getTester aşı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.BuilderFromMeshData ve CustomMesh.BuilderFromMeshBuffer için addVertexData, setIndexData ve addSubset aşırı yüklemeleri eklendi. Bu aşırı yüklemeler, geliştiricilerin ham verileri ve parametreleri ByteBufferRegion veya MeshSubset gibi ara nesnelere sarmalamadan doğrudan (ör. ByteBuffer, offset, size, topology, indexOffset, indexCount) iletmesine olanak tanır. (I84d5c)
  • Scene.requestFullSpaceMode() ve Scene.requestHomeSpaceMode(), sırasıyla requestFullSpace() ve requestHomeSpace() 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 PanelEntityTester ve MainPanelEntityTester (I961e4) sağlar.
  • pointSourceParams özelliği SoundEffectPoolComponent'e ekleniyor (I4a750)
  • Herkese açık test API'si MovableComponentTester sağ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 SpatialEnvironmentTester sağlar (Icf60f)
  • Herkese açık test API'si GltfModelTester ve SceneCoreTestRule.getGltfModelTester sağ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, TestGltfModelNode ve TestGltfAnimation'yi sağlar. (I72c4d)
  • Herkese açık test API'si SceneTester ve SceneCoreTestRule.sceneTester sağlar. (Ib4ec5)
  • Herkese açık test API'si PerceptionSpaceTester ve SceneCoreTestRule.perceptionSpaceTester sağlar. (Icf739)
  • Herkese açık test API'si sağlar MeshEntityTester. (I63801)
  • Herkese açık test API'si ImageBasedLightingAssetTester ve SceneCoreTestRule.getTester aşı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 SoundEffectPoolTester sağlar (If349a)
  • Herkese açık test API'si ActivitySpaceTester ve SceneCoreTestRule.activitySpaceTester sağlar. (I2d5c2)
  • Herkese açık test API'si SpatialWindowTester sağ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)
  • ActivitySpace uygulamasında doğru fiziksel boyut eşleme için donanım tabanlı bir metre başına piksel oranı sağlamak üzere PixelDensity sınıfı eklendi ve Scene#virtualPixelDensity aracılığıyla kullanıma sunuldu. (I0e3ac)
  • Özel Mesh'ler oluşturmak ve oluşturmak için herkese açık API'ler eklendi. (I7ad2f)
  • VertexLayout API'si, VertexBufferLayout listesi kullanacak şekilde güncellendi. Her VertexBufferLayout, 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.createTrackingMovable sağlar. (I12249)
  • Entity.create politikası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ında BaseEntity kaldırıldı. (I7fbc9)
  • GltfModel, ExrImage ve ImageBasedLightingAsset, Kotlin'in use bloğunu kullanarak deyimsel kaynak yönetimine olanak tanımak için artık AutoCloseable'yi uyguluyor. (I1ac79)
  • Mekansal ortam aydınlatmasını tanımlamak için ExrImage yerine ImageBasedLightingAsset sınıfı kullanıma sunuldu. ExrImage desteği sonlandırıldı ve herkese açık API'den kaldırıldı. SpatialEnvironmentPreference, ImageBasedLightingAsset kullanacak şekilde güncellendi. (I6c92a)
  • SpatialEnvironment içindeki skybox parametresi, amacını daha iyi yansıtması için imageBasedLightingAsset olarak 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 örneklerinde dispose() yöntemini çağırmak yerine parent değerini null olarak ayarlayarak ve bu örneklere yönelik tüm güçlü referansları temizleyerek örnekleri temizlenebilir hale getirebilir. (I396c9)
  • SoundEffectPool adlı kullanıcının set/clearOnLoadCompleteListener yöntemi silindi. Bunun yerine add/removeLoadCompleteListener politikasını kullanın. (Iae78d)
  • Sahnenin set/clearSpatialVisibilityChangedListener öğesi add/removeSpatialVisibilityChangedListener ile değiştirildi. (I67dff)
  • Tüm SceneCore add/removeOnFooListener yöntemleri add/removeFooListener olarak yeniden adlandırıldı ve addan On kaldırıldı. (Ibe50b)
  • AnchorEntity.setOnOriginChangedListener ve AnchorEntity.setOnStateChangedListener yöntemleri, aynı anda birden fazla işleyiciyi desteklemek için add/removeFooListener yöntemleriyle değiştirildi. (I13749)
  • AnchorEntity.State.TIMEDOUT, State.TIMED_OUT olarak yeniden adlandırıldı. (Id2b8d)
  • Component API, daha fazla güvenlik ve genişletilebilirlik için yeniden düzenlendi. Component artık soyut bir sınıftır. Doğrudan çağrıları önlemek için onAttach() ve onDetach() yöntemleri artık protected olarak ayarlandı. Bileşen yaşam döngülerini yönetmek için lütfen Entity.addComponent() ve Entity.removeComponent() kullanın. (Id04e8)
  • SceneCore'un PlaneSemanticType PlaneOrientation sabitleri, Int'lerden özel türlere taşındı. ANY sabitleri kaldırılacak. İstemcilerin bunun yerine, istenen tüm sabitleri açıkça listelemesi veya yeni .ALL sabit kümesini kullanması gerekir. AnchorEntity fabrika 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 MeshEntity oluştururken boneCount belirterek ve MeshEntity.setBoneTransforms() kullanarak animasyonu gerçek zamanlı olarak güncelleyerek özel mesh'leri canlandırabilir. (Id8ba2, b/496692490)
  • Deneysel CustomMesh API'si kullanıma sunuldu. Geliştiriciler artık CustomMesh, MeshBuffer ve MeshEntity kullanarak sahnelerinde programatik olarak 3D geometri oluşturabilir ve oluşturabilir. (I94617)
  • androidx.xr.scenecore.SpatializerConstants.SourceType.SOURCE_TYPE_SOUND_FIELD kaldırıldı. Bunun yerine SourceType.SOUND_FIELD politikasını kullanın. (Ia68b9)
  • Üç boyutlu ses bileşenleri ekleme: PositionalAudioComponent, SoundEffectPoolComponent ve SoundFieldAudioComponent (Ieda89)
  • AnchorEntity.getAnchor, AnchorEntity.anchor ile değiştirildi ve artık AnchorEntity, bir ARCore Anchor'den oluşturulduğunda Anchor döndürecek (I5c7c8)
  • ActivityPanelEntity, GltfModelEntity, GroupEntity, PanelEntity ve SurfaceEntity fabrika yöntemlerindeki parent parametresinin varsayılan değeri ActivitySpace yerine null olarak 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 veya Entity.parent = ... aracılığıyla üst öğesini açıkça ayarlaması gerekir (Ie7cc1).

Hata Düzeltmeleri

  • SceneCore artık hayalet erişilebilir hale gelen Entity örneklerini otomatik olarak geri alıyor. Böylece geliştiricilerin kaynakları serbest bırakmak için dispose() 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:
    • parent değerini null olarak 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 SceneCore kitaplıkları için Proguard saklama kuralları daraltıldı. (I98447)

Bilinen Sorunlar

  • Etkin olmayan bir ExoPlayer örneği içeren Entity öğesine PositionalAudioComponent eklemek kilitlenmeye neden olur. ExoPlayer durdurulduğunda setPointSourceParams yö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

  • TrackingState ve VpsAvailabilityResult, androidx.xr.arcore package paketine taşındı ve androidx.xr.runtime paketindeki türler artık kullanımdan kaldırıldı. (Ic7930, b/480462213)
  • Plane.Type, PlaneType olarak yeniden adlandırıldı. (I8c90c, b/482675376)
  • Plane.Label, PlaneLabel olarak yeniden adlandırıldı. (Ic6b67, b/482675376)
  • androidx.xr.runtime.FieldOfView desteği sonlandırıldı. Bunun yerine androidx.xr.runtime.math.FieldOfView politikası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)
  • HandJointType enum değeri yeniden adlandırıldı. (Ifbc83, b/482670596)
  • Özel Component uygulamalarına izin vermek için Component.onAttach ve onDetach öğelerini herkese açık API olarak gösterin. (I0ca1f)
  • Üç boyutlu ses bileşenleri ekleme (I39ddd, b/489421980, b/436642086, b/436642499)
  • Varlığı PointSourceParams uygulamasından kaldırın. Bunun yerine, varlık doğrudan SpatialAudioTrack, SpatialSoundPool ve SpatialMediaPlayer ile kullanılacak (Ib3685, b/489421980, b/436634048)
  • DeviceTrackingMode.LAST_KNOWN, SPATIAL_LAST_KNOWN olarak yeniden adlandırıldı (desteği sonlandırılmış bir yedekle birlikte), 3DoF izleme için INERTIAL_LAST_KNOWN eklendi ve TrackingState için TRACKING_DEGRADED eklendi. (Ie661c, b/445466590)
  • GroupEntity kullanımdan kaldırıldı. Yalnızca temel Entity işlevine sahip bir Entity oluşturmak için Entity.create yöntemini çağırın. Bu yöntem, Entity arayüzünü döndürür. (I4c450, b/473867483)
  • XrLog API'si eklendi. JetpackXR'da günlük kaydını etkinleştirmek için XrLog.isEnabled değerini true olarak ayarlayın ve günlük düzeyini ayarlamak için XrLog.Level değerini kullanın. (I76a1f, b/463460895, b/487378441)

Hata Düzeltmeleri

  • Scene.keyEntity artık varsayılan olarak mainPanelEntity değ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

  • unscaledGravityAlignedActivitySpace işareti Session.create adlı öğeden kaldırıldı. ActivitySpace artık her zaman ölçeklendirilmemiş ve yerçekimine göre hizalanmış durumda. (If6f11, b/458173423)
  • GltfModelEntity sınıfından, desteği sonlandırılan setMaterialOverride ve clearMaterialOverride işlevleri kaldırıldı. Bu işlevler artık bağımsız GltfModelNode sınıfında çağrılıyor. (I2e5d2)
  • PanelEntity sınıfına transformPixelCoordinatesToLocalPosition ve transformNormalizedCoordinatesToLocalPosition eklendi. Vector3 konumları 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çin GltfAnimation API'leri eklendi. (I2c172, b/466065486, b/465819070, b/465818617)
  • ScenePose.activitySpacePose, ScenePose.poseInActivitySpace olarak yeniden adlandırıldı (I8f175, b/427822261).
  • Scenecore Projected Runtime uygulaması eklendi (I9c4ab, b/476440158)
  • Ana panel öğesi yeniden boyutlandırılırken ActivitySpace baş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, MovableComponent için olan olanak SurfaceEntity ve diğer panel dışı varlık türleri için görünmeyebilir. MovableComponent.size değ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-alpha13 ve sonraki sürümlerde çözülmüştür. Etkilenen uygulamalar en yeni sürüme güncellenmelidir.

API Değişiklikleri

  • ActivitySpace.addOnSpaceUpdatedListener ve ActivitySpace.removeOnSpaceUpdatedListener, addOnOriginChangedListener ve removeOnOriginChangedListener olarak yeniden adlandırıldı. AnchorEntity.setOnSpaceUpdatedListener, setOnOriginChangedListener olarak yeniden adlandırıldı. (I5d8fb)
  • FakeEntity için herkese açık ad özelliği eklendi ve görünüm FakePanelEntity tarihinde 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

  • getPerceivedResolution API'leri artık CameraViewScenePose yerine ARCore'un RenderViewpoint API'sini kullandığından PerceivedResolutionResult.InvalidCameraView, PerceivedResolutionResult.InvalidRenderViewpoint olarak yeniden adlandırıldı. Bu ad, yeni uygulamayı daha iyi yansıtıyor. (I8c967, b/446989745, b/419311998)
  • PanelEntity/SurfaceEntity.getPerceivedResolution yöntemleri artık geliştirici tarafından sağlanan bir RenderViewpoint değerini bağımsız değişken olarak alır. Daha önce çalışma zamanı, algılanan çözünürlük hesaplamasında kullanılan RenderViewpoint değerini rastgele seçiyordu. (I8c967, b/446989745, b/419311998)
  • SpatialUser, ScenePose.Head ve ScenePose.CameraView kaldırıldı. Bu API'lerin işlevleri, Jetpack XR için ARCore'daki ArDevice ve RenderViewpoint API'leri tarafından desteklenir. Kullanıcının kafasına veya sol ya da sağ gözüne karşılık gelen bir ScenePose elde etmek için geliştiriciler, ARCore API'leri kullanılarak elde edilen uygun pozla PerceptionSpace.getScenePoseFromPerceptionPose kullanabilir. (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

  • PanelEntity için transformPixelCoordinatesToPose ve transformNormalizedCoordinatesToPose eklendi (I462b3)
  • SceneCore'daki mantığa dayalı olarak SceneCore çalışma zamanına yardımcı bir sınıf (Utils) eklendi (I570b9).

Hata Düzeltmeleri

  • Oturum sonlandırıldığında ve SpatialModeChangeEvent alındığında oluşabilecek olası kilitlenme sorunu düzeltildi (If44e8).
  • Bir etkinlikten ayrılırken veya etkinliğe yeniden girerken IllegalStateException hatası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 ScenePose almak için API ekler. (I5b50a)
  • getGravityAlignedPose işlevi eklendi. Yer çekimine göre hizalanmış poz, dönüşün eğimini ve yuvarlanmasını yok sayar. (I5ae21)
  • AnchorEntity.State sabit türleri, Int'ten State alt türlerine değiştirildi. (Ib0c49)
  • Entity arayüzüne getChildren() eklendi. MainPanelEntity yaşam döngüsü güncellendi. (Ia69d6)

API Değişiklikleri

  • PointerCaptureComponent.PointerCaptureState sabit türleri, Int'ten PointerCaptureState alt türlerine değiştirildi. (Ic888a)
  • Scene.spatialCapabilities artık Int alanı yerine Set<SpatialCapability> türünde. SpatialCapability sabitleri yeniden adlandırıldı. (I9c109)
  • SurfaceEntity sabit türleri yeniden adlandırıldı ve Ints'ten SurfaceEntity alt türlerine değiştirildi. (I419ed)
  • SpatializerConstant sabit türleri yeniden adlandırıldı ve Ints'ten SpatializerConstant alt türlerine değiştirildi. (Ia0e18)
  • TextureSampler sabit türleri yeniden adlandırıldı ve Ints'ten TextureSampler alt türlerine değiştirildi. (I44078)
  • SpatialVisibility sabit türleri, Int'ten SpatialVisibility alt türlerine değiştirildi. (I70739)
  • ResizeEvent.ResizeState sabit türleri yeniden adlandırıldı ve Ints'ten ResizeState alt türlerine değiştirildi. (I384d5)
  • InputEvent sabit türleri yeniden adlandırıldı ve Ints yerine ilgili kapsayıcı türlerinden devralınacak şekilde değiştirildi. (I82817)
  • GltfModelEntity.AnimationState sabit türleri, Int'ten AnimationState alt türlerine değiştirildi. (I24f4e)
  • AlphaMode sabit türleri yeniden adlandırıldı ve Ints'ten AlphaMode alt türlerine değiştirildi. (I27b56)
  • Space sabit türleri, Ints'ten Space alt türlerine değiştirildi. (I9255b)
  • ScenePose.hitTest ve ilgili yöntemler artık kesişim bulunamazsa boş hitPosition içeren bir HitTestResult yerine null döndürür. HitTestResult.hitPosition artık null değer alamaz. (I1400a)
  • ActivityPose referansları ScenePose olarak 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, transferActivity olarak yeniden adlandırıldı (I273c5, b/430332856)

Hata Düzeltmeleri

  • :xr:scenecore:scenecore-spatial-rendering ve :xr:scenecore:scenecore-spatial-core, :xr:scenecore:scenecore iç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, isFixedAspectRatioEnabled olarak yeniden adlandırıldı ve Boole mülkü haline getirildi (I5c4e8, b/440588971).
  • Scenecore Fakes artık xr:scenecore:scenecore-testing modülünde yer alıyor. (Idd951)
  • shouldAutoHideContent, isAutoHideContentWhileResizingEnabled olarak ve shouldAlwaysShowOverlay, isAlwaysShowOverlayEnabled olarak yeniden adlandırıldı (I97c36, b/432335421)
  • SceneCore TextureSampler sabitleri, okunabilirliği artırmak için güncellendi. Örneğin, TextureSampler.MinFilter.LINEAR artık TextureSampler.MIN_FILTER_LINEAR (Ib159c) oldu.
  • Sahnenin setKeyEntity ayarlayıcısı, keyEntity değişkeniyle birleştirildi. keyEntity, AnchorEntity gibi taşınamayan bir varlığa ayarlanırsa boole değeri olarak "false" döndürmek yerine IllegalArgumentException hatası verir. (I62080, b/428721695, b/422215745)
  • Sahnenin SpatialModeChangeListener değişkeni setSpatialModeChangedListener ile değiştirildi. SpatialModeChangedListener yerine Consumer<SpatialModeChangeEvent> alır. setSpatialModeChangedListener artık isteğe bağlı olarak bir Executor alabilir. (I62080, b/428721695, b/422215745)
  • ActivityPanelEntity.startActivity öğesinden bundle parametresi kaldırıldı (I64344, b/430332856, b/430333040)
  • SpatializerConstants.SOURCE_TYPE_BYPASS, SpatializerConstants.SOURCE_TYPE_DEFAULT olarak yeniden adlandırıldı. (Ifc7fe, b/422215565)
  • SpatialSoundPool.PLAY_FAILED sabiti eklendi. (Ifc7fe, b/422215565)
  • SpatialSoundPool.play yöntemlerine varsayılan bağımsız değişkenler eklendi. (Ifc7fe, b/422215565)
  • SpatialAudioTrackBuilder içindeki ayarlayıcıların döndürülen değeri kaldırıldı. (Ifc7fe, b/422215565)
  • SurfaceEntity değişiklikleri
    • SurfaceEntity.CanvasShape, Shape adlı öğeyi yeniden adlandırdı
    • SurfaceEntity.CanvasShape.Vr180Hemisphere, Hemisphere adlı öğeyi yeniden adlandırdı
    • SurfaceEntity.CanvasShape.Vr360Sphere, Sphere adlı öğeyi yeniden adlandırdı
    • SurfaceEntity.EdgeFeatheringParams.SmoothFeather, RectangleFeather adlı öğeyi yeniden adlandırdı
    • SurfaceEntity.EdgeFeathingParams.SolidEdge, NoFeathering adlı öğeyi yeniden adlandırdı
    • SurfaceEntity.ContentSecurityLevel, SurfaceProtection adlı öğeyi yeniden adlandırdı
    • SurfaceEntity.ContentSecurityLevel.{values}, SURFACE_PROTECTION_ önekini ekledi.
    • SurfaceEntity.SuperSampling.{$values}, SUPER_SAMPLING_ ön ekini ekledi
    • SurfaceEntity.StereoMode.{values}, STEREO_MODE_ ön ekini ekledi
    • SurfaceEntity.ContentColorMetadata.maxCLL, maxContentLightLevel olarak yeniden adlandırıldı (I7eb5f, b/422216050, b/427529950)
  • launchActivity, startActivity olarak yeniden adlandırıldı (I7db90, b/430332856)
  • Scene.activitySpaceRoot kaldırıldı. Bunun yerine Scene.activitySpace politikasını kullanın. (I05ee8, b/378706624, b/422215745)
  • configureBundleForFullSpaceModeLaunch ve configureBundleForFullSpaceModeLaunchWithEnvironmentInherited sırasıyla createBundleForFullSpaceModeLaunch ve createBundleForFullSpaceModeLaunchWithEnvironmentInherited olarak 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).
  • GroupEntity fabrikası artık Entity yerine GroupEntity türünü döndürüyor. (I66042)

Hata Düzeltmeleri

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'ın BaseEntity ve BaseScenePose API'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 SurfaceEntities eklenir. (I118f6)
  • PerceivedResolution HSM'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ği ActivitySpace öğ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.IntSize2d olarak; androidx.xr.scenecore.Dimensions, androidx.xr.runtime.math.FloatSize3d olarak; androidx.xr.scenecore.ActivityPose, ScenePose olarak; androidx.xr.scenecore.ContentlessEntity, GroupEntity olarak; androidx.xr.scenecore.PlaneType, PlaneOrientation olarak; androidx.xr.scenecore.PlaneSemantic, PlaneSemanticType olarak. (Ifd405)(I3b622) (If534d)
  • Scene özelliklerinin bazı ayarlayıcıları gizli hale getirildi. Bunların SceneCore istemcileri tarafından değiştirilmesi amaçlanmamıştı: activitySpace, activitySpaceRoot, mainPanelEntity, perceptionSpace, spatialCapabilities, spatialEnvironment ve spatialUser. (I2f506)
  • Varlık'ta: Aşağıdakiler özellik olarak değiştirildi: get/setParent(), setContentDescription; Entity.is/setHidden() kullanımdan kaldırıldı, bunun yerine Entity.is/setEnabled kullanın. (Ibc4c6)
  • androidx.xr.scenecore.BasePanelEntity sınıfı kaldırıldı. Bunun yerine doğrudan PanelEntity sınıfını kullanın. PanelEntity için alıcılar ve ayarlayıcılar özelliklerle değiştirildi. PanelEntity.size özelliği Float3dSize iken Float2dSize olarak değiştirildi. Desteği sonlandırılan androidx.xr.scenecore.PanelEntity.getPixelDimensions yöntemi kaldırıldı. Bunun yerine getSizeInPixels yöntemini kullanın. (Icc174)
  • androidx.xr.scenecore.OnSpaceUpdatedListener, Runnable ile değiştirildi. (I19308)
  • SpatialUser.getCameraViews(), bir mülkle değiştirildi. (Ib0cc5) ExrImage ve GltfModel: için create yöntemleri, askıya alma işlevleri olacak şekilde değiştirildi. Oluşturma parametreleri, String yerine Uri veya Path kabul edecek şekilde değiştirildi. (Id8883) (I0d247), (I25706)
  • SpatialEnvironment.requestFullSpaceMode ve SpatialEnvironment.requestHomeSpaceMode, Sahne'ye taşındı. Örneğin, session.scene.spatialEnvironment.requestFullSpaceMode() yerine session.scene.requestFullSpaceMode() kullanın. addOnPassthroughOpacityChangedListener ve addOnSpatialEnvironmentChangedListener artık isteğe bağlı Executor'ları kabul eden geçersiz kılmalara sahip. (I12fe0) (I6b21e)
  • Desteği sonlandırılan şu SpatialEnvironment yöntemleri kaldırıldı: togglePassthrough, setPassthrough, setPassthroughOpacity, getPassthroughMode, getPassthroughOpacity, setSkybox ve setGeometry. Ayrıca, desteği sonlandırılan SpatialEnvironment.PassthroughMode sınıfı da kaldırıldı (I927bd) (I927bd) (I927bd).
  • Şu SpatialEnvironment alıcı ve ayarlayıcılar Kotlin özellikleriyle değiştirildi: getCurrentPassthroughOpacity(), get/setPassthroughOpacityPreference(), get/setSpatialEnvironmentPreference(), isSpatialEnvironmentPreferenceActive() (I33a7b) (Ie06e2) (Ie06e2)
  • SpatialEnvironmentPreference.preferredPassthroughOpacity türü Float? iken Float olarak değiştirildi. Artık boş değerleri kabul etmez. Bunun yerine, opaklık tercihinin olmadığını belirtmek için SpatialEnvironment.NO_PASSTHROUGH_OPACITY_PREFERENCE kullanılır. (I40107)
  • Oluşturma yönteminde windowBoundsPx parametresi pixelDimensions olarak, türü ise Rect yerine IntSize2d olarak güncellendi. (I1926e)
  • SpatialEnvironment oluşturucusu artık dahili (I75a51)
  • SpatialPointerIconNone sınıfı ve SpatialPointerIconCircle sınıfları, SpatialPointerIcon.NONE ve SpatialPointerIcon.CIRCLE tamamlayıcı nesneleriyle değiştirildi (I416d2).
  • SpatialPointerComponent tablosundaki SpatialPointerIcon artık boş değer alamaz. Sistem varsayılan işaretçi simgesinin kullanılması gerektiğini belirtmek için null yerine SpatialPointerIcon.DEFAULT kullanı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ı. AnchorEntity sı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. AnchorEntity için androidx.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.addOnBoundsChangedListener olarak yeniden adlandırıldı. ActivitySpace.setOnSpaceUpdatedListener, ekleme/kaldırma yöntemleriyle değiştirildi. (I4c956)
  • AnchorPlacement: planeTypeFilter, anchorablePlaneOrientations olarak yeniden adlandırıldı. planeSemanticFilter, anchorablePlaneSemanticTypes olarak yeniden adlandırıldı. AnchorEntity veya ActivitySpace'ye MovableComponent eklemek yanlış değerini döndürür, MoveListener, EntityMoveListener shouldDisposeParentAnchor olarak yeniden adlandırıldı, disposeParentOnReAnchor systemMovable, creeateCustomMovable lehine create işlevinden kaldırıldı, createSystemMovable ve createAnchorable (If11c4)
  • SurfaceEntity.featherRadiusX/Y kaldırıldı ve EdgeFeatheringParams sınıf kavramı eklendi. (Ic78fc)
  • PanelEntity.enablePanelDepthTest() yöntemi, panelClippingConfig özelliğiyle değiştirildi. Derinlik testini etkinleştirmek için Scene.panelClippingConfig = PanelClippingConfig(isDepthTestEnabled = true), devre dışı bırakmak için PanelClippingConfig(isDepthTestEnabled = false) olarak ayarlayın. (I0cbe0)
  • Scene.mainPanelEntity artık PanelEntity yerine MainPanelEntity türünde (I7125a)
  • Scene'in setFullSpaceMode yöntemi configureBundleForFullSpaceModeLaunch, setFullSpaceModeWithEnvironmentInherited yöntemi ise configureBundleForFullSpaceModeLaunchWithEnvironmentInherited olarak 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).
  • SpatialVisibility sınıfı, const Int değerleri içeren herkese açık nesneyle değiştirildi. setSpatialVisibilityChangedListener artık Consumer<SpatialVisibility> yerine Consumer<Int> kabul ediyor (Ie7e8c)
  • PointerCaptureComponent sabitleri yeniden adlandırıldı ve PointerCaptureComponent.PointerCaptureState nesnesine 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ından SpatialWindow nesnesine taşındı ve ilk parametre olarak Session'ı alır. (I7b717)
  • Entity.setHidden(), Entity.setEnabled() ile değiştirildi ve Entity.isHidden(), Entity.isEnabled() ile değiştirildi. setHidden(false), setEnabled(true) ve isHidden() == !isEnabled() değerine eşittir. (Icf0de)
  • Entity.contentDescription türü, dizeden CharSequence olarak değiştirildi. (Ie59be)
  • Session.create ve Session.configure, yeterli izinler verilmediğinde SessionCreatePermissionsNotGranted veya SessionConfigurePermissionsNotGranted döndürmek yerine SecurityException hatası veriyor. (I7c488)
  • ResizableComponent.create artık Consumer<ResizeEvent> ResizeEventListener gerektiriyor. Consumer<ResizeEvent> ResizableComponent.size, ResizableComponent.affordanceSize ResizableComponent.minimumSize olarak yeniden adlandırıldı. ResizableComponent.minimumEntitySize ResizableComponent.maximumSize, ResizableComponent.maximumEntitySize olarak yeniden adlandırıldı. ResizableComponent.autoHideContent, ResizableComponent.shouldAutoHideContent olarak yeniden adlandırıldı. ResizableComponent.forceShowResizeOverlay, ResizableComponent.shouldAlwaysShowOverlay olarak yeniden adlandırıldı (I97a2d).
  • androidx.xr.scenecore ve androidx.xr.compose için minSDK 24'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)
  • SceneCore ana 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çin xr:scenecore:scenecore-guava kitaplığı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)
  • ListenableFuture döndüren tüm eş zamansız yöntemler Kotlin askıya alma işlevleriyle değiştirildi. Kotlin askıya alma işlevleri yerine ListenableFuture tabanlı eşzamansız yöntemleri kullanmak isteyen Java geliştiricilerinin artık :xr:scenecore-scenecore-guava içindeki uzantı işlevlerini kullanması gerekir. Örneğin, GuavaExrImage, Guava eşdeğeri ExrImage eş zamansız işlevlerini, GuavaScenePose, Guava eşdeğeri ScenePose eş zamansız işlevlerini, GuavaGltfModel, Guava-equivalent GltfModel eş zamansız işlevlerini vb. içerir. (If7283) (I0af60) (If7283) (Ia8515) (I4efdf) (I54bbf) (I3467a) (I82a33)

Hata Düzeltmeleri

  • Sadeleştirilmiş istemcilerde AbstractMethodError sorununu önlemek için Jetpack XR Scenecore ProGuard kuralı güncellendi. (I91a01)
  • Jetpack XR SceneCore için Proguard sadeleştirmesini destekleyen ek düzeltmeler (I4f47e)
  • Sistemden döndürülen hitPosition null ise InputEvent öğesinin HitInfo'sundaki hitPosition kilitlenebileceğinden InteractableComponent öğ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)
  • SceneCore TestApp'te FOV ve HitTest ile 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.
  • StereoSurfaceEntity artık iki yeni StereoMode değeriyle MV-HEVC oynatmayı destekliyor: MULTIVIEW_LEFT_PRIMARY ve MULTIVIEW_RIGHT_PRIMARY.
  • PanelEntity.setSize ve PanelEntity.getSize artık üst alandaki boyutları döndürüyor.
  • Entity.setPose, Entity.getPose, Entity.setScale, Entity.getScale, Entity.setAlpha ve Entity.getAlpha artık farklı alanlara göre değerleri alma/ayarlama imkanı sunan yeni bir relativeTo parametresi 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.kt sınıfına eklenen Spatial Visibility Callback uzantı yöntemleri.
  • setPointSourceParams, SpatialAudioTrack sınıfına eklendi. Bu sayede, parça oluşturulduktan sonra parametreler güncellenebilir.
  • Scenecore API'lerine referanslar içeren yeni bir sınıf (Scene) eklendi. Scene'e, Session'ın bir uzantı özelliği olarak erişilebilir. SessionExt içindeki işlevler Scene'e taşındığından içe aktarma işlemlerinin ayarlanması gerekir (ör. SessionExt.getScene(session)).addSpatialCapababilitiesChangedListener - SessionExt.addSpatialCapabilitiesChangedListener.
  • ActivityPose.hitTestAsync eklendi. Bu sayede sanal içeriklere karşı hitTest sağlanıyor.
  • İşaretçi için oluşturulan simgeyi belirtmeye veya simgeyi devre dışı bırakmaya olanak tanıyan yeni bileşen türü SpatialPointerComponent eklendi. Bu bileşen şu anda yalnızca PanelEntity örneğe eklenebilir.
  • Panel boyutlarını metre veya piksel cinsinden alan yeni PanelEntity fabrikası kullanıma sunuldu. Panel için iki Dimension türü parametre alan eski PanelEntity fabrikası 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).
  • PermissionHelper sınıfı kaldırıldı.
  • PanelEntity.getPixelDensity kullanımdan kaldırıldı.
  • PanelEntity.setPixelDimensions ve PanelEntity.getPixelDimension kaldırıldı, yerlerine setSizeInPixels ve getSizeInPixels getirildi.
  • Entity.getActivitySpaceAlpha kaldırıldı. Entity.getAlpha(Space.Activity) ile değiştirilebilir.
  • Entity.getWorldSpaceScale kaldırıldı. Entity.getScale(Space.REAL\_WORLD) ile değiştirilebilir.
  • SceneCore içindeki Session sınıfı, XR Runtime'daki Session sınıfı lehine silindi.
  • StereoSurfaceEntity, SurfaceEntity olarak yeniden adlandırıldı.
  • Entity.setSize ve Entity.getSize kaldırıldı ve aynı yöntemler PanelEntity için eklendi.
  • PointSourceAttributes, PointSourceParams olarak yeniden adlandırıldı.
  • SpatializerConstants.SOURCE\_TYPE\_BYPASS, SpatializerConstants.SOURCE\_TYPE\_DEFAULT olarak yeniden adlandırıldı.
  • PointSourceParams varlığının erişim düzeyi, herkese açık yerine dahili olarak değiştirildi.
  • AnchorEntity.create için artık Session.configure() içinde PlaneTrackingMode yapılandırılması gerekiyor.
  • SpatialUser API'leri için artık Session.configure() içinde HeadTrackingMode yapılandırılması gerekiyor.
  • ResizableComponent eklenmediğ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.kt dosyasını bölün.
  • Yeni bir PanelEntity oluşturulduğunda çoğu görünüm bir FrameLayout ile yeniden ilişkilendirilir. Bu sayede LayoutInspector, 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

  • MovableComponent ve AnchorPlacement içeren bir PanelEntity taşındığında oluşabilecek kilitlenme sorununu önlemek için bir düzeltme eklendi.
  • ResizableComponent, onResizeStart geri çağırmasında eski boyutlar sağlıyordu. Bu sorun düzeltildi.
  • JxrPlatformAdapterAxr öğesinin dispose() 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 AbstractMethodError sorununu önlemek için Jetpack XR Scenecore ProGuard kuralı 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, Session sınıfından her bir türün tamamlayıcı yöntemine taşındı:
    • Session.createActivityPanelEntity(Dimensions, String, Activity, Pose) silindi ve ActivityPanelEntity.create(Session, Dimensions, String, Pose) ile değiştirildi
    • Session.createAnchorEntity(Anchor) silindi ve AnchorEntity.create(Session, Anchor) ile değiştirildi
    • Session.createAnchorEntity(Dimensions, Int, Int, Duration) silindi ve AnchorEntity.create(Session, Dimensions, Int, Int, Duration) ile değiştirildi
    • Session.createEntity(String, Pose) silindi ve ContentlessEntity.create(Session, String, Pose) ile değiştirildi
    • Session.createExrImageResource(String) silindi ve ExrImage.create(Session, String) ile değiştirildi
    • Session.createGltfEntity(GltfModel, Pose) silindi ve GltfModelEntity.create(Session, GltfModel, Pose) ile değiştirildi
    • Session.createGltfModelResource(String) silindi ve GltfModel.create(Session, String) ile değiştirildi
    • Session.createInteractableComponent(Executor, InputEventListener) silindi ve InteractableComponent.create(Session, Executor, InputEventListener) ile değiştirildi
    • Session.createMovableComponent(Boolean, Boolean, Set<AnchorPlacement>, Boolean) silindi ve MovableComponent.create(Session, Boolean, Boolean, Set<AnchorPlacement>, Boolean) ile değiştirildi
    • Session.createPanelEntity(View, Dimensions, Dimensions, String, Pose) silindi ve PanelEntity.create(Session, View, Dimensions, Dimensions, String, Pose) ile değiştirildi
    • Session.createResizableComponent(Dimensions, Dimensions) silindi ve ResizableComponent.create(Session, Dimensions, Dimensions) ile değiştirildi
    • Session.createStereoSurfaceEntity(Int, Dimensions, Pose) silindi ve StereoSurface.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 yerine getSpatialCapabilities.hasCapabilility(SPATIAL_CAPABILITY_EMBED_ACTIVITY) politikasını kullanın.
    • Session.hasSpatialCapability(Int) silindi. getSpatialCapabilities(), SpatialCapabilities nesnesi döndürdüğünden, uzamsal özelliklerin varlığını kontrol etmek için daha bölümlere ayrılmış bir yöntem olarak yerine getSpatialCapabilities().hasCapability() kullanılmaya başlandı.
    • Session.requestFullSpaceMode() silindi ve SpatialEnvironment.requestFullSpaceMode() ile değiştirildi
    • Session.requestHomeSpaceMode() silindi ve SpatialEnvironment.requestHomeSpaceMode() ile değiştirildi
  • Session.setFullSpaceMode(Bundle) ve Session.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.setFullSpaceMode
    • import 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>) ve Session.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.getEntitiesOfType
    • import androidx.xr.scenecore.getEntityForRtEntity
  • Session.unpersistAnchor(Anchor) silindi
  • Session.createPersistedAnchorEntity(UUID) silindi

Bilinen sorunlar

  • PanelEntity.setCornerRadius() ve ActivityPanelEntity.setCornerRadius(), panel bir sonraki sefer taşınana kadar geçerli olmayabilir. Bu durum, panel mevcut konumuna taşınarak düzeltilebilir.
  • ActivitySpace üzerinde BoundsChanged çağrıldığında bazı ActivityPose'ler doğru şekilde güncellenmemiş olabilir. ActivitySpace tarihinde yapılacak bir sonraki OnSpaceUpdated görüşmesinde güncellenecek.

Bozucu ve davranışsal değişiklikler

  • PanelEntity ve ActivityPanelEntity, 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 Spherical ve Hemispherical tuval oluşturmaya olanak tanıyan StereoSurface.CanvasShape kullanıma sunuldu.
  • StereoSurfaceEntity.create() artık bir CanvasShape parametresi kabul ediyor. (Bu parametre şu anda yoksayılmaktadır ancak gelecekteki bir sürümde kullanılacaktır.)
  • StereoSurfaceEntity.create() artık Dimensions parametresi almıyor. Uygulamalar, CanvasShape ayarını yaparak tuvalin boyutunu kontrol etmelidir.
  • StereoSurfaceEntity, dinamik olarak ayarlanabilen bir CanvasShape üyesine sahip.
  • StereoSurfaceEntity.dimensions artık salt okunur bir özelliktir. Uygulamaların boyutları değiştirmek için CanvasShape özelliğini ayarlaması gerekir.
  • StereoSurfaceEntity, oluşturma işleminden sonra StereoMode değ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.
  • SceneCore uygulamasının Session factory (Session.create) bileşeni artık SCENE_UNDERSTANDING iznini 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ürerek ActivitySpace ölçeğini hesaba katacak şekilde düzeltildi. transformPoseTo artık kaynak veya hedefte ActivitySpace kullanı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çin setSpatialEnvironmentPreference(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_UNDERSTANDING izni 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ığı api bağı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-android ve com.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.