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
- دوال JNI الخاصة بـ GameActivity، والتي تتيح مباشرةً وظائف Java الخاصة بـ GameActivity وتضيف الأحداث إلى قائمة الانتظار في
باستخدام 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 في القنوات التالية:
- كجزء من مكتبة Android Jetpack (يُنصح به)
- رمز المصدر لنظام التشغيل Android
يتم توفير رمز C/C++ البرمجي كرمز مصدر في جميع قنوات الإصدار، وذلك باستخدام تنسيق Prefab. يضيف الإصدار 1.2.2 من GameActivity مكتبة ثابتة إلى حزمة التوزيع. اعتبارًا من هذا الإصدار والإصدارات الأحدث، ننصحك باستخدام المكتبة الثابتة بدلاً من رمز المصدر.
محتويات مكتبة Jetpack
باستخدام مكتبة Jetpack، يتم إصدار GameActivity مع ملف AAR. يتضمّن هذا الأرشيف الرئيسي لتطبيقات Android المكوّنات الرئيسية التالية:
- ملف JAR لرمز Java
- يتم تضمين مكتبة C/C++ الثابتة
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.
محتوى الرمز المصدري لنظام التشغيل AOSP
يتضمّن AOSP دائمًا أحدث رمز مصدر. اتّبِع تعليمات الإنشاء لإنشاء إصداراتك الخاصة أو دمج المصدر مباشرةً في بيئة الإنشاء. يتم حفظ رمز المصدر C/C++ في بنية ملف مشابهة لمكتبة Jetpack.
أدلة الدمج
اتّبِع هذه الأدلة لدمج GameActivity في تطبيقاتك:
مراجع إضافية
لمزيد من المعلومات حول GameActivity، يُرجى الاطّلاع على ما يلي:
- ملاحظات إصدار GameActivity وAGDK
- استخدام GameTextInput في GameActivity
- دليل نقل بيانات NativeActivity
- مستندات مرجعية حول GameActivity
- تنفيذ GameActivity
الملاحظات
للإبلاغ عن أخطاء أو طلب ميزات جديدة في GameActivity، استخدِم أداة تتبُّع المشاكل في GameActivity.