รันไทม์ XR

เริ่มเซสชัน AR หรือ 3D ที่กำหนดเองด้วยรันไทม์เนทีฟของเรา
อัปเดตล่าสุด รุ่นที่เสถียร รุ่นที่อาจได้รับการเผยแพร่ รุ่นเบต้า รุ่นอัลฟ่า
25 มีนาคม 2026 - - - 1.0.0-alpha12

การประกาศทรัพยากร Dependency

หากต้องการเพิ่มทรัพยากร Dependency ในรันไทม์ XR คุณต้องเพิ่มที่เก็บ Google Maven ลงในโปรเจ็กต์ อ่าน ที่เก็บ Maven ของ Google เพื่อดูข้อมูลเพิ่มเติม

เพิ่มทรัพยากร Dependency สำหรับอาร์ติแฟกต์ที่ต้องการในไฟล์ build.gradle ของแอปหรือโมดูล

Groovy

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

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

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

Kotlin

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

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

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

ดูข้อมูลเพิ่มเติมเกี่ยวกับทรัพยากร Dependency ได้ที่หัวข้อเพิ่มทรัพยากร Dependency ของบิลด์

ความคิดเห็น

ความคิดเห็นของคุณช่วยเราปรับปรุง Jetpack ให้ดียิ่งขึ้น โปรดแจ้งให้เราทราบหากพบปัญหาใหม่หรือมีไอเดียในการปรับปรุงไลบรารีนี้ โปรดดู ปัญหาที่มีอยู่แล้ว ในไลบรารีนี้ก่อนสร้างปัญหาใหม่ คุณสามารถโหวตปัญหาที่มีอยู่แล้วได้โดยคลิกปุ่มรูปดาว

สร้างปัญหาใหม่

ดูข้อมูลเพิ่มเติมได้ในเอกสารประกอบของIssue Tracker

เวอร์ชัน 1.0

เวอร์ชัน 1.0.0-alpha12

25 มีนาคม 2026

เผยแพร่ androidx.xr.runtime:runtime-*:1.0.0-alpha12 แล้ว เวอร์ชัน 1.0.0-alpha12 มีการคอมมิตต่อไปนี้

การเปลี่ยนแปลง API

  • เปลี่ยน Config.augmentedObjectCategories จาก List เป็น Set (I25a64, b/487376359)
  • นำแฟล็ก unscaledGravityAlignedActivitySpace ออกจาก Session.create ตอนนี้ ActivitySpace จะไม่มีการปรับขนาดและมีการจัดแนวแรงโน้มถ่วงเสมอ (If6f11, b/458173423)
  • เพิ่มการโอเวอร์โหลด Session.create เพื่ออนุญาตให้ส่งบริบทของ Android สำหรับการกำหนดขอบเขตทรัพยากร (I7d3fe, b/415805990, b/477386334)
  • เพิ่ม JvmOverloads ลงใน FloatSize2d.to3d, Matrix3.copy และ Matrix4.copy (I69586, b/481371562)
  • เพิ่มความสามารถในการตั้งค่าหมวดหมู่สำหรับการติดตาม AugmentedObject ใน Config (I1f6e4, b/480220930)
  • เพิ่มโมดูล xr:runtime:runtime-interfaces (I52ac6, b/461561664)

เวอร์ชัน 1.0.0-alpha11

25 กุมภาพันธ์ 2026

เผยแพร่ androidx.xr.runtime:runtime-*:1.0.0-alpha11 แล้ว เวอร์ชัน 1.0.0-alpha11 มี การคอมมิตต่อไปนี้

