Profiler les performances de votre application

Une application est considérée comme peu performante si elle répond lentement, si les animations qu'elle présente sont saccadées, si elle se fige ou si elle consomme trop de batterie. Pour résoudre les problèmes de performances, identifiez les domaines dans lesquels votre application utilise de manière inefficace des ressources telles que le processeur, la mémoire, le processeur graphique, le réseau ou la batterie de l'appareil.

Pour identifier et résoudre ces problèmes, utilisez les outils et techniques de profilage et d'analyse comparative décrits dans cette rubrique. Pour connaître les techniques de mesure des performances et consulter des exemples d'utilisation de ces techniques afin de résoudre des problèmes spécifiques, consultez Mesurer les performances.

Android Studio propose plusieurs outils de profilage pour vous aider à identifier et à visualiser les problèmes potentiels :

  • Le Profileur de processeur, qui permet de suivre les problèmes de performances d'exécution.
  • Le Profileur de mémoire, qui permet de suivre les allocations de mémoire.
  • Le Profileur de réseau, qui surveille les utilisations du trafic réseau.
  • Le Profileur d'énergie, qui permet de suivre la consommation d'énergie. Il peut contribuer à décharger la batterie.

Pour en savoir plus sur ces outils, consultez la page Profileurs Android Studio.

Les bibliothèques Jetpack Benchmark permettent à votre application de mesurer plusieurs opérations importantes :

  • Macrobenchmark : mesurez des cas majeurs d'utilisation des performances comme les démarrages et les redéfinitions d'application déclenchés par des actions telles que les animations de l'interface utilisateur ou les défilements.
  • Microbenchmark : mesurez le coût du processeur pour des fonctions spécifiques.

Pour en savoir plus sur ces bibliothèques, consultez la page Benchmark your app (Effectuer un benchmark de votre application).

Applications profilables

Profileable est une configuration de fichier manifeste introduite dans Android Q. Elle peut spécifier si l'utilisateur de l'appareil peut profiler une application via des outils tels qu'Android Studio, Simpleperf et Perfetto.

Avant profileable, la plupart des développeurs ne pouvaient profiler des applications débogables que sur Android, ce qui générait des coûts de performances importants. Ces coûts de performances pouvaient invalider les résultats du profilage, en particulier s'ils étaient liés au temps. Le tableau 1 résume les différences entre les applications débogables et profilables.

Tableau 1. Résumé des principales différences entre les applications débogables et profilables.
Fonctionnalité Débogable Profilable
Profileur de mémoire Complet

Oui :

Non :

Profileur de processeur Complet

Oui :

Non :

Profileur de réseau Oui Non
Profileur d'énergie Oui Non
Contrôle des événements Oui Non

Profileable a été introduit pour permettre aux développeurs d'autoriser leurs applications à exposer des informations à des outils de profilage, tout en générant des coûts de performances très faibles. Pour l'essentiel, un APK profilable est un APK de version avec une ligne de <profileable android:shell="true"/> ajoutée dans la section <application> du fichier manifeste.

Créer et exécuter automatiquement une application profilable

Vous pouvez configurer, compiler et exécuter une application profilable en un clic. Cette fonctionnalité nécessite un appareil de test virtuel ou physique exécutant le niveau d'API 29 ou supérieur, et équipé de Google Play. Pour utiliser cette fonctionnalité, cliquez sur la flèche à côté de l'icône Profile app (Profiler l'application) et sélectionnez l'une des deux options suivantes :

Menu de compilation profilable en un clic
  • Profile 'app' with low overhead (Profiler l'application en ne consommant que peu de ressources) démarre les profileurs de processeur et de mémoire. Dans le Profileur de mémoire, seule l'option Record Native Allocations (Enregistrer les allocations natives) est activée.

    Profilage ne consommant que peu de ressources
  • L'option Profile 'app' with complete data (Profiler l'application avec des données complètes) démarre les profileurs de processeur, de mémoire et d'énergie.

    Profilage avec des données complètes

Créer et exécuter manuellement une application profilable

Pour créer une application profilable manuellement, vous devez d'abord créer sa version finale, puis mettre à jour son fichier manifeste, ce qui permettra la conversion. Une fois l'application profilable configurée, lancez-la et sélectionnez un processus profilable à analyser.

Créer la version finale d'une application

Pour créer une application en version finale et la profiler, procédez comme suit :

  1. Signez votre application avec la clé de débogage en ajoutant les lignes suivantes au fichier build.gradle de votre application. Si vous disposez déjà d'une version de compilation qui fonctionne, vous pouvez passer à l'étape suivante.

            buildTypes {
              release {
                signingConfig signingConfigs.debug
              }
            }
          
  2. Dans Android Studio, sélectionnez Build > Select Build Variant... (Compiler > Sélectionner une variante de compilation), puis choisissez la variante de version finale.

Passer à la version profilable

  1. Convertissez votre application en version finale ci-dessus en application profilable en ouvrant le fichier AndroidManifest.xml et en ajoutant ce qui suit dans <application>. Pour en savoir plus, consultez Compiler une application en vue de sa publication.

    <profileable android:shell="true"/>

  2. Selon la version du SDK, vous devrez peut-être ajouter les lignes suivantes au fichier build.gradle de l'application.

          aaptOptions {
            additionalParameters =["--warn-manifest-validation"]
          }
        

Profiler une application

Pour profiler une application profilable, procédez comme suit :

  1. Depuis l'émulateur ou l'appareil de développement, démarrez l'application.

  2. Dans Android Studio, lancez le profileur en sélectionnant View > Tool Windows > Profiler (Vue > Outils Windows > Profileur).

  3. Une fois l'application lancée, cliquez sur le bouton Bouton Plus du profileur dans le profileur pour afficher le menu déroulant. Sélectionnez votre appareil, puis sélectionnez l'entrée d'application sous Other profileable processes (Autres processus profilables).

    Menu profilable
  4. Le profileur doit être associé à l'application. Seuls les processeurs et les profileurs de mémoire sont disponibles, avec des capacités limitées pour ces derniers.

    Vue de session profilable
    Menu profilable
    Menu profilable