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