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

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

النص البديل

كما هو موضّح في الرسم البياني أعلاه، تؤدي 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 جزءًا من إطار العمل (يتم تحميلها دائمًا بواسطة نظام التشغيل). وبالتالي، من المتوقّع أن يتم فقط تضمين رمز C/C++ الخاص بالتطبيق native_app_glue ورمز C/C++ في مكتبة واحدة.
  • إنّ NativeActivity هو جزء من إطار عمل Android ويتّبع دورة إصداره (كل سنة في العادة). إنّ GameActivity هو جزء من مكتبة Jetpack التي تخضع لدورة إصدار أكثر تكرارًا (كل أسبوعين عادةً). ويمكن أن تصل الميزات الجديدة وإصلاحات الأخطاء بسرعة أكبر.

المواقع الجغرافية للإصدار

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

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

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

باستخدام مكتبة Jetpack وقنوات حِزم AGDK المضغوطة، يتم إصدار GameActivity باستخدام 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. بشكل تلقائي، يفكّ Grale حزمة AAR في دليل ذاكرة التخزين المؤقت (~/.grale/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 لرمز C/C++ ذي الصلة GameActivity
    • game-text-input لرمز C/C++ ذي الصلة GameTextInput

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

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

أدلة الدمج

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

مراجع إضافية

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

ملاحظات

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