أخبار المنتجات

تحديثات على حزمة تطوير البرامج (SDK) لمنصة Android XR: تقديم الإصدار الرابع من "معاينة المطوّر"

قراءة لمدة 5 دقائق

يسرّنا اليوم إطلاق الإصدار الرابع من "معاينة المطوّر" لحزمة تطوير البرامج (SDK) لمنصة Android XR، مع مواصلة تركيزنا على توحيد عملية التطوير على الأجهزة المختلفة، مثل سمّاعات الرأس ونظارات بنظام الواقع الممتد السلكية والنظّارات الذكية. للحفاظ على سهولة استخدام منصتنا، سنعتمد تسميات أكثر وصفًا لأشكال الأجهزة، حيث ستصبح نظارات الذكاء الاصطناعي الصوتية تُعرف باسم "نظارات صوتية"، ونظارات الذكاء الاصطناعي المزودة بشاشة تُعرف باسم "نظارات مزودة بشاشة"، وستظهر هذه التغييرات في مستنداتنا اعتبارًا من اليوم. 

يتضمّن هذا الإصدار العديد من التحديثات التي تساعدك في إنشاء تجارب مذهلة لأجهزة XR، وتوفير تجارب غامرة أكثر على سمّاعات الرأس المتوافقة مع تقنيات الواقع الممتد، وتسهيل عملية إنشاء تجارب الواقع المعزّز على النظارات الصوتية ونظارات العرض.  بالإضافة إلى ذلك، سيتم قريبًا نقل مكتباتنا الأساسية، بما في ذلك XR Runtime وJetpack SceneCore وARCore for Jetpack XR، إلى الإصدار التجريبي.

لإتاحة استخدام المنتج قبل إطلاقه  للأجهزة والموارد  اللازمة لإنشاء تجارب غامرة ومعزَّزة على الأجهزة القادمة، مثل نظارات العرض والصوت وProject Aura من XREAL، نعلن عن برنامج Android XR Developer Catalyst. يمكنك الاطّلاع على مزيد من المعلومات وبدء تقديم طلبك اليوم. 

إنشاء تجارب واقع معزّز للنظارات الصوتية والنظارات المزودة بشاشة

تتضمّن "معاينة المطوّر" 4 واجهات برمجة تطبيقات جديدة تساعدك في إنشاء تطبيقاتك واختبارها، وذلك بدءًا من مكتباتنا الخاصة بالتجارب المحسّنة.

‫Jetpack Projected: واجهات برمجة التطبيقات Device Availability وProjectedTestRule

تساعد مكتبة Jetpack Projected في ربط تجارب التطبيقات من الهاتف بمجال رؤية المستخدم. أضفنا واجهة برمجة التطبيقات Device Availability API التي تجمع بين إشارات حالة الارتداء والاتصال في قيم Lifecycle.State Android العادية. يتيح لك ذلك تعديل سلوك تطبيقاتك استنادًا إلى ما إذا كان الجهاز موضوعًا على المعصم.

val xrDevice = XrDevice.getCurrentDevice(projectedContext)

// Observe the device lifecycle flow
xrDevice.getLifecycle().currentStateFlow
    .collect { state ->
        when (state) {
            Lifecycle.State.STARTED -> { /* Device is available (worn) */ }
            Lifecycle.State.CREATED -> { /* Device is unavailable (not worn) */ }
            Lifecycle.State.DESTROYED -> { /* Device is DISCONNECTED */ }
        }
    }

لتبسيط عملية الاختبار، تعمل واجهة برمجة التطبيقات الجديدة ProjectedTestRule في العنصر الاصطناعي للاختبار المسقط على أتمتة عملية إعداد بيئات الاختبار المسقطة. يساعدك ذلك في كتابة اختبارات وحدات نظيفة وموثوقة بدون رمز النص النموذجي.

// from the 'androidx.xr.projected:projected-testing:1.0.0-alpha07' artifact
@get:Rule
val projectedTestRule = ProjectedTestRule()

@Test
fun testProjectedContextInitialization() {
    // by default, ProjectedTestRule automatically creates and connects
    // a projected device before each test
    val projectedContext = ProjectedContext.createProjectedDeviceContext(context)

    // assert the projected context is successfully initialized
    assertThat(projectedContext).isNotNull()
}