การเปลี่ยนแปลง API

  • จำกัดอินเทอร์เฟซ ConfigMode ให้ใช้ภายใน (Ibfb87)
  • ย้าย androidx.xr.runtime.Config.GeospatialMode ไปที่ระดับแพ็กเกจ (Ibe682)
  • ย้าย androidx.xr.runtime.Config.FaceTrackingMode ไปที่ระดับแพ็กเกจ (Iac501)
  • ย้าย androidx.xr.runtime.Config.AnchorPersistenceMode ไปที่ระดับแพ็กเกจ (I0360f)
  • ย้าย androidx.xr.runtime.Config.DepthEstimationMode ไปที่ระดับแพ็กเกจ (I7e3e9)
  • ย้าย androidx.xr.runtime.Config.DeviceTrackingMode ไปที่ระดับแพ็กเกจ (I3aacd)
  • ย้าย androidx.xr.runtime.Config.HandTrackingMode ไปที่ระดับแพ็กเกจ (I658f3)
  • ย้าย androidx.xr.runtime.Config.PlaneTrackingMode ไปที่ระดับแพ็กเกจ (Ia251b)
  • ย้าย androidx.xr.runtime.XrDevice.DisplayBlendMode ไปที่ระดับแพ็กเกจ (I6f333)
  • เพิ่มเมธอด Factory เพื่อสร้าง XrDevice โดยใช้บริบท เซสชัน และ CoroutineContext (I139c5)
  • เพิ่ม SpatialApiVersionHelper เพื่อช่วยในการค้นหาเวอร์ชันรันไทม์ของ Android XR ที่พร้อมใช้งานบนแพลตฟอร์ม (I7c53c)
  • เพิ่มโมดูล xr:runtime:runtime-openxr (Ib42ea)

เวอร์ชัน 1.0.0-alpha10

28 มกราคม 2026

เผยแพร่ androidx.xr.runtime:runtime-*:1.0.0-alpha10 แล้ว เวอร์ชัน 1.0.0-alpha10 มี การคอมมิตต่อไปนี้

การเปลี่ยนแปลง API

  • ConfigMode.HeadTrackingMode ถูกแทนที่ด้วย ConfigMode.DeviceTrackingMode (le273e, b/467150206)
  • นำเมธอด toNormalized, times(float), div(float) ของ Quaternion ออก เมธอดเหล่านี้ไม่จำเป็นเนื่องจาก Quaternion ทั้งหมดได้รับการทำให้เป็นมาตรฐานในเวลาที่สร้าง และคลาสนี้ไม่สามารถเปลี่ยนแปลงได้ (l558fc, b/460210457)

การแก้ไขข้อบกพร่อง

  • เพิ่มเอกสารประกอบลงใน Session.create ซึ่งแสดงวิธีหลีกเลี่ยงการสร้างเซสชันในเทรดหลักของแอปพลิเคชัน (le5554, b/463687170)
  • ป้องกันไม่ให้แอปพลิเคชันสร้าง BoundingBox ที่มีค่า NaN (l58c14, b/464025895)

เวอร์ชัน 1.0.0-alpha09

3 ธันวาคม 2025

เผยแพร่ androidx.xr.runtime:runtime-*:1.0.0-alpha09 แล้ว เวอร์ชัน 1.0.0-alpha09 มี การคอมมิตต่อไปนี้

เวอร์ชัน 1.0.0-alpha08

19 พฤศจิกายน 2025

เผยแพร่ androidx.xr.runtime:runtime-*:1.0.0-alpha08 แล้ว เวอร์ชัน 1.0.0-alpha08 มีการคอมมิตต่อไปนี้

ฟีเจอร์ใหม่

  • เพิ่ม XrDevice เพื่อให้ข้อมูลเกี่ยวกับความสามารถของอุปกรณ์ (Ic9d1f)
  • เพิ่ม API ConfigMode.isSupported ใหม่สำหรับการค้นหาความสามารถของเซสชัน (Iff7af)
  • เพิ่ม API XrDisplay.BlendMode (I484e4)

การเปลี่ยนแปลง API

  • เปลี่ยนชื่อ [XrDevice.getPreferredBlendMode] เป็น [XrDevice.getPreferredDisplayBlendMode] (I7e48f)

