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

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

مدّة القراءة: 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 لنظارات الواقع الممتد السلكية

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

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

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

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

اطّلِع على المستندات والنماذج وتجارب الواقع الممتد

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

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

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

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

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

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

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

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

من كتابة:
متابعة القراءة