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

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

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

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

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

لإتاحة الوصول المبكر إلى  الأجهزة والموارد  اللازمة لإنشاء تجارب غامرة ومعزَّزة على الأجهزة القادمة، مثل النظارات التي تعرض المحتوى الصوتي والمرئي و"مشروع 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 في عنصر projected-testing على أتمتة عملية إعداد بيئات الاختبار المتوقّعة. يساعدك ذلك في كتابة اختبارات وحدات نظيفة وموثوقة بدون رمز النص النموذجي.

// 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 الخاصة بإدراك 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 لنظارات الواقع الممتد السلكية في ARCore for Jetpack XR. يتيح هذا التحديث تثبيت المحتوى الرقمي بدقة عالية في المواقع الجغرافية الحقيقية في أكثر من 87 بلدًا.

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

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

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

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

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

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

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

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

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

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

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

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

من تأليف:
متابعة القراءة