Configura un progetto

Configura un progetto per l'utilizzo dell'estensione Android Game Development.

L'estensione Android Game Development chiama MSBuild per creare il codice sorgente C/C++ librerie statiche (.so) e statiche (.a). Nell'ambito del processo di creazione, un'attività MSBuild personalizzata richiama Gradle per compilare il codice sorgente Java e Kotlin, asset del pacchetto e generare un file APK per il deployment. Quando configuri devi assicurarti che MSBuild abbia le informazioni necessarie per la creazione la piattaforma Android.

Creazione C/C++ con MSBuild

Un tipico progetto Android viene creato con Gradle, dove il codice nativo all'interno viene creato da un pass Gradle che esegue CMake ndk-build. Con l'estensione Android Game Development per le immagini Studio, il processo di compilazione viene invertito. MSBuild è il punto di partenza un processo di compilazione. Tutto il codice sorgente C/C++ viene creato prima da MSBuild per il nuovo le piattaforme Android installate sul sistema come parte dell'estensione (per ad esempio "Android-x86_64"). MSBuild richiama quindi Gradle per pacchettizzare i file che contengono la tua logica C/C++ in un APK.

Devi prima replicare la logica di build esistente del progetto in CMake o ndk-build in MSBuild. Imposta le piattaforme di destinazione come segue:

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

Queste piattaforme sono tutte fornite dall'estensione Android Game Development.

Aggiungi una piattaforma Android

Anche se il progetto di esempio Teiera include le piattaforme Android, devi manualmente Aggiungere una piattaforma Android a un progetto esistente. Per aggiungere una nuova piattaforma, procedi nel seguente modo: in Visual Studio:

  1. Seleziona Crea > Configuration Manager.
  2. In Piattaforma della soluzione attiva, seleziona <Nuovo>.
  3. Digita una delle seguenti opzioni per la nuova piattaforma:

    • Android-armeabi-v7a
    • Android-arm64-v8a
    • Android x86
    • Android-x86_64
  4. Nella casella Copia impostazioni da, seleziona un altro dispositivo Android esistente o <Vuoto> se non disponi ancora di piattaforme Android. Assicurati di aver abilitato Crea nuove piattaforme di progetto.

Aggiungi un elemento dell'APK Android

Seleziona Aggiungi > Nuovo elemento > Visual C++ > Android > APK Android e fai clic Aggiungi. Configura l'applicazione Android nella finestra di dialogo che segue.

  • Nome applicazione. Il nome leggibile della tua applicazione Android.
  • ID applicazione: l'identificatore univoco per la tua applicazione Android.
  • Percorso di Esplorazione soluzioni: percorso della cartella virtuale che contiene i file di supporto dei pacchetti Android aggiunti. Per impostazione predefinita, questi file vengono nel progetto in una cartella con lo stesso nome. Puoi personalizzare selezionando Inserisci i file di assistenza in una posizione personalizzata e specificare una località personalizzata. La cartella virtuale continuerà nel progetto corrente in Esplora soluzioni.

Fai in modo che MSBuild richiami Gradle per creare un APK

MSBuild non può richiamare Gradle se non conosce la posizione del progetto Gradle. Imposta questa località utilizzando la proprietà Gradle Build Directory, come come mostrato nella figura 1.


Figura 1. Proprietà Gradle Build Directory

Inoltre, imposta il Modulo dell'applicazione, la Variante dell'applicazione e l'APK Nome (come mostrato nell'immagine precedente) in modo che MSBuild lo sappia cosa creare.

  • Modulo di applicazione: il nome del sottoprogetto Gradle. Questo è il principale progetto impostato nel file settings.gradle. Di solito è chiamato app per a progetti creati direttamente con Android Studio.
  • Variante dell'applicazione: la variante Android da creare. Questo valore deve essere impostate in base alle configurazioni MSBuild. Ad esempio, una build di debug deve avere un valore impostato sulla variante di debug. Se lo script MSBuild del progetto del nome della configurazione corrisponda ai nomi delle varianti Gradle, quindi utilizza il metodo valore predefinito di $(Configuration).
  • Nome APK: il nome del file APK generato, utilizzato per il debug e la profilazione del computer sul computer di sviluppo. Questo nome viene passato a Gradle lo script di build Gradle deve rispettarlo (vedi la proprietà MSBUILD_ANDROID_OUTPUT_APK_NAME nella sezione seguente).

Modificare gli script di build Gradle

Durante la creazione, MSBuild passa le seguenti informazioni come proprietà del progetto allo script Gradle. Modifica gli script di build esistenti del progetto (in genere denominato build.gradle) per leggere queste proprietà.

  • MSBUILD_MIN_SDK_VERSION: la versione minima dell'SDK per la creazione dell'APK. Imposta questo valore nella casella Versione minima dell'SDK Android sul progetto della proprietà mostrata nella figura 2.


    Figura 2. Proprietà Versione minima dell'SDK Android

    Lo script di build Gradle deve impostare minSdkVersion su questo valore, come mostrato di seguito.

    Alla moda

    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: il nome previsto dell'APK che Gradle le build. L'estensione Android Game Development cercherà un APK corrispondente a questo nome. e poi implementarla sui dispositivi connessi (per il debug e la profilazione). Imposta questo nella casella Nome APK nella pagina della proprietà del progetto mostrata nella figura 3.


    Figura 3. Proprietà Nome APK

    Lo script di build Gradle deve rispettare questa proprietà. Ad esempio, nell'esempio seguente il nome dell'APK di output per tutte le varianti viene impostato sul nome scelto da MSBuild.

    Alla moda

    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: la directory contenente le librerie condivise (.so file) creato da MSBuild. Imposta questo valore nella directory di output nella pagina delle proprietà del progetto mostrata di seguito. Per impostazione predefinita, questo valore è della directory di output per il progetto Visual Studio, come mostrato nella figura 4.


    Figura 4. Proprietà Directory di output

    Gradle deve pacchettizzare i file della libreria condivisa all'interno dell'APK per consentire all'applicazione Android di caricarli in fase di esecuzione.

    Alla moda

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

    Kotlin

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

    Inoltre, poiché ora qualsiasi codice C/C++ viene creato da MSBuild, rimuovi externalNativeBuild sezioni nei tuoi script di build Gradle. Queste sezioni sono stati utilizzati per richiamare CMake o ndk-build per compilare il codice C/C++, non serve più.

  • MSBUILD_NDK_VERSION: la versione dell'NDK da utilizzare per creare progetto. Imposta questo valore nella casella Versione Android NDK sulla della proprietà del progetto mostrata nella figura 5.


    Figura 5. Proprietà della versione Android NDK

    Lo script di build Gradle deve impostare ndkVersion su questo valore, come mostrato:

    Alla moda

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

    Kotlin

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

    Per ulteriori informazioni, consulta l'argomento relativo ad Android Studio Installa e configura NDK e CMake.