GameActivity جزء من مجموعة أدوات تطوير ألعاب Android.

إنّ GameActivity هي مكتبة في Jetpack مصمَّمة لمساعدة ألعاب Android في معالجة أوامر دورة التطبيقات وأحداث الإدخال وإدخال النص في رمز C/C++ الخاص بالتطبيق. تُعدّ السمة GameActivity تابعة مباشرًا لـ NativeActivity وتتشارك في بنية مشابهة:

نص_alt

كما هو موضح في الرسم التخطيطي أعلاه، تؤدي GameActivity الدوال التالية:

  • التفاعل مع إطار عمل Android من خلال المكوِّن من جهة Java
  • تمرير أوامر دورة التطبيق وأحداث الإدخال وإدخال النص إلى الجانب الأصلي
  • نمذجة رمز المصدر C/C++ في ثلاثة مكوّنات منطقية:
    • دوال JNI في GameActivity، التي تدعم مباشرةً وظيفة Java في GameActivity وإضافتها إلى قائمة الأحداث native_app_glue في قائمة الانتظار.
    • native_app_glue، التي يتم تشغيلها غالبًا في سلسلة التعليمات الأصلية الخاصة بها (مختلفة عن سلسلة التعليمات الرئيسية للتطبيق)، وتنفّذ المهام باستخدام تكرارها الحلقي.
    • يتم استخدام رمز اللعبة في التطبيق لاستطلاع آراء الأحداث ومعالجتها في قائمة الانتظار داخل native_app_glue، كما ينفِّذ رمز اللعبة ضمن سلسلة محادثات native_app_glue.

مع GameActivity، يمكنك التركيز على تطوير لعبتك الأساسية وتجنُّب قضاء وقت زائد في التعامل مع رمز JNI.

إذا كنت معتادًا على استخدام NativeActivity، في ما يلي الاختلافات الرئيسية بين GameActivity وNativeActivity:

  • يتم عرض GameActivity في SurfaceView، ما يسهِّل كثيرًا على الألعاب التفاعل مع مكونات واجهة المستخدم الأخرى.
  • بالنسبة إلى أحداث الإدخال باللمس وأحداث الإدخال الرئيسية، يتضمّن GameActivity عملية تنفيذ جديدة تمامًا بواجهة android_input_buffer، منفصلة عن واجهة InputQueue التي تستخدمها NativeActivity.
  • GameActivity هي فئة مشتقة من AppCompatActivity، ما يتيح لك استخدام مكوّنات Jetpack الأخرى بسلاسة. إنّ ActionBar وFragment وغيرها جميعها متوفرة.
  • تضيف GameActivity وظيفة إدخال النص من خلال دمج مكتبة GameTextInput.
  • من المتوقّع أن تنشئ التطبيقات المشتقة من GameActivity الأجزاء الثلاثة الكاملة لرمز C/C++ في مكتبة واحدة. من ناحية أخرى، تُعد دوال JNI لـ NativeActivity جزءًا من إطار العمل (يتم تحميلها دائمًا بواسطة نظام التشغيل). وبالتالي، من المتوقع فقط دمج native_app_glue ورمز C/C++ الخاص بالتطبيق في مكتبة واحدة.
  • NativeActivity هو جزء من إطار عمل Android ويتّبع دورة الإصدار (عادةً ما يتم كل عام). GameActivity هو جزء من مكتبة Jetpack، والتي لها دورة إصدار أكثر تكرارًا (كل أسبوعين عادةً). ويمكن أن تصل الميزات الجديدة وإصلاحات الأخطاء بسرعة أكبر.

مواقع الإصدار

تتوفّر مكتبة GameActivity في القنوات التالية:

يتم توفير رمز C/C++ كرمز مصدر في جميع قنوات الإصدار باستخدام التنسيق Prefab. يضيف الإصدار 1.2.2 من GameActivity مكتبة ثابتة إلى التوزيع. بدءًا من هذا الإصدار والإصدارات الأحدث، ننصحك باستخدام المكتبة الثابتة بدلاً من رمز المصدر.

محتوى مكتبة Jetpack وحزمة AGDK المضغوطة

من خلال مكتبة Jetpack وقنوات حزم AGDK المضغوطة، يتم إصدار GameActivity باستخدام AAR. يحتوي تطبيق AAR هذا على المكوّنات الرئيسية التالية:

  • ملف JAR لرمز Java
  • يتم تضمين مكتبة C/C++static game-activity_static في الإصدار 1.2.2 والإصدارات الأحدث من GameActivity،
  • رمز المصدر C/C++ (ضمن مجلد /prefab)

تفترض تعليمات الدمج المرتبطة بهذه الصفحة أنّه بإمكانك استخدام Prefab في نظام التصميم الخاص بك، وإلا يمكنك نسخ رمز المصدر بعد ضغطه ضمن مجلد prefab/modules/game-activity/include إلى نظام التصميم وتنفيذ خطوات الدمج اللازمة. هناك بنية ملفات مماثلة للإصدارات ضمن androidx لمكتبة Android Jetpack. ويعمل Gradle تلقائيًا، على فك ضغط AAR في دليل ذاكرة التخزين المؤقت (~/.gradle/caches/...). يمكنك العثور على رمز مصدر C/C++ من خلال البحث عن prefab/modules/game-activity/include واختيار الموقع أسفل إصدار الإصدار المطلوب.

للحصول على تعليمات حول الدمج باستخدام مكتبة Jetpack، يُرجى الاطّلاع على بدء استخدام GameActivity.

بالنسبة إلى الحزمة البريدية لمكتبة AGDK، اتبع هذه الخطوات للحصول على رمز C/C++:

  1. يُرجى فك ضغط الحزمة التي تم تنزيلها.
  2. في الحزمة غير المضغوطة، قم بفك ضغط GameActivity-Release.aar.
  3. يمكنك البحث عن جميع رموز مصدر C/C++ ونسخها ضمن prefab/modules/game-activity/include، بما في ذلك ما يلي:
    • game-activity لـ GameActivity رمز C/C++ ذي صلة
    • game-text-input لـ GameTextInput رمز C/C++ ذي صلة

محتوى رمز المصدر AOSP

يحتوي AOSP دائمًا على أحدث رمز مصدر. اتّبِع تعليمات التصميم لإنشاء إصداراتك الخاصة أو دمج المصدر مباشرةً في بيئة التصميم. يتم حفظ رمز المصدر C/C++ في بنية ملف تشبه بنية مكتبة Jetpack وحزمة AGDK المضغوطة.

أدلة الدمج

اتّبِع هذه الأدلة لدمج GameActivity في تطبيقاتك:

مصادر إضافية

لمزيد من المعلومات عن "GameActivity"، يُرجى الاطّلاع على ما يلي:

ملاحظات

للإبلاغ عن الأخطاء أو طلب ميزات جديدة في GameActivity، يمكنك استخدام أداة تتبّع مشاكل GameActivity.