הגדרת פרויקט לשימוש בתוסף פיתוח המשחקים של Android.
תוסף פיתוח המשחקים ל-Android מפעיל את MSBuild כדי לפתח את קוד המקור C/C++ במשותף
ספריות (.so
) וספריות סטטיות (.a
). כחלק מתהליך ה-build,
משימת MSBuild מותאמת אישית מפעילה את Gradle להדרת קוד המקור של Java ו-Kotlin
נכסים וליצור קובץ APK לפריסה. כשקובעים את הגדרות התצורה
צריך לוודא של-MSBuild יש את המידע שנדרש ליצירה
בפלטפורמת Android.
פיתוח C/C++ באמצעות MSBuild
פרויקט Android טיפוסי נבנה באמצעות Gradle, שבו הקוד המקורי נוצר באמצעות מעבר Gradle שמריץ את CMake ndk-build. עם תוסף לפיתוח משחקים ל-Android לתוכן חזותי תהליך ה-build הפוך. עכשיו, MSBuild הוא נקודת ההתחלה של תהליך ה-build. כל קוד המקור מסוג C/C++ נבנה קודם על ידי MSBuild בשביל פלטפורמות של Android שמותקנות במערכת שלך כחלק מהתוסף (עבור לדוגמה, "Android-x86_64"). לאחר מכן, MSBuild מפעיל את Gradle כדי לארוז את קובצי ספרייה שכוללים את לוגיקת C/C++ שלכם ב-APK.
קודם צריך לשכפל את לוגיקת ה-build הקיימת של הפרויקט ב-CMake או ndk-build ב-MSBuild. מגדירים את פלטפורמות היעד כך:
- x86 Android
- Android-x86_64
- Android-armeabi-v7a
- Android-arm64-v8a
כל הפלטפורמות האלה מסופקות על ידי תוסף פיתוח המשחקים של Android.
הוספת פלטפורמת Android
הפרויקט לדוגמה של קנקן תה כולל פלטפורמות של Android, אבל צריך לעשות זאת באופן ידני מוסיפים פלטפורמת Android לפרויקט קיים. כדי להוסיף פלטפורמה חדשה, מבצעים את הפעולות הבאות: ב-Visual Studio:
- בוחרים באפשרות Build > (בנייה >) מנהל התצורה.
- בקטע Active Solutions Platform, בוחרים באפשרות <New> (חדש).
מקלידים את אחת מהאפשרויות הבאות לפלטפורמה החדשה:
- Android-armeabi-v7a
- Android-arm64-v8a
- Android-x86
- Android-x86_64
בתיבה העתקת ההגדרות מ:, בוחרים מכשיר Android קיים אחר. או <Empty> אם עדיין אין לך פלטפורמות Android. מוודאים שהאפשרות יצירת פלטפורמות חדשות לפרויקט מופעלת.
הוספת פריט APK של Android
בוחרים באפשרות הוספה > פריט חדש > Visual C++ > Android > APK של Android ולוחצים הוספה. מגדירים את אפליקציית Android בתיבת הדו-שיח הבאה.
- שם האפליקציה: השם הקריא לאנשים של האפליקציה שלכם ל-Android.
- Application ID (מזהה אפליקציה): המזהה הייחודי לאפליקציה ל-Android.
- מיקום של סייר הפתרונות: המיקום של התיקייה הווירטואלית שמכילה קובצי התמיכה שנוספו באריזת Android. כברירת מחדל, הקבצים האלה גם נמצאים בפרויקט בתיקייה עם אותו שם. אפשר להתאים אישית את מיקום באמצעות בחירה באפשרות יש לשים קובצי תמיכה במיקום מותאם אישית תיבת הסימון ולציין מיקום מותאם אישית. התיקייה הווירטואלית עדיין תהיה בפרויקט הנוכחי ב-Solution Explorer.
הגדרת MSBuild להפעיל את Gradle כדי לבנות APK
MSBuild לא יכולה להפעיל את Gradle, אלא אם היא יודעת את המיקום של פרויקט Gradle. מגדירים את המיקום הזה באמצעות המאפיין Gradle Build Directory, כך: שמוצגת באיור 1.
איור 1. נכס של Gradle Build Directory
בנוסף, מגדירים את מודול האפליקציה, וריאנט האפליקציה ו-APK שם המאפיינים (כפי שמוצג בתמונה הקודמת) כדי ש-MSBuild יוכל לדעת מה לבנות.
- Application Module: השם של פרויקט המשנה Gradle. זוהי
מוגדר בקובץ
settings.gradle
. בדרך כלל קוראים לוapp
במשך פרויקטים שנוצרו ישירות באמצעות Android Studio. - וריאנט של האפליקציה: הווריאנט של Android שמיועד ל-build. הערך הזה צריך להיות
יוגדרו בהתאם להגדרות של MSBuild. לדוגמה, גרסת build לניפוי באגים
צריך להגדיר ערך לווריאנט של ניפוי הבאגים. אם ה-MSBuild של הפרויקט
תואם לשמות הווריאנטים של Gradle, ואז פשוט משתמשים
ערך ברירת המחדל של
$(Configuration)
. - שם ה-APK: השם של קובץ ה-APK שנוצר המשמש לניפוי באגים
פרופיילינג במחשב הפיתוח שלך. השם הזה מועבר ל-Gradle
סקריפט ה-build של Gradle צריך להתאים לכך (עיינו במאפיין
MSBUILD_ANDROID_OUTPUT_APK_NAME
בקטע הבא).
שינוי הסקריפטים של Gradle לפיתוח גרסת build
במהלך ה-build, MSBuild מעביר את הפרטים הבאים כמאפייני פרויקט
לסקריפט של Gradle. שינוי הסקריפטים הקיימים של ה-build של הפרויקט (בדרך כלל
שנקרא build.gradle
) כדי לקרוא את המאפיינים האלה.
MSBUILD_MIN_SDK_VERSION
: גרסת ה-SDK המינימלית לפיתוח ה-APK. סיום הערך הזה בתיבה מינימום גרסת Android SDK בפרויקט דף הנכס שמוצג באיור 2.
איור 2. מאפיין גרסת Android SDK מינימליתסקריפט ה-build של 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 יחפש APK שתואם לשם הזה ול לפרוס אותו במכשירים מחוברים (לניפוי באגים וליצירת פרופילים). הגדרה בתיבה שם ה-APK בדף של מאפיין הפרויקט, שמוצג באיור 3.
איור 3. נכס שם APKסקריפט ה-build של 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. צריך להגדיר את הערך הזה ב-Output Directory בדף של מאפיין הפרויקט, שמוצג בהמשך. כברירת מחדל, הערך הזה הוא מאפיין ספריית פלט של פרויקט 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
קטעים בסקריפטים של גרסת ה-build של Gradle. הקטעים האלה שימשו להפעלת CMake או ndk-build כדי להדר את קוד C/C++ שלך, אבל שאין בו יותר צורך.MSBUILD_NDK_VERSION
: גרסת ה-NDK שתשמש לפיתוח פרויקט. מגדירים את הערך הזה בתיבה גרסת Android NDK דף מאפיין הפרויקט מוצג באיור 5.
איור 5. נכס גרסת Android NDKסקריפט ה-build של Gradle צריך להגדיר את
ndkVersion
לערך הזה, כפי שמוצג כאן:מגניב
android { // ... ndkVersion MSBUILD_NDK_VERSION // ... }
Kotlin
android { // ... ndkVersion = MSBUILD_NDK_VERSION // ... }
מידע נוסף זמין בנושא Android Studio מתקינים ומגדירים את ה-NDK ואת ה-CMake.