Partager via


Profilage des applications Android

Avant de déployer votre application dans un magasin d’applications, il est important d’identifier et de résoudre les goulots d’étranglement de performances et les problèmes d’utilisation excessive de la mémoire ou d’utilisation inefficace des ressources réseau. Deux outils de profilage sont disponibles pour cela :

  • Xamarin Profiler
  • Android Profiler dans Android Studio

Ce guide présente Xamarin Profiler et fournit des informations détaillées pour bien démarrer avec Android Profiler.

Xamarin Profiler

Xamarin Profiler est une application autonome intégrée à Visual Studio et à Visual Studio pour Mac pour le profilage des applications Xamarin à partir de l’IDE. Pour plus d’informations sur l’utilisation de Xamarin Profiler, consultez Xamarin Profiler.

Remarque

Vous devez être un abonné Visual Studio Enterprise pour pouvoir déverrouiller la fonctionnalité Xamarin Profiler dans Visual Studio Enterprise sur Windows ou Visual Studio pour Mac.

Android Studio Profiler

Android Studio 3.0 et versions ultérieures incluent un outil nommé Android Profiler. Vous pouvez utiliser Android Profiler pour mesurer les performances d’une application Android Xamarin créée avec Visual Studio, sans avoir besoin d’une licence Visual Studio Enterprise. Toutefois, contrairement à Xamarin Profiler, Android Profiler n’est pas intégré à Visual Studio et peut être utilisé uniquement pour profiler un package d’application Android (APK) qui a été créé à l’avance et importé dans Android Profiler.

Lancement d’une application Xamarin Android dans Android Profiler

Les étapes suivantes expliquent comment lancer une application Xamarin Android dans l’outil Android Profiler d’Android Studio. Dans l’exemple de captures d’écran ci-dessous, un exemple d’application Xamarin Forms est généré et profilé à l’aide d’Android Profiler :

  1. Dans les options de génération de projet Android, désactivez Utiliser le runtime partagé. Cela garantit que le package APK est généré sans dépendance envers le runtime Mono partagé au moment du développement.

    Désactivation de l’option Utiliser le runtime partagé

  2. Générez l’application pour Debug et déployez-la sur un appareil physique ou un émulateur. Cela provoque la génération d’une version Debug signée du package APK. Pour l’exemple XamagonXuzzle, le package APK résultant est appelé com.companyname.XamagonXuzzle-Signed.apk.

  3. Ouvrez le dossier du projet et accédez à bin/Debug. Dans ce dossier, recherchez la version Signed.apk de l’application et copiez-la à un emplacement facilement accessible (par exemple le Bureau). Dans la capture d’écran suivante, le package APK com.companyname.XamagonXuzzle-Signed.apk est situé et copié sur le Bureau :

    Emplacement du fichier APK Debug signé

  4. Lancez Android Studio et sélectionnez Profile or debug APK :

    Démarrage du profileur à partir de l’écran de lancement d’Android Studio

  5. Dans la boîte de dialogue Select APK File, naviguez jusqu’au package APK que vous avez créé et copié précédemment. Sélectionnez le package APK et cliquez sur OK :

    Sélection du package APK dans la boîte de dialogue Select APK File

  6. Android Studio charge le package APK et désassemble classes.dex :

    Configuration du package APK

  7. Une fois le package APK chargé, Android Studio affiche l’écran de projet suivant. Cliquez avec le bouton droit sur le nom de l’application dans l’arborescence à gauche et sélectionnez Open Module Settings :

    Emplacement de l’élément de menu Open Module Settings

  8. Accédez à Project Paramètres > Modules, sélectionnez le nœud -Signé de l’application, puis cliquez sur <Aucun Kit de développement logiciel (SDK>) :

    Accès au paramètre de SDK

  9. Dans le menu déroulant Module SDK, sélectionnez le niveau de kit Android SDK qui a été utilisé pour générer l’application (dans cet exemple, le niveau d’API 26 a été utilisé pour générer XamagonXuzzle) :

    Définition du niveau de SDK du projet

    Cliquez sur Apply et OK pour enregistrer ce paramètre.

  10. Lancez le profileur à partir de l’icône de la barre d’outils :

    Emplacement de l’icône de barre d’outils du profileur

  11. Sélectionnez la cible de déploiement pour l’exécution/le profilage de l’application et cliquez sur OK. La cible de déploiement peut être un appareil physique ou un appareil virtuel en cours d’exécution dans un émulateur. Dans cet exemple, un appareil Nexus 5X est utilisé :

    Sélection de la cible de déploiement

  12. Quelques secondes après son démarrage, le profileur se connecte à l’appareil de déploiement et au processus d’application. Pendant l’installation du package APK, Android Profiler affichera les messages No connected devices et No debuggable processes.

    Le profileur installe le package APK

  13. Après quelques secondes, Android Profiler termine l’installation du package APK et le lance. Il signale le nom de l’appareil et le nom du processus d’application en cours de profilage (dans cet exemple, LGE Nexus 5X et com.companyname.XamagonXuzzle, respectivement) :

    Fenêtre du profileur après le démarrage

  14. Une fois l’appareil et le processus pouvant être débogué identifiés, Android Profiler commence le profilage de l’application :

    Affichages de Profiler pour l’application en cours d’exécution

  15. Si vous appuyez sur le bouton RANDOMIZE sur XamagonXuzzle (ce qui provoque le déplacement aléatoire des vignettes), vous observerez une augmentation de l’utilisation du processeur pendant l’intervalle de randomisation de l’application :

    Utilisation du processeur quand vous appuyez sur le bouton RANDOMIZE

Utilisation d’Android Profiler

Des informations détaillées sur l’utilisation d’Android Profiler sont fournies dans la documentation d’Android Studio. Les rubriques suivantes pourront intéresser les développeurs Xamarin Android :

  • Processeur Profiler : explique comment inspecter l’utilisation du processeur et l’activité de thread de l’application en temps réel.

  • Profileur de mémoire : affiche un graphique en temps réel de l’utilisation de la mémoire de l’application et inclut un bouton pour enregistrer les allocations de mémoire à des fins d’analyse.

  • Network Profiler : affiche l’activité réseau en temps réel des données envoyées et reçues par l’application.