Configura un progetto per l'utilizzo dell'estensione Android Game Development.
L'estensione per lo sviluppo dei giochi Android richiama MSBuild per creare il codice sorgente C/C++ in librerie condivise (.so
) e librerie statiche (.a
). Come parte del processo di compilazione, un'attività MSBuild personalizzata richiama Gradle per compilare il codice sorgente Java e Kotlin, creare pacchetti di asset e generare un file APK per il deployment. Quando configuri il tuo progetto, devi assicurarti che MSBuild abbia le informazioni necessarie per creare per la piattaforma Android.
Crea C/C++ con MSBuild
Un tipico progetto Android viene creato con Gradle, in cui il codice nativo all'interno del progetto viene creato da un passaggio Gradle che esegue CMake o ndk-build. Con l'estensione Android Game Development for Visual Studio, il processo di compilazione viene invertito. MSBuild è il punto di partenza del processo di compilazione. Tutto il codice sorgente C/C++ viene creato prima da MSBuild per le nuove piattaforme Android installate nel sistema come parte dell'estensione (ad esempio "Android-x86_64"). MSBuild richiama quindi Gradle per pacchettizzare i file della libreria condivisa che contengono la tua logica C/C++ in un APK.
Devi prima replicare la logica di build esistente del tuo 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 contiene piattaforme Android, devi aggiungere manualmente una piattaforma Android a un progetto esistente. Per aggiungere una nuova piattaforma, segui questa procedura in Visual Studio:
- Seleziona Build > Configuration Manager.
- In Piattaforma soluzione attiva, seleziona <Nuova>.
Digita uno dei seguenti valori per la nuova piattaforma:
- Android-armeabi-v7a
- Android-arm64-v8a
- Android x86
- Android-x86_64
Nella casella Copia impostazioni da, seleziona un'altra piattaforma Android oppure <Vuoto> se non disponi ancora di piattaforme Android. Assicurati di aver attivato l'opzione Crea nuove piattaforme di progetto.
Aggiungere un elemento APK Android
Seleziona Aggiungi > Nuovo elemento > Visual C++ > Android > APK Android e fai clic su Aggiungi. Configura l'applicazione Android nella finestra di dialogo seguente.
- Nome applicazione. Il nome leggibile della tua applicazione Android.
- ID applicazione: l'identificatore univoco dell'applicazione Android.
- Posizione Esplora soluzioni: posizione della cartella virtuale che contiene i file di supporto per la pacchettizzazione di Android aggiunti. Per impostazione predefinita, questi file vengono anche trovati nel progetto in una cartella con lo stesso nome. Puoi personalizzare la posizione selezionando la casella di controllo Metti i file di supporto in una posizione personalizzata e specificando una posizione personalizzata. La cartella virtuale continuerà a essere sotto il progetto corrente in Esplora soluzioni.
Fare in modo che MSBuild richiami Gradle per creare un APK
MSBuild non può richiamare Gradle a meno che non conosca la posizione del progetto Gradle. Imposta questa località utilizzando la proprietà Gradle Build Directory, come mostrato nella Figura 1.
Figura 1. Proprietà Gradle Build Directory
Inoltre, imposta le proprietà Modulo di applicazione, Variante dell'applicazione e Nome APK (come mostrato nell'immagine precedente) in modo che MSBuild sappia cosa creare.
- Modulo di applicazione: il nome del sottoprogetto Gradle. Questo è il progetto principale
impostato nel file
settings.gradle
. Di solito viene chiamatoapp
per i progetti creati direttamente con Android Studio. - Variante dell'applicazione: la variante Android da creare. Questo valore deve essere impostato in base alle configurazioni di MSBuild. Ad esempio, una build di debug deve avere
un valore impostato sulla variante di debug. Se il nome della configurazione MSBuild del progetto corrisponde ai nomi delle varianti Gradle, utilizza semplicemente il valore predefinito
$(Configuration)
. - Nome APK: il nome del file APK generato, utilizzato per il debug e la profilazione sul computer di sviluppo. Questo nome viene passato a Gradle e lo script di build Gradle deve rispettarlo (consulta la proprietà
MSBUILD_ANDROID_OUTPUT_APK_NAME
nella sezione seguente).
Modificare gli script di build Gradle
Durante la build, MSBuild passa le seguenti informazioni come proprietà di progetto allo script Gradle. Modifica gli script di build esistenti del tuo progetto (in genere
denominati 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 nella pagina della proprietà del progetto mostrata nella Figura 2.
Figura 2. Proprietà Versione minima dell'SDK AndroidLo script di build Gradle deve impostare
minSdkVersion
su questo valore, come mostrato di seguito.Trendy
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 creato da Gradle. L'estensione Android Game Development cerca un APK corrispondente a questo nome, quindi lo implementa sui dispositivi connessi (per il debug e la profilazione). Imposta questo valore nella casella Nome APK sulla pagina della proprietà del progetto mostrata nella figura 3.
Figura 3. Proprietà Nome APKLo 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.
Trendy
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) create da MSBuild. Imposta questo valore nella casella Directory di output nella pagina della proprietà del progetto mostrata di seguito. Per impostazione predefinita, questo valore è la proprietà della directory di output per il progetto Visual Studio, come mostrato nella Figura 4.
Figura 4. Proprietà Directory di outputGradle deve pacchettizzare i file delle librerie condivise in questa cartella all'interno dell'APK in modo che l'applicazione Android li carichi in fase di runtime.
Trendy
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 le sezioni
externalNativeBuild
negli script di build per Gradle. Queste sezioni erano utilizzate per richiamare CMake o ndk-build per compilare il tuo codice C/C++, ma non sono più necessarie.MSBUILD_NDK_VERSION
: la versione dell'NDK da utilizzare per creare il progetto. Imposta questo valore nella casella Versione NDK Android nella pagina della proprietà del progetto mostrata nella Figura 5.
Figura 5. Proprietà Versione NDK di AndroidLo script di build Gradle deve impostare
ndkVersion
su questo valore, come mostrato di seguito:Trendy
android { // ... ndkVersion MSBUILD_NDK_VERSION // ... }
Kotlin
android { // ... ndkVersion = MSBUILD_NDK_VERSION // ... }
Per ulteriori informazioni, consulta l'argomento Android Studio Installare e configurare NDK e CMake.