กำหนดค่าโปรเจ็กต์เพื่อใช้ส่วนขยายการพัฒนาเกม Android
ส่วนขยายการพัฒนาเกม Android เรียกใช้ MSBuild เพื่อสร้างซอร์สโค้ด C/C++ ลงในไฟล์ที่แชร์
ไลบรารี (.so
) และไลบรารีแบบคงที่ (.a
) ส่วนหนึ่งของกระบวนการสร้าง
งาน MSBuild ที่กำหนดเองจะเรียกใช้ Gradle เพื่อคอมไพล์ซอร์สโค้ด Java และ Kotlin
แพ็กเกจเนื้อหา และสร้างไฟล์ APK สำหรับการทำให้ใช้งานได้ เมื่อคุณกำหนดค่า
คุณต้องตรวจสอบว่า MSBuild มีข้อมูลที่ต้องใช้ในการสร้าง
แพลตฟอร์ม Android
สร้าง C/C++ ด้วย MSBuild
โปรเจ็กต์ Android โดยทั่วไปสร้างขึ้นด้วย Gradle โดยโค้ดแบบเนทีฟภายใน สร้างโปรเจ็กต์โดย Gradle Pass ที่เรียกใช้ CMake หรือ ndk-build ด้วยส่วนขยายการพัฒนาเกมสำหรับ Android สำหรับการแสดงผล 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
เพิ่มแพลตฟอร์ม Android
แม้ว่าโปรเจ็กต์ตัวอย่างกาน้ำชาจะมีแพลตฟอร์ม Android แต่คุณต้องทำด้วยตนเอง เพิ่มแพลตฟอร์ม Android ลงในโปรเจ็กต์ที่มีอยู่ หากต้องการเพิ่มแพลตฟอร์มใหม่ ให้ทำ ต่อไปนี้ใน Visual Studio
- เลือก Build > เครื่องมือจัดการการกำหนดค่า
- ในส่วนแพลตฟอร์มโซลูชันที่ใช้งานอยู่ ให้เลือก<ใหม่>
พิมพ์ 1 ภาษาต่อไปนี้สำหรับแพลตฟอร์มใหม่
- Android-armeabi-v7a
- Android-arm64-v8a
- Android-X86
- Android-X86_64
ในช่องคัดลอกการตั้งค่าจาก ให้เลือก Android เครื่องอื่นที่มีอยู่ หรือ <Empty> หากคุณยังไม่มีแพลตฟอร์ม Android ตรวจสอบว่าได้เปิดใช้ตัวเลือกสร้างแพลตฟอร์มของโปรเจ็กต์ใหม่แล้ว
เพิ่มรายการ Android APK
เลือกเพิ่ม > รายการใหม่ > ภาพ 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 Studio - ตัวแปรแอปพลิเคชัน: ตัวแปร 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 ตั้งค่า ค่านี้ในช่องเวอร์ชัน Android SDK ขั้นต่ำในโปรเจ็กต์ หน้าอสังหาริมทรัพย์ที่แสดงในรูปที่ 2
รูปที่ 2 พร็อพเพอร์ตี้เวอร์ชัน Android SDK ขั้นต่ำสคริปต์บิลด์ 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สคริปต์บิลด์ 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 Studio ติดตั้งและกำหนดค่า NDK และ CMake