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