ضبط مشروع

يجب ضبط مشروع لاستخدام إضافة تطوير ألعاب Android.

تستدعي إضافة تطوير ألعاب Android MSBuild لتتمكّن من إنشاء رمز مصدر C/C++ ضمن قائمة المكتبات (.so) والمكتبات الثابتة (.a). وكجزء من عملية التصميم، تستدعي مهمة MSBuild المخصصة أداة Gradle لتجميع رمز المصدر Java وKotlin، أصول الحزمة وإنشاء ملف APK للنشر. عند تهيئة يجب التأكد من أن MSBuild لديه المعلومات التي تحتاج إلى إنشائها من أجل نظام Android الأساسي.

إنشاء C/C++ باستخدام MSBuild

ويتم إنشاء مشروع Android النموذجي باستخدام أداة Gradle، حيث يتم إنشاء التعليمات البرمجية الأصلية داخل باستخدام ممر Gradle الذي تشغّل CMake أو ndk-build. مع إضافة تطوير ألعاب Android للمحتوى المرئي الاستوديو، عملية التصميم مقلوبة. الآن 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.

إضافة نظام أساسي Android

بينما يتضمن مشروع عينة إبريق الشاي منصات Android، يجب عليك يدويًا إضافة نظام Android الأساسي إلى مشروع حالي. لإضافة منصة جديدة، اتّبِع الخطوات التالية: التالي في Visual Studio:

  1. اختَر إنشاء > مدير الإعداد.
  2. ضمن منصّة الحلول النشطة، اختَر <جديد>.
  3. اكتب أيًا مما يلي للمنصة الجديدة:

    • Android-armeabi-v7a
    • Android-arm64-v8a
    • Android-x86
    • Android-x86_64
  4. في المربّع نسخ الإعدادات من، اختَر جهاز Android حالي آخر. أو <إفراغ> إذا لم يكن لديك أي أنظمة أساسية لـ Android حتى الآن. تأكَّد من تفعيل إنشاء منصّات مشروع جديدة.

إضافة ملف APK خاص بنظام التشغيل Android

اختَر إضافة >. عنصر جديد > Visual C++ > Android > Android APK والنقر على انقر على إضافة. اضبط تطبيق Android في مربع الحوار التالي.

  • اسم التطبيق: اسم تطبيق Android الذي يمكن للمستخدمين قراءته.
  • رقم تعريف التطبيق: المعرّف الفريد لتطبيق Android.
  • موقع مستكشف الحلول: موقع المجلد الافتراضي الذي يحتوي على ملفات دعم حزم Android المضافة. بشكل افتراضي، تتم تسمية هذه الملفات أيضًا الموجودة في المشروع في مجلد يحمل الاسم ذاته. يمكنك تخصيص الموقع الجغرافي عن طريق اختيار وضع ملفات الدعم في مكان مخصّص مربع الاختيار وتحديد موقع مخصص. وسيظل المجلد الافتراضي كما هو ضمن المشروع الحالي في Solution Explorer (مستكشف الحلول).

جعل MSBuild يستدعي Gradle لإنشاء APK

لا يمكن لـ MSBuild استدعاء Gradle ما لم تكن تعرف موقع مشروع Gradle. حدِّد هذا الموقع باستخدام الخاصية Gradle Build Directory، باعتباره كما هو موضح في الشكل 1.


الشكل 1. موقع Gradle Build Directory

بالإضافة إلى ذلك، اضبط وحدة التطبيق وصيغة التطبيق و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 على هذه القيمة، كما هو موضح أدناه.

    Groovy

    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" عن حزمة APK تطابق هذا الاسم ثم انشره على الأجهزة المتصلة (لتصحيح الأخطاء وإنشاء الملفات الشخصية). ضبط هذا الإعداد في مربع اسم APK في صفحة موقع المشروع الموضحة في الشكل 3.


    الشكل 3. سمة اسم APK

    يجب أن يراعي النص البرمجي لإنشاء Gradle هذه السمة. على سبيل المثال، يضبط المثال التالي اسم حزمة APK الناتجة عن جميع خيارات المنتج على الاسم. التي تختارها MSBuild.

    Groovy

    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 من تحميلها في وقت التشغيل.

    Groovy

    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 على هذه القيمة، على النحو الموضّح:

    Groovy

    android {
      // ...
    
      ndkVersion MSBUILD_NDK_VERSION
    
      // ...
    }
    

    Kotlin

    android {
      // ...
    
      ndkVersion = MSBUILD_NDK_VERSION
    
      // ...
    }
    

    لمزيد من المعلومات، يُرجى الاطّلاع على موضوع "استوديو Android". تثبيت NDK وCMake وإعدادهما.