Konfigurowanie projektu

Skonfiguruj projekt, który będzie korzystał z rozszerzenia Android Game Development.

Rozszerzenie do tworzenia gier na Androida wywołuje MSBuild, aby umieścić kod źródłowy C/C++ w udostępnionym biblioteki (.so) i biblioteki statyczne (.a). W ramach procesu tworzenia niestandardowe zadanie MSBuild wywołuje Gradle, aby skompilować kod źródłowy Java i Kotlin, spakuj zasoby i wygeneruj plik APK do wdrożenia. Po skonfigurowaniu projektu, musisz upewnić się, że MSBuild ma informacje potrzebne do kompilacji platformy Android.

Kompilacja C/C++ za pomocą MSBuild

Typowy projekt na Androida opiera się na Gradle, gdzie kod natywny umieszczony w pliku został utworzony z wykorzystaniem karty Gradle, na której działa CMake lub ndk-build. Rozszerzenie do tworzenia gier na Androida dotyczące treści wizualnych w Studio, proces kompilacji jest odwrócony. Teraz MSBuild jest punktem początkowym procesu tworzenia aplikacji. Cały kod źródłowy w języku C/C++ jest tworzony w pierwszej kolejności przez MSBuild dla nowej wersji Platformy Androida zainstalowane w systemie w ramach rozszerzenia (na np. „Android-x86_64”). MSBuild wywołuje następnie Gradle, aby spakować udostępniony plik zawierające logikę C/C++ w pliku APK.

Najpierw skopiuj istniejącą logikę kompilacji swojego projektu w CMake lub ndk-build w programie MSBuild. Ustaw platformy docelowe na następujące:

  • Android x86
  • Android-x86_64
  • Android Armeabi-v7a
  • Android-arm64-v8a

Wszystkie te platformy są dostarczane przez rozszerzenie Android Game Development Extension.

Dodaj platformę Androida

Chociaż przykładowy projekt herbaty obejmuje platformy Androida, musisz ręcznie dodaj platformę Androida do istniejącego projektu. Aby dodać nową platformę, wykonaj te czynności: te elementy w Visual Studio:

  1. Wybierz Kompilacja > Menedżer konfiguracji.
  2. W sekcji Aktywna platforma rozwiązania wybierz <Nowy>.
  3. Wpisz jedną z tych wartości dla nowej platformy:

    • Android Armeabi-v7a
    • Android-arm64-v8a
    • Android x86
    • Android-x86_64
  4. W polu Skopiuj ustawienia z wybierz inny istniejący telefon z Androidem. platformy, lub <Empty>, jeśli nie masz jeszcze żadnych platform Android. Upewnij się, że masz włączoną opcję Utwórz nowe platformy projektowe.

Dodaj element APK na Androida

Wybierz kolejno Dodaj > Nowy produkt > Wizualny C++ > Android > plik APK na Androida i kliknij, Dodaj. W wyświetlonym oknie skonfiguruj aplikację na Androida.

  • Nazwa aplikacji: czytelna dla człowieka nazwa aplikacji na Androida.
  • Identyfikator aplikacji: unikalny identyfikator dla aplikacji na Androida.
  • Lokalizacja Eksploratora rozwiązań: lokalizacja folderu wirtualnego, który zawiera dodanych plików pomocniczych dotyczących pakietów Androida. Domyślnie te pliki są też znajduje się w projekcie w folderze o tej samej nazwie. Możesz dostosować lokalizację, wybierając Umieść pliki pomocy w lokalizacji niestandardowej. i określ lokalizację niestandardową. Folder wirtualny nadal będzie w bieżącym projekcie w Eksploratorze rozwiązań.

Spraw, aby MSBuild wywołuje Gradle, aby skompilować plik APK

MSBuild nie może wywołać Gradle, jeśli nie zna lokalizacji projektu Gradle. Ustaw tę lokalizację przy użyciu właściwości Katalog kompilacji Gradle, jako co pokazano na ilustracji 1.

,
Rysunek 1. Właściwość katalogu kompilacji Gradle