เวอร์ชัน 1.0.0-alpha07

22 ตุลาคม 2025

เผยแพร่ androidx.xr.runtime:runtime-*:1.0.0-alpha07 แล้ว เวอร์ชัน 1.0.0-alpha07 มีการคอมมิตต่อไปนี้

การเปลี่ยนแปลง API

  • นำ SessionConfigureConfigureNotSupported ออกและแทนที่ด้วย UnsupportedOperationException (I7680f)

เวอร์ชัน 1.0.0-alpha06

24 กันยายน 2025

เผยแพร่ androidx.xr.runtime:runtime-*:1.0.0-alpha06 แล้ว เวอร์ชัน 1.0.0-alpha06 มีการคอมมิตต่อไปนี้

การเปลี่ยนแปลง API

  • ย้าย HandJointType จาก xr:runtime:runtime ไปที่ xr:arcore:arcore (Iadb9c, b/409058039)
  • เปลี่ยนโอเปอเรเตอร์ times สำหรับ componentWiseMultiplication สำหรับ Vector2, Vector3, Vector4 เป็น scale และนำสัญลักษณ์โอเปอเรเตอร์ออกเพื่อให้สอดคล้องกับไลบรารีคณิตศาสตร์อื่นๆ นอกจากนี้ ยังนำ componentWiseDivision ออกจากคลาส Vector เพื่อใช้ Vector.scale(otherVector.inverse()) แทน (I8e1f6, b/399146447)
  • เพิ่ม [unscaled] เพื่อแสดงผลเมทริกซ์ที่มีสเกลเป็น 1 (I6381d, b/434928658)
  • ระบบจะนำ :xr:runtime:runtime-guava ออกเนื่องจาก Coroutines.kt ถูกแทนที่ด้วย SuspendtoFutureAdapter (I0cd3c, b/406597902)

เวอร์ชัน 1.0.0-alpha05

30 กรกฎาคม 2025

เผยแพร่ androidx.xr.runtime:runtime-*:1.0.0-alpha05 แล้ว เวอร์ชัน 1.0.0-alpha05 มี การคอมมิตต่อไปนี้

ฟีเจอร์ใหม่

  • เพิ่ม HandJointType และ TrackingState (I55880, b/334645808)
  • ทำให้การใช้งาน Config เป็นแบบสาธารณะ (I95860, b/334645808)
  • เปิดตัวประเภท SessionCreateResult และ SessionConfigureResult ใหม่ (Icb8cb, b/334645808)
  • เพิ่มคลาส BoundingBox ใหม่ที่แสดงกรอบล้อมรอบที่จัดแนวแกนในพื้นที่ 3 มิติ ซึ่งกำหนดโดยจุดมุมต่ำสุดและสูงสุด (Ic68c5, b/423073468)

