اضبط مشروعًا لاستخدام "إضافة تطوير ألعاب Android".
تستدعي إضافة تطوير الألعاب على Android أداة MSBuild لإنشاء رمز مصدر C/C++ في مكتبات
مشترَكة (.so
) ومكتبات ثابتة (.a
). وكجزء من عملية الإنشاء، تستدعي مهمة MSBuild مخصّصة أداة Gradle لتجميع رمز مصدر Java وKotlin،
وتعبئة مواد العرض، وإنشاء ملف APK للنشر. عند ضبط
مشروعك، يجب التأكّد من أنّ MSBuild يتضمّن المعلومات التي يحتاجها لإنشاء
نظام التشغيل Android.
إنشاء تطبيقات C/C++ باستخدام MSBuild
يتم إنشاء مشروع Android نموذجي باستخدام Gradle، حيث يتم إنشاء الرمز البرمجي الأصلي داخل المشروع من خلال عملية Gradle التي تعمل على تشغيل CMake أو ndk-build. باستخدام إضافة تطوير ألعاب Android في Visual Studio، يتم عكس عملية الإنشاء. أصبح MSBuild الآن نقطة البداية لعملية الإنشاء. يتم أولاً إنشاء جميع الرموز المصدر C/C++ بواسطة MSBuild لأنظمة Android الأساسية الجديدة المثبَّتة على نظامك كجزء من الإضافة (مثل "Android-x86_64"). بعد ذلك، يستدعي MSBuild Gradle لحزمة ملف مكتبة المشترَكة التي تحتوي على منطق C/C++ في حزمة APK.
يجب أولاً تكرار منطق الإنشاء الحالي لمشروعك في CMake أو ndk-build في MSBuild. اضبط المنصّات المستهدَفة على ما يلي:
- Android-x86
- Android-x86_64
- Android-armeabi-v7a
- Android-arm64-v8a
توفّر إضافة Android Game Development Extension جميع هذه الأنظمة الأساسية.
ضبط خيارات الربط والتجميع
يستخدم AGDE حزمة NDK التي تختارها لتحديد خيارات الترجمة والربط التلقائية عند إنشاء جزء C/C++ من تطبيقك.
إذا كنت بحاجة إلى تخصيص خيارات الربط أو الترجمة هذه، يمكنك ضبطها باستخدام خصائص المشروع. يمكنك العثور على الخيارات الأكثر شيوعًا في مجموعات C/C++ (للتجميع) وLibrarian (لأرشفة المكتبة الثابتة) وLinker (لتجميع المكتبة الديناميكية). إذا كنت بحاجة إلى تمرير أي خيارات مخصّصة أخرى، يمكنك إضافتها إلى قسم "سطر الأوامر". على سبيل المثال، إذا كنت تستخدم إصدارًا أقدم من NDK (r28)، قد تحتاج إلى ضبط علامة الربط لجعل تطبيقك يتوافق مع أحجام الصفحات التي تبلغ 16 كيلوبايت.
إضافة نظام Android الأساسي
على الرغم من أنّ نموذج المشروع الذي يعرض إبريق الشاي يتضمّن منصات Android، عليك يدوياً إضافة منصة Android إلى مشروع حالي. لإضافة نظام أساسي جديد، اتّبِع الخطوات التالية في Visual Studio:
- اختَر الإصدار > أداة إدارة التكوين.
- ضمن منصّة الحلّ النشطة، اختَر <جديد>.
اكتب أحد الخيارات التالية للنظام الأساسي الجديد:
- Android-armeabi-v7a
- Android-arm64-v8a
- Android-x86
- Android-x86_64
في المربّع نسخ الإعدادات من، اختَر منصة Android حالية أخرى، أو <فارغ> إذا لم يكن لديك أي منصات Android حتى الآن. تأكَّد من تفعيل إنشاء منصات مشاريع جديدة.
إضافة عنصر حزمة APK لنظام التشغيل Android
اختَر إضافة > عنصر جديد > Visual C++ > Android > حزمة APK لنظام التشغيل Android وانقر على إضافة. اضبط تطبيق Android في مربّع الحوار التالي.
- اسم التطبيق: هو الاسم الواضح لتطبيق Android.
- رقم تعريف التطبيق: هو المعرّف الفريد لتطبيق Android.
- الموقع في "مستكشف الحلول": الموقع الجغرافي للمجلد الافتراضي الذي يحتوي علىملفّات دعم حِزم Android المُضافة. يتم أيضًا تلقائيًا العثور على هذه الملفات في المشروع ضمن مجلد يحمل الاسم نفسه. يمكنك تخصيص الموقع من خلال وضع علامة في مربّع الاختيار وضع ملفات الدعم في موقع مخصّص وحدّد موقعًا مخصّصًا. سيظل المجلد الافتراضي ضمن المشروع الحالي في "مستكشف الحلول".
جعل MSBuild يستدعي Gradle لإنشاء حزمة APK
لا يمكن لأداة MSBuild استدعاء Gradle ما لم تكن تعرف موقع مشروع Gradle. اضبط هذا الموقع باستخدام السمة Gradle Build Directory، كما هو موضح في الشكل 1.
الشكل 1: سمة دليل إنشاء Gradle
بالإضافة إلى ذلك، اضبط سمات وحدة التطبيق وخيار التطبيق واسم APK (كما هو موضّح في الصورة السابقة) لكي تعرف أداة MSBuild ما الذي يجب إنشاؤه.
- وحدة التطبيق: اسم المشروع الفرعي في Gradle. هذا هو
المشروع الرئيسي الذي تم ضبطه في ملف
settings.gradle
. ويُشار إليه عادةً باسمapp
لمشاريع التي تم إنشاؤها مباشرةً باستخدام "استوديو Android". - صيغة التطبيق: هي نوع Android المطلوب إنشاءه. يجب
ضبط هذه القيمة وفقًا لإعدادات MSBuild. على سبيل المثال، يجب ضبط قيمة على الصيغة المخصّصة لتصحيح الأخطاء في الإصدار المخصّص لتصحيح الأخطاء. إذا كان اسم إعدادات MSBuild
في مشروعك يتطابق مع أسماء الصيغ في Gradle، ما عليك سوى استخدام القيمة
التلقائية
$(Configuration)
. - اسم حزمة APK: اسم ملف APK الذي تم إنشاؤه والمستخدَم لتصحيح الأخطاء وتحليل الأداء على جهاز الكمبيوتر المخصّص للتطوير. يتم تمرير هذا الاسم إلى Gradle ويجب أن يراعي ملف Gradle النصي للإنشاء ذلك (اطّلِع على السمة
MSBUILD_ANDROID_OUTPUT_APK_NAME
في القسم التالي).
تعديل نصوص إنشاء Gradle البرمجية
أثناء عملية التصميم، يُرسِل MSBuild المعلومات التالية كخصائص للمشروع
إلى نص Gradle البرمجي. غيِّر نصوص إنشاء مشروعك الحالية (التي يُطلق عليها عادةً اسم build.gradle
) لقراءة هذه السمات.
MSBUILD_MIN_SDK_VERSION
: الحد الأدنى لإصدار حزمة تطوير البرامج (SDK) لإنشاء حزمة APK اضبط هذه القيمة في مربّع الحد الأدنى لإصدار حزمة تطوير البرامج (SDK) لنظام التشغيل Android في صفحة سمة المشروع الموضّحة في الشكل 2.
الشكل 2: سمة الحد الأدنى لإصدار حزمة تطوير البرامج (SDK) لنظام التشغيل Androidمن المفترض أن يضبط نص إنشاء Gradle القيمة
minSdkVersion
على هذه القيمة، كما هو موضّح أدناه.رائع
android { // ... defaultConfig { applicationId "com.yourcompany.yourapp" minSdkVersion MSBUILD_MIN_SDK_VERSION // ... } // ... }
Kotlin
android { // ... defaultConfig { applicationId = "com.yourcompany.yourapp" minSdkVersion(MSBUILD_MIN_SDK_VERSION) // ... } // ... }
MSBUILD_ANDROID_OUTPUT_APK_NAME
: الاسم المتوقّع لحزمة APK التي ينشئها Gradle. ستبحث إضافة Android Game Development Extension عن حزمة APK تتطابق مع هذا الاسم، ثم ستعرضها على الأجهزة المتصلة (لتصحيح الأخطاء وإنشاء ملف تعريف الأداء). اضبط هذه القيمة في مربّع اسم حزمة APK في صفحة خاصية المشروع الموضّحة في الشكل 3.
الشكل 3: سمة اسم حزمة APKيجب أن يراعي نص إنشاء Gradle هذه السمة. على سبيل المثال، يضبط المثال التالي اسم حزمة APK الناتجة لجميع الصيغ على الاسم الذي يختاره MSBuild.
رائع
android { // ... applicationVariants.all { variant -> variant.outputs.all { outputFileName = MSBUILD_ANDROID_OUTPUT_APK_NAME } } // ... }
Kotlin
android { // ... applicationVariants.all { variant -> variant.outputs.all { outputFileName = MSBUILD_ANDROID_OUTPUT_APK_NAME } } // ... }
MSBUILD_JNI_LIBS_SRC_DIR
: الدليل الذي يحتوي على المكتبات المشترَكة (ملفات.so
) التي أنشأها MSBuild اضبط هذه القيمة في مربّع دليل الإخراج في صفحة موقع المشروع الموضّحة أدناه. تكون هذه القيمة تلقائيًا هي خاصية دليل الإخراج لمشروع Visual Studio، كما هو موضّح في الشكل 4.
الشكل 4: سمة دليل الإخراجمن المفترض أن يحزم Gradle ملفات المكتبة المشتركة في هذا المجلد داخل حزمة APK لكي يتم تحميلها من خلال تطبيق Android أثناء التشغيل.
رائع
android { // ... sourceSets { main { jniLibs.srcDirs += [MSBUILD_JNI_LIBS_SRC_DIR] } } // ... }
Kotlin
android { // ... sourceSets.getByName("main") { jniLibs.srcDir(MSBUILD_JNI_LIBS_SRC_DIR) } // ... }
بالإضافة إلى ذلك، بما أنّ أي رمز C/C++ يتم إنشاؤه الآن بواسطة MSBuild، عليك إزالة أقسام
externalNativeBuild
في نصوص Gradle البرمجية لإنشاء الحِزم. كانت هذه الأقسام تُستخدَم لتشغيل CMake أو ndk-build لتجميع رمز C/C++، ولكن لم تعُد مطلوبة.MSBUILD_NDK_VERSION
: إصدار حِزم NDK المطلوب استخدامه لإنشاء مشروعك اضبط هذه القيمة في مربّع إصدار Android NDK في صفحة سمة المشروع الموضّحة في الشكل 5.
الشكل 5 سمة إصدار Android NDKمن المفترض أن يضبط نص إنشاء Gradle القيمة
ndkVersion
على هذه القيمة، كما هو موضّح:رائع
android { // ... ndkVersion MSBUILD_NDK_VERSION // ... }
Kotlin
android { // ... ndkVersion = MSBUILD_NDK_VERSION // ... }
لمزيد من المعلومات، يُرجى الاطّلاع على موضوع "استوديو Android" تثبيت حِزم NDK وCMake وضبطها.