Oprócz tego skonfiguruj moduł aplikacji, wariant aplikacji i plik APK Name (Nazwa) (jak pokazano na poprzednim obrazie), tak aby program MSBuild mógł ją rozpoznać co zbudować.

  • Application Module: nazwa podprojektu Gradle. To jest główny projekt ustawiony w pliku settings.gradle. Zwykle ma nazwę app, projektów utworzonych bezpośrednio w Android Studio.
  • Wariant aplikacji: odmiana Androida do utworzenia. Ta wartość powinna być ustawiony zgodnie z konfiguracjami MSBuild. Na przykład kompilacja do debugowania powinien mieć wartość ustawioną na wariant debugowania. Jeśli MSBuild dla Twojego projektu jest zgodna z nazwami wariantów Gradle, a następnie użyj parametru wartość domyślna to $(Configuration).
  • Nazwa pliku APK: nazwa wygenerowanego pliku APK używanego do debugowania i profilowanie na komputerze programistycznym. Ta nazwa jest przekazywana do Gradle i skrypt kompilacji Gradle powinien to uwzględnić (zobacz właściwość MSBUILD_ANDROID_OUTPUT_APK_NAME w następnej sekcji).

Modyfikowanie skryptów kompilacji Gradle

Podczas kompilacji MSBuild przekazuje następujące informacje jako właściwości projektu do skryptu Gradle. zmienić istniejące skrypty kompilacji projektu (zwykle build.gradle), aby odczytać te właściwości.

  • MSBUILD_MIN_SDK_VERSION: minimalna wersja pakietu SDK do tworzenia pliku APK. Ustaw ta wartość w polu Minimalna wersja pakietu Android SDK w projekcie jak na ilustracji 2.

    ,
    Rysunek 2. Właściwość Minimalna wersja pakietu SDK na Androida

    Skrypt kompilacji Gradle powinien ustawić minSdkVersion na tę wartość, jak pokazano na ilustracji poniżej.

    Odlotowe

    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: oczekiwana nazwa pliku APK używanego przez Gradle. do tworzenia kampanii. Rozszerzenie do tworzenia gier na Androida będzie szukać pliku APK pasującego do tej nazwy i a następnie wdróż ją na połączonych urządzeniach (na potrzeby debugowania i profilowania). Ustaw w polu Nazwa pliku APK na stronie właściwości projektu, jak widać na rysunku 3.

    ,
    Rysunek 3. Właściwość Nazwa pliku APK

    Skrypt kompilacji Gradle musi respektować tę właściwość. Na przykład parametr w tym przykładzie jako nazwę wyjściowej pakietów APK wszystkich wariantów wybrane przez MSBuild.

    Odlotowe

    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: katalog zawierający biblioteki udostępnione. (pliki: .so) utworzone przez MSBuild. Ustaw tę wartość w katalogu wyjściowym. na stronie właściwości projektu widocznej poniżej. Domyślnie ta wartość jest wartością parametru Właściwość katalogu wyjściowego projektu Visual Studio, jak pokazano na rys. 4.

    ,
    Rysunek 4. Właściwość katalogu wyjściowego

    Gradle powinna spakować pliki biblioteki udostępnionej do tego folderu w pliku APK , by aplikacja na Androida wczytywała je w czasie działania.

    Odlotowe

    android {
      // ...
    
      sourceSets {
          main {
              jniLibs.srcDirs += [MSBUILD_JNI_LIBS_SRC_DIR]
          }
      }
    
      // ...
    }
    

    Kotlin

    android {
      // ...
    
      sourceSets.getByName("main") {
          jniLibs.srcDir(MSBUILD_JNI_LIBS_SRC_DIR)
      }
    
      // ...
    }
    

    Ponadto każdy kod w C/C++ jest teraz kompilowany przez MSBuild, dlatego usuń Sekcje externalNativeBuild w skryptach kompilacji Gradle. Te sekcje były używane do wywoływania CMake lub ndk-build do skompilowania kodu C/C++, ale są już nie są potrzebne.

  • MSBUILD_NDK_VERSION: wersja pakietu NDK używana do kompilacji w projektach AI. Ustaw tę wartość w polu Wersja NDK Androida na stronę właściwości projektu widoczną na rys. 5.

    ,
    Rysunek 5. Właściwość wersji NDK na Androida

    Skrypt kompilacji Gradle powinien ustawić ndkVersion na tę wartość:

    Odlotowe

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

    Kotlin

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

    Więcej informacji znajdziesz w temacie Android Studio. Zainstaluj i skonfiguruj NDK oraz CMake