การเปลี่ยนแปลง API

  • เปลี่ยนชื่อและย้าย androidx.xr.scenecore.PixelDimensions เป็น androidx.xr.runtime.math.IntSize2d เปลี่ยนชื่อและย้าย androidx.xr.scenecore.Dimensions เป็น androidx.xr.runtime.math.FloatSize3d เปลี่ยนชื่อ androidx.xr.scenecore.PlaneType เป็น androidx.xr.scenecore.PlaneOrientation เปลี่ยนชื่อ androidx.xr.scenecore.PlaneSemantic เป็น androidx.xr.scenecore.PlaneSemanticType (Ifd405, b/416456228)
  • นำคลาส androidx.xr.runtime.FoV ออก ใช้ androidx.xr.runtime.FieldOfView แทน (I9ae27)
  • เพิ่มการโอเวอร์โหลดเพิ่มเติมสำหรับ Session.create ซึ่งสามารถระบุ LifecycleOwner ให้เซสชันแนบได้ โปรดทราบว่าคุณยังต้องระบุกิจกรรมสำหรับการเป็นเจ้าของทรัพยากร และ LifecycleOwner ต้องอยู่ในขอบเขตของกิจกรรม (I1690b)
  • เปลี่ยนชื่อ FakeRuntimeAnchor.anchorsCreated เป็น anchorsCreatedCount (I96df9, b/424441218)
  • เปลี่ยนชื่อค่า Config *Mode เพื่อให้สะท้อนลักษณะการทำงาน (I6d247, b/414648065)
  • โปรเจ็กต์ที่เผยแพร่ด้วย Kotlin 2.0 ต้องใช้ KGP 2.0.0 ขึ้นไป (Idb6b5, b/344563182)
  • ย้าย API ที่เกี่ยวข้องกับสตริง Manifest จาก :xr:runtime:runtime ไปที่ :xr:runtime:runtime-manifest ชื่อแพ็กเกจเปลี่ยนจาก androidx.xr.runtime เป็น androidx.xr.runtime.manifest (I610ad, b/418800249)
  • นำ Session.resume(), Session.pause() และ Session.destroy() ออกจากพื้นผิว API เซสชันไม่ใช่ LifecycleOwner อีกต่อไป ตอนนี้วงจรของเซสชันจะแนบกับวงจรของกิจกรรมที่ส่งใน Session.create() (I28a03)
  • ตอนนี้ไลบรารีนี้ใช้ คำอธิบายประกอบ nullness ของ JSpecify ซึ่งเป็นการใช้ประเภท นักพัฒนาซอฟต์แวร์ Kotlin ควรใช้อาร์กิวเมนต์คอมไพเลอร์ต่อไปนี้เพื่อบังคับใช้การใช้งานที่ถูกต้อง: -Xjspecify-annotations=strict (นี่คือค่าเริ่มต้นที่เริ่มต้นด้วยคอมไพเลอร์ Kotlin เวอร์ชัน 2.1.0) (Ia8420, b/326456246)
  • อาร์ติแฟกต์รันไทม์หลัก (:xr:runtime:runtime) จะมีเฉพาะ API แบบไม่พร้อมกันสไตล์ Kotlin นักพัฒนาซอฟต์แวร์ Java สามารถใช้ :xr:runtime:runtime-guava เพื่อเข้าถึง API ที่เข้ากันได้ (I05d4a, b/426639315)
  • อาร์ติแฟกต์รันไทม์หลัก (:xr:runtime:runtime) จะมีเฉพาะ API แบบไม่พร้อมกันสไตล์ Kotlin นักพัฒนาซอฟต์แวร์ Java สามารถใช้ไลบรารี xr:runtime:runtime-rxjava3 เพื่อเข้าถึง API ที่เข้ากันได้ (I64122, b/426639775)
  • ย้าย Coroutines ไปที่ :xr:runtime:runtime-guava และ Flows ไปที่ :xr:runtime:runtime-rxjava3 (I60ae9)
  • ตอนนี้ Session.create และ Session.configure จะแสดง SecurityException เมื่อไม่ได้ให้สิทธิ์ที่เพียงพอ แทนที่จะแสดง SessionCreatePermissionsNotGranted หรือ SessionConfigurePermissionsNotGranted (I7c488, b/430651879)

เวอร์ชัน 1.0.0-alpha04

7 พฤษภาคม 2025

เผยแพร่ androidx.xr.runtime:runtime:1.0.0-alpha04, androidx.xr.runtime:runtime-openxr:1.0.0-alpha04 และ androidx.xr.runtime:runtime-testing:1.0.0-alpha04 แล้ว เวอร์ชัน 1.0.0-alpha04 มีการคอมมิตต่อไปนี้

