Proje yapılandırma

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:

  1. Build (Derleme) > Configuration Manager (Yapılandırma Yöneticisi) seçeneğini belirleyin.
  2. Etkin çözüm platformu bölümünde <Yeni> seçeneğini belirleyin.
  3. Yeni platform için aşağıdakilerden birini yazın:

    • Android-armeabi-v7a
    • Android-arm64-v8a
    • Android x 86
    • Android-x86_64
  4. 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 genellikle app 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ği

    Gradle 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ği

    Gradle 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ği

    Android 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ği

    Gradle 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.