‫Jetpack Compose Glimmer: خط Google Sans Flex ومكوّنات جديدة

تتضمّن مكتبة واجهة المستخدم الخاصة بالنظارات الذكية، Jetpack Compose Glimmer، الآن Google Sans Flex لتحسين إمكانية القراءة على الشاشات الشفافة. أضفنا أيضًا عدة مكونات تفاعلية:

  • الحزم: تم تصميمها للمجموعات المحسَّنة لاستخدام لوحة اللمس، وهي تعرض عنصرًا واحدًا في كل مرة.
  • شرائح العناوين: توفّر تصنيفًا وسياقًا لبطاقات المحتوى.
glimmer (1).gif

إنشاء تجارب غامرة لسماعات الرأس والنظارات السلكية التي تعمل بنظام الواقع الممتد

إذا كنت تتطلّع إلى إنشاء تجارب غامرة بالكامل لسمّاعات الرأس والنظّارات السلكية التي تعمل بنظام الواقع الممتد، لدينا العديد من التحديثات المهمة.

المرحلة الانتقالية التجريبية والبنية الحديثة

ستنتقل قريبًا ميزات الإدراك في XR Runtime وJetpack SceneCore وARCore for Jetpack XR (خرائط العمق وتتبُّع العين/اليد واختبارات الإصابة ونقاط الارتكاز المكانية) إلى الإصدار التجريبي، لذا عملنا على تبسيط واجهات برمجة تطبيقات Jetpack XR. لقد أزلنا حِزم Guava وRxJava3 القديمة واستبدلناها ببنية حديثة تستند إلى لغة Kotlin.

‫Jetpack SceneCore: ملفات glTF والشبكات المخصّصة

نعمل على توسيع إمكانات التصاميم الثلاثية الأبعاد من خلال إضافة القدرة على تحسينها والوصول إلى عُقد معيّنة باستخدام تصميم ثلاثي الأبعاد. باستخدام GltfModelNode، يمكنك تعديل خصائص مثل الوضع والمواد والتركيبات، ويمكنك حتى تشغيل الرسوم المتحركة لعُقد معيّنة.

// Create a new PBR material
pbrMaterial = KhronosPbrMaterial.create(
    session = xrSession,
    alphaMode = AlphaMode.OPAQUE
)

// Load a texture.
val texture = Texture.create(
    session = xrSession,
    path = Path("textures/texture_name.png")
)

// Apply the texture and configure occlusion to define how the material handles ambient lighting.
pbrMaterial.setOcclusionTexture(
    texture = texture,
    strength = 0.5f
)

// Access the hierarchy of nodes within the model entity.
val entityNodes = entity.nodes

// Find the specific node to apply the material override.
val myEntityNode = entityNodes.find { it.name == "node_name" }

// Apply the PBR material to the node.
myEntityNode?.setMaterialOverride(
   material = newMaterial
)

نحن بصدد إتاحة ميزة "الشبكات المخصّصة" في SceneCore أيضًا. تتيح لك الشبكات المخصّصة إنشاء أشكال هندسية بشكل فوري آليًا، ما يجعلها مثالية لإنشاء نماذج ثلاثية الأبعاد مخصّصة. سنطرح هذه الميزة كإصدار تجريبي، لذا ندعوك لتجربتها وإخبارنا برأيك.

// Create the mesh
val roadMesh =
    CustomMesh.BuilderFromMeshData(session, roadVertexLayout)
        .addVertexData(ByteBufferRegion(roadDataBuffer, 0, vertexDataSize))
        .setIndexData(ByteBufferRegion(roadDataBuffer, vertexDataSize, indexDataSize))
        .setTopology(MeshSubsetTopology.TRIANGLES)
        .build()

// Define the material
val roadMaterial = KhronosPbrMaterial.create(session, AlphaMode.OPAQUE)

// Instantiate the entity using the custom mesh and material
val roadEntity =
    MeshEntity.create(
        session,
        roadMesh,
        listOf(roadMaterial),
        pose = roadPose,
    )

Compose for XR: إتاحة تنسيق glTF

