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