ฟีเจอร์ใหม่

  • ตอนนี้เซสชันใช้ androidx.lifecycle.LifecycleOwner เพื่อให้ทำงานร่วมกับกระบวนทัศน์วงจรของ Android ที่มีอยู่ได้มากขึ้น
  • สตริง Manifest สำหรับ Android XR มีการระบุและบันทึกไว้ที่นี่
  • เพิ่มเมธอดส่วนขยาย Spatial Visibility Callback เพื่อตรวจสอบเมื่อเนื้อหาฉากเคลื่อนที่เข้าหรือออกจากขอบเขตการมองเห็นของผู้ใช้
  • เพิ่มเวอร์ชัน Stub ของ JxrPlatformAdapter (และคลาสที่เกี่ยวข้องทั้งหมด)
  • ระบบจะใช้เซสชันในทั้ง SceneCore และรันไทม์แทนที่จะใช้เซสชันใน SceneCore
  • เพิ่ม ActivityPose.hitTest ซึ่งช่วยให้ hitTest กับเนื้อหาเสมือนได้
  • ตอนนี้ระบบรองรับการระบุการใช้งานรันไทม์หลายรายการในเวลาคอมไพล์ ระบบจะโหลดเพียงรายการเดียวในเวลาดำเนินการโดยอิงตามชุดฟีเจอร์ของอุปกรณ์ปัจจุบัน
  • เพิ่มประเภทคอมโพเนนต์ใหม่ SpatialPointerComponent ซึ่งช่วยให้ไคลเอ็นต์ระบุไอคอนที่จะแสดงผลสำหรับตัวชี้ หรือปิดใช้ไอคอนได้ ปัจจุบันคอมโพเนนต์นี้แนบได้กับอินสแตนซ์ PanelEntity เท่านั้น

การเปลี่ยนแปลง API

  • ทำให้การใช้งาน Config เป็นแบบสาธารณะ (I95860)
  • เพิ่ม HandJointType และ TrackingState (I55880)
  • โปรเจ็กต์ที่เผยแพร่ด้วย Kotlin 2.0 ต้องใช้ KGP 2.0.0 ขึ้นไป (Idb6b5)
  • Hand.isActive (boolean) เปลี่ยนเป็น Hand.trackingState แล้ว การใช้งาน OpenXR ได้รับการแก้ไขตามนั้น
  • ข้อกำหนดสิทธิ์ android.permission.SCENE_UNDERSTANDING ใน Session.configure เปลี่ยนเป็น android.permission.SCENE_UNDERSTANDING_COARSE แล้ว
  • LifecycleManager.configure ได้รับการใช้งานแล้ว และตอนนี้จะส่งออบเจ็กต์ Config ซึ่งมีพร็อพเพอร์ตี้สำหรับฟีเจอร์รันไทม์ที่กำหนดค่าได้แต่ละรายการ
  • ตอนนี้คุณเรียก Session.configure ด้วย Config เพื่อกำหนดค่าฟีเจอร์รันไทม์ที่พร้อมใช้งานได้แล้ว
  • ตอนนี้ Session.create รองรับการส่ง CoroutineContext แทน CoroutineDispatcher
  • Session.create รองรับการโหลด ARCore สำหรับ Jetpack XR และ/หรือ SceneCore คุณต้องระบุอย่างน้อย 1 รายการ (มีเวอร์ชันทดสอบให้ใช้งาน)
  • FakePerceptionManager จะแสดง AnchorInvalidUuidException เมื่อส่ง UUID ที่ไม่ถูกต้องไปยัง Anchor.load และ Anchor.unpersist
  • CoreState ไม่ใช่คลาสข้อมูลอีกต่อไป

การแก้ไขข้อบกพร่อง

  • แก้ไขการกำหนดค่า Proguard ของรันไทม์แล้ว

เวอร์ชัน 1.0.0-alpha03

26 กุมภาพันธ์ 2025