يتوفّر الآن توافق أصلي مع glTF مباشرةً في Compose for XR باستخدام  SpatialGltfModel. استخدِم هذه السمة مع SpatiallGltfModelState للوصول إلى العُقد والرسوم المتحركة في تصميم glTF، أو استخدِمها لإضافة مواد وخامات إلى تصاميمك الثلاثية الأبعاد.

val myGltfModelState = rememberSpatialGltfModelState(
        source = SpatialGltfModelSource.fromPath(
            Paths.get("models/my_animated_model.glb")
        )
    )

    val myGltfAnimation =
        myGltfModelState.animations.find { it.name == "animation_name" }

    DisposableEffect(myGltfAnimation) {
        myGltfAnimation?.loop()

        onDispose {
            myGltfAnimation?.stop()
        }
    }

    SpatialGltfModel(state = myGltfModelState, modifier = modifier)

‫ARCore for Jetpack XR: معاينة Geospatial API لنظارات XR السلكية

نوفّر أيضًا معاينة مبكرة لواجهة Geospatial API لنظارات XR السلكية في ARCore for Jetpack XR. يتيح هذا التحديث تثبيت المحتوى الرقمي بدقة عالية في المواقع الجغرافية الحقيقية في أكثر من 87 بلدًا.

من خلال الجمع بين نظام تحديد المواقع المرئي (VPS) في ARCore وإمكانات الاستدلال والصوت في Gemini Live API، يمكنك إنشاء تجارب مدرِكة للسياق تفهم الموقع الجغرافي للمستخدم وموضعه. تخيَّل إنشاء جولة مشي شاملة مستنِدة إلى الذكاء الاصطناعي تقدّم أوصافًا صوتية في الوقت الفعلي للأماكن القريبة، وتدمج المعلومات الرقمية بسلاسة مع البيئة المحيطة.

ابدأ بناء المستقبل اليوم

هذا هو الوقت المناسب لتطوير تطبيقات Android XR. مع اقتراب طرح الإصدار التجريبي من حزمة تطوير البرامج (SDK) الخاصة بتجربة الواقع الممتد (XR) من Jetpack وتوفُّر مجموعة قوية من الأدوات الجديدة بين يديك، يمكنك استكشاف كل من المجالات التالية لتجهيز تجارب تطبيقك للواقع الممتد (XR).  

قراءة المستندات واستكشاف النماذج وتجربة الواقع الممتد

انتقِل إلى موقع "مطوّرو تطبيقات Android" الإلكتروني الرسمي للحصول على أدلة فنية كاملة ومرجع لواجهة برمجة التطبيقات وإرشادات حول إعداد المحاكي الجديد. استلهام الأفكار من عيّناتنا وتجاربنا يمكنك الاطّلاع على كيفية استخدامنا لواجهات برمجة التطبيقات هذه لإنشاء تصاميم مكانية غامرة، وتحميل نماذج ثلاثية الأبعاد، واستكشاف الصوت المكاني، وغير ذلك.

الاطّلاع على الميزات الجديدة لمحركات الألعاب

أضفنا دعمًا رسميًا لمحرّك Unreal Engine وGodot، وأطلقنا أداتَين جديدتَين لتسريع عملية تطوير التطبيقات على Android XR باستخدام Unity وإطار عمل التفاعل Android XR. واستنادًا إلى ملاحظاتك، سنطرح Android XR Engine Hub للسماح لك بتشغيل تجاربك مباشرةً من المحرّك المفضّل لديك.

تقديم طلب للانضمام إلى برنامج Android XR Developer Catalyst

لا تفوّت فرصة تصميم تطبيقات لأحدث أجهزة Android XR. يمكنك تقديم طلب اليوم للحصول على فرصة الوصول إلى أجهزة الإصدار التجريبي، بما في ذلك النموذج الأولي لنظارات الصوت والشاشة وProject Aura من XREAL.

مزيد من المعلومات وتقديم الطلب اليوم

نتطلّع إلى رؤية تجارب الواقع الممتد المذهلة التي ستنشئها مع اقترابنا من إطلاق المزيد من أجهزة Android XR في وقت لاحق من هذا العام.

يمكنك الاطّلاع على هذا الإعلان وجميع آخر الأخبار حول مؤتمر Google I/O 2026 على io.google.

تأليف:

متابعة القراءة