Bir projeyi Android Oyun Geliştirme Uzantısı'nı kullanacak şekilde yapılandırın.
Android Oyun Geliştirme Uzantısı, paylaşılan kitaplıklara (.so
) ve statik kitaplıklara (.a
) C/C++ kaynak kodu derlemek için MSBuild'i çağırır. Derleme işleminin bir parçası olarak özel bir MSBuild görevi, Java ve Kotlin kaynak kodunu derlemek, öğeleri paketlemek ve dağıtım için bir APK dosyası oluşturmak üzere Gradle'ı çağırır. Projenizi yapılandırırken, MSBuild'in Android platformu için derlemek üzere ihtiyaç duyduğu bilgilere sahip olduğundan emin olmanız gerekir.
MSBuild ile C/C++ derleme
Tipik bir Android projesi Gradle ile oluşturulur. Buradaki proje içindeki yerel kod, CMake veya ndk-build çalıştıran bir Gradle kartı tarafından oluşturulur. Visual Studio için Android Oyun Geliştirme Uzantısı ile derleme işlemi tersine çevrilir. Artık MSBuild, derleme işleminin başlangıç noktasıdır. Tüm C/C++ kaynak kodları, öncelikle uzantının parçası olarak sisteminize yüklenen yeni Android platformları (örneğin, "Android-x86_64") için MSBuild tarafından oluşturulur. MSBuild daha sonra, C/C++ mantığınızı içeren paylaşılan kitaplık dosyalarını bir APK'da paketlemek için Gradle'ı çağırır.
İlk olarak, projenizin mevcut derleme mantığını CMake'de veya ndk-build'de MSBuild'de çoğaltmanız gerekir. Hedef platformları aşağıdakilere ayarlayın:
- Android x 86
- Android-x86_64
- Android-armeabi-v7a
- Android-kol64-v8a
Bu platformların tümü Android Oyun Geliştirme Uzantısı tarafından sağlanır.
Android Platformu Ekleyin
Çaydanlık örnek projesi Android platformlarını içerse de mevcut bir projeye manuel olarak bir Android platformu eklemeniz gerekir. Yeni bir platform eklemek için Visual Studio'da aşağıdakileri yapın:
- Build (Derleme) > Configuration Manager (Yapılandırma Yöneticisi) seçeneğini belirleyin.
- Etkin çözüm platformu bölümünde <Yeni> seçeneğini belirleyin.
Yeni platform için aşağıdakilerden birini yazın:
- Android-armeabi-v7a
- Android-arm64-v8a
- Android x 86
- Android-x86_64
Ayarları şu kaynaktan kopyala kutusunda, mevcut başka bir Android platformunu seçin veya henüz Android platformunuz yoksa <Boş> seçeneğini belirleyin. Yeni proje platformları oluştur'u etkinleştirdiğinizden emin olun.
Android APK öğesi ekle
Ekle > Yeni Öğe > Görsel C++ > Android > Android APK'yı seçin ve Ekle'yi tıklayın. Aşağıdaki iletişim kutusunda Android uygulamasını yapılandırın.
- Uygulama Adı: Android uygulamanızın kullanıcılar tarafından okunabilen adı.
- Uygulama Kimliği: Android uygulamanızın benzersiz tanımlayıcısıdır.
- Çözüm Gezgini Konumu: Eklenen Android paketleme destek dosyalarını içeren sanal klasörün konumu. Varsayılan olarak bu dosyalar, projede aynı ada sahip bir klasörde de bulunur. Destek dosyalarını özel bir konuma yerleştir onay kutusunu seçip özel bir konum belirterek konumu özelleştirebilirsiniz. Sanal klasör, Çözüm Gezgini'nde mevcut projenin altında kalmaya devam eder.
APK oluşturmak için MSBuild'in Gradle'ı çağırmasını sağlama
MSBuild, Gradle projesinin konumunu bilmediği sürece Gradle'ı çağıramaz. Bu konumu, Şekil 1'de gösterildiği gibi Gradle Derleme Dizini özelliğini kullanarak ayarlayın.
Şekil 1. Gradle Derleme Dizini mülkü
Ayrıca, MSBuild'in ne derleneceğini bilmesi için Uygulama Modülü, Uygulama Varyantı ve APK Adı özelliklerini (önceki resimde gösterildiği gibi) ayarlayın.
- Uygulama Modülü: Gradle alt projesinin adı. Bu,
settings.gradle
dosyasında ayarlanan ana projedir. Doğrudan Android Studio kullanılarak oluşturulan projeler için genellikleapp
olarak adlandırılır. - Uygulama Varyantı: Geliştirilecek Android varyantı. Bu değer, MSBuild yapılandırmalarına göre ayarlanmalıdır. Örneğin, hata ayıklama derlemesi için hata ayıklama varyantına ayarlanmış bir değer olmalıdır. Projenizin MSBuild yapılandırma adı Gradle varyant adlarıyla eşleşiyorsa varsayılan
$(Configuration)
değerini kullanın. - APK Adı: Geliştirme bilgisayarınızda hata ayıklama ve profil çıkarma için kullanılan, oluşturulan APK dosyasının adı. Bu ad Gradle'a iletilir ve Gradle derleme komut dosyanız buna uymalıdır (aşağıdaki bölümde
MSBUILD_ANDROID_OUTPUT_APK_NAME
özelliğine bakın).
Gradle derleme komut dosyalarınızı değiştirme
Derleme sırasında MSBuild, aşağıdaki bilgileri Gradle komut dosyasına proje özellikleri olarak iletir. Bu özellikleri okumak için projenizin mevcut derleme komut dosyalarını (genellikle build.gradle
olarak adlandırılır) değiştirin.
MSBUILD_MIN_SDK_VERSION
: APK'yı oluşturmak için minimum SDK sürümü. Bu değeri, Şekil 2'de gösterilen proje özelliği sayfasındaki Minimum Android SDK Sürümü kutusunda ayarlayın.
Şekil 2. Minimum Android SDK Sürümü özelliğiGradle derleme komut dosyası,
minSdkVersion
öğesini aşağıda gösterildiği gibi bu değere ayarlamalıdır.Modern
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
: Gradle'ın oluşturduğu APK'nın beklenen adı. Android Oyun Geliştirme Uzantısı, bu adla eşleşen bir APK arar ve daha sonra bunu bağlı cihazlara dağıtır (hata ayıklama ve profil oluşturma için). Bu değeri, Şekil 3'te gösterilen proje özelliği sayfasındaki APK Adı kutusunda ayarlayın.
Şekil 3. APK Adı özelliğiGradle derleme komut dosyası bu özelliğe uymalıdır. Örneğin, aşağıdaki örnekte tüm varyantların çıkış APK'sı adı, MSBuild tarafından seçilen adla ayarlanmaktadır.
Modern
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
: MSBuild tarafından oluşturulan paylaşılan kitaplıkları (.so
dosya) içeren dizin. Bu değeri, aşağıda gösterilen proje özelliği sayfasındaki Çıktı Dizini kutusunda ayarlayın. Varsayılan olarak bu değer, Şekil 4'te gösterildiği gibi, Visual Studio projesinin çıkış dizini özelliğidir.
Şekil 4. Çıktı Dizini özelliğiAndroid uygulamasının çalışma zamanında yüklemesi için Gradle, paylaşılan kitaplık dosyalarını APK'nın içinde paketlenmelidir.
Modern
android { // ... sourceSets { main { jniLibs.srcDirs += [MSBUILD_JNI_LIBS_SRC_DIR] } } // ... }
Kotlin
android { // ... sourceSets.getByName("main") { jniLibs.srcDir(MSBUILD_JNI_LIBS_SRC_DIR) } // ... }
Ayrıca, herhangi bir C/C++ kodu artık MSBuild tarafından derlendiği için Gradle derleme komut dosyalarınızdaki
externalNativeBuild
bölümlerini kaldırın. Bu bölümler, C/C++ kodunuzu derlemek için CMake veya ndk-build'i çağırmak amacıyla kullanılıyordu, ancak artık gerekli değildir.MSBUILD_NDK_VERSION
: Projenizi derlemek için kullanılacak NDK sürümü. Bu değeri, Şekil 5'te gösterilen proje özelliği sayfasındaki Android NDK Sürümü kutusunda ayarlayın.
Şekil 5. Android NDK Sürümü özelliğiGradle derleme komut dosyası, aşağıda gösterildiği gibi
ndkVersion
öğesini bu değere ayarlamalıdır:Modern
android { // ... ndkVersion MSBUILD_NDK_VERSION // ... }
Kotlin
android { // ... ndkVersion = MSBUILD_NDK_VERSION // ... }
Daha fazla bilgi için NDK ve CMake'i yükleme ve yapılandırma başlıklı Android Studio konusuna bakın.