Cibles de construction

Les cibles de build suivantes sont définies dans .NET pour les projets Android.

Build

Construit le code source au sein d'un projet et toutes les dépendances.

Cette cible ne crée pas de package Android (.apk fichier). Pour créer un package Android, utilisez la cible 'SignAndroidPackage' ou définissez la propriété '$(AndroidBuildApplicationPackage)' à True lors de la construction :

msbuild /p:AndroidBuildApplicationPackage=True App.sln

BuildAndStartAotProfiling

Construit l’application avec un profileur AOT intégré, définit le port TCP du profileur à $(AndroidAotProfilerPort), et lance l’activité par défaut.

Le port TCP par défaut est 9999.

Ajouté dans Xamarin.Android 10.2.

Nettoyer

Supprime tous les fichiers générés par le processus de génération.

CalculerLesAppareilsDisponibles

Interroge et retourne une liste des appareils et émulateurs Android disponibles qui peuvent être utilisés avec dotnet run.

Cette cible est appelée automatiquement par la commande dotnet run du SDK .NET pour prendre en charge la sélection de l’appareil via l’option --device. Elle retourne un groupe d’éléments @(Devices) où chaque appareil a les métadonnées suivantes :

  • Description : Nom convivial (par exemple, « Pixel 7 - API 35 » pour les émulateurs, « Pixel 6 Pro » pour les appareils physiques)
  • Type : « Appareil » ou « Émulateur »
  • État : État de l’appareil - « En ligne », « Hors connexion », « Non autorisé » ou « NoPermissions »
  • Modèle : identificateur du modèle d’appareil (facultatif)
  • Produit : nom du produit (facultatif)
  • Appareil : nom de l’appareil (facultatif)
  • TransportId : ID de transport adb (facultatif)

Par exemple, pour répertorier tous les appareils disponibles :

dotnet build -t:ComputeAvailableDevices

Cette cible fait partie de la spécification de sélection d’appareil du SDK .NET et active les commandes telles que :

dotnet run --device <device-serial>

Lorsqu’un appareil est sélectionné via la $(Device) propriété, la $(AdbTarget) propriété est automatiquement définie pour cibler cet appareil spécifique pour toutes les opérations adb.

Ajouté dans .NET 11.

FinishAotProfiling

Doit être appelé après la cible BuildAndStartAotProfiling.

Collecte les données du profileur AOT à partir de l’appareil ou de l’émulateur via le port TCP $(AndroidAotProfilerPort) et les écrit dans $(AndroidAotCustomProfilePath).

Les valeurs par défaut pour le port et le profil personnalisé sont 9999 et custom.aprof.

Pour passer des options supplémentaires à aprofutil, définissez-les dans le Propriété $(AProfUtilExtraOptions).

Ceci équivaut à :

aprofutil $(AProfUtilExtraOptions) -s -v -f -p $(AndroidAotProfilerPort) -o "$(AndroidAotCustomProfilePath)"

Ajouté dans Xamarin.Android 10.2.

GetAndroidDependencies

Crée le @(AndroidDependency) groupe d’éléments, qui est utilisé par la InstallAndroidDependencies cible pour déterminer les packages Android SDK à installer.

Installer

Crée, signe et installe le package Android sur l’appareil ou l’appareil virtuel par défaut.

La $(AdbTarget) propriété spécifie l’appareil cible Android sur lequel le package Android peut être installé ou supprimé.

# Install package onto emulator via -e
# Use `/Library/Frameworks/Mono.framework/Commands/msbuild` on OS X
MSBuild /t:Install ProjectName.csproj /p:AdbTarget=-e

InstallAndroidDependencies

Appelle la GetAndroidDependencies cible, puis installe les packages SDK Android spécifiés dans le groupe d’éléments @(AndroidDependency).

dotnet build -t:InstallAndroidDependencies -f net8.0-android "-p:AndroidSdkDirectory=<path to sdk>" "-p:JavaSdkDirectory=<path to java sdk>"

La présence de la -f net8.0-android est requise, car c'est une cible spécifique à .NET pour Android. Si vous omettez cet argument, vous obtenez l’erreur suivante :

error MSB4057: The target "InstallAndroidDependencies" does not exist in the project.

Les propriétés AndroidSdkDirectory et JavaSdkDirectory sont nécessaires car nous devons savoir où installer les composants nécessaires. Ces répertoires peuvent être vides ou existants. Les composants du Kit de développement logiciel (SDK) seront installés par-dessus une installation existante du SDK.

La propriété $(AndroidManifestType) MSBuild contrôle le référentiel du Gestionnaire du kit de développement logiciel (SDK) Visual Studio utilisé pour la détection du nom et de la version du package, ainsi que pour fournir les URL de téléchargement.

ExécuterAvecJournalisation

Exécute l’application avec une journalisation supplémentaire activée. Utile lors de la création de rapports ou de l’examen d’un problème avec l’application ou le runtime. En cas de réussite, les messages imprimés à l’écran affichent l’emplacement du fichier logcat avec les messages consignés.

Propriétés qui affectent le fonctionnement de la cible :

  • /p:RunLogVerbose=true permet une journalisation encore plus détaillée à partir de MonoVM
  • /p:RunLogDelayInMS=XX doit être remplacé par le temps en millisecondes à attendre avant d’écrire la sortie du log dans le fichier. La valeur par défaut est 1000.

Signer un package Android

Crée et signe le fichier de package Android (.apk).

À utiliser avec /p:Configuration=Release pour générer des packages « Release » autonomes.

StartAndroidActivity

Démarre l’activité par défaut sur l’appareil ou l’émulateur en cours d’exécution.

Pour démarrer une autre activité, définissez la $(AndroidLaunchActivity) propriété au nom de l’activité.

Ceci équivaut à :

adb shell am start -S -n @PACKAGE_NAME@/$(AndroidLaunchActivity)

Ajouté dans Xamarin.Android 10.2.

StopAndroidPackage

Arrête complètement le package d’application sur l’appareil ou l’émulateur en cours d’exécution.

Ceci équivaut à :

adb shell am force-stop @PACKAGE_NAME@

Ajouté dans Xamarin.Android 10.2.

Désinstaller

Désinstalle le package Android à partir de l’appareil ou de l’appareil virtuel par défaut.

La $(AdbTarget) propriété spécifie l’appareil cible Android sur lequel le package Android peut être installé ou supprimé.

UpdateAndroidResources

Met à jour le fichier Resource.designer.cs.

Cette cible est généralement appelée par l’IDE quand de nouvelles ressources sont ajoutées au projet.