เผยแพร่ androidx.xr.runtime:runtime:1.0.0-alpha03, androidx.xr.runtime:runtime-openxr:1.0.0-alpha03 และ androidx.xr.runtime:runtime-testing:1.0.0-alpha03 แล้ว โดยไม่มีการเปลี่ยนแปลงที่สำคัญนับตั้งแต่เวอร์ชันอัลฟ่าล่าสุด เวอร์ชัน 1.0.0-alpha03 มีการคอมมิตต่อไปนี้

เวอร์ชัน 1.0.0-alpha02

12 กุมภาพันธ์ 2025

เผยแพร่ androidx.xr.runtime:runtime:1.0.0-alpha02, androidx.xr.runtime:runtime-openxr:1.0.0-alpha02 และ androidx.xr.runtime:runtime-testing:1.0.0-alpha02 แล้ว เวอร์ชัน 1.0.0-alpha02 มีการคอมมิตต่อไปนี้

การเปลี่ยนแปลงที่ทำให้เกิดข้อขัดข้องและการเปลี่ยนแปลงลักษณะการทำงาน

  • ฟังก์ชันรันไทม์ OpenXR ที่แสดงผล Anchor จะแสดง AnchorResourcesExhaustedException หากพบรหัสข้อผิดพลาดที่แจ้งว่าถึงขีดจำกัดทรัพยากร OpenXR แล้ว
  • ตอนนี้ต้องมีสิทธิ์ android.permission.HAND_TRACKING สำหรับ Session.create และ Session.resume

ฟีเจอร์ใหม่

  • เพิ่มการรองรับการติดตามการเคลื่อนไหวของมือ

การแก้ไขข้อบกพร่อง

  • การสร้าง Anchor มีความเสถียรมากขึ้นเมื่อทำงานบนโปรแกรมจำลอง

เวอร์ชัน 1.0.0-alpha01

12 ธันวาคม 2024

เผยแพร่ androidx.xr.runtime:runtime-* 1.0.0-alpha01 แล้ว

ฟีเจอร์ของการเผยแพร่ครั้งแรก

การเผยแพร่ครั้งแรกของ Jetpack XR Runtime ไลบรารีนี้มีฟังก์ชันการทำงานพื้นฐานสำหรับชุดไลบรารี Jetpack XR ซึ่งรวมถึงการค้นหาความสามารถ การจัดการวงจร การกำหนดค่า และอื่นๆ ไลบรารีรันไทม์มีรูปแบบต่างๆ (เช่น runtime-openxr หรือ runtime-testing) ขึ้นอยู่กับแพลตฟอร์มการดำเนินการ นอกจากนี้ ไลบรารีนี้ยังมีนามธรรมทางคณิตศาสตร์พื้นฐาน เช่น Vector3 และ Matrix4 ที่ใช้ในพื้นผิว API ของ Jetpack XR ทั้งหมด

  • Session: ช่วยให้คุณควบคุมระบบ XR ได้อย่างละเอียด รวมถึงการตัดสินใจว่าจะดำเนินการประมวลผลเมื่อใดและเมื่อใดที่ไม่ดำเนินการ รวมถึงการกำหนดค่าโดยรวม นอกจากนี้ ยังเป็นแฮนเดิลที่คุณจะใช้ใน API อื่นๆ ทั้งหมดเพื่อปลดล็อกความสามารถของระบบเบื้องหลัง

  • Pose: ตำแหน่งในระบบพิกัดที่กำหนดเองซึ่งมีตำแหน่งและการวางแนวที่เชื่อมโยงอยู่ คุณจะใช้คลาสนี้เพื่อสื่อสารตำแหน่งของออบเจ็กต์กับ ARCore สำหรับ Jetpack XR และ Jetpack SceneCore

ปัญหาที่ทราบเกี่ยวกับ

  • configure ไม่มีการดำเนินการใดๆ ในขณะนี้ การเผยแพร่ในอนาคตจะเพิ่มการตั้งค่าใหม่ที่คุณใช้เพื่อควบคุมลักษณะการทำงานของ Session ได้