Améliorez votre code avec lint checks

Classé dans : Articles | 0

en plus de vous assurer que votre application répond à ses exigences fonctionnelles en construisant des tests, il est important que vous vous assuriez également que votre code n’a pas de problèmes structurels en exécutant le code throughlint. L’outil lint aide à trouver du code mal structuré qui peut avoir un impact sur la fiabilité et l’efficacité de vos applications Android et rendre votre code plus difficile à maintenir.

par exemple, si vos fichiers de ressources XML contiennent des espaces de noms inutilisés, cela prend de l’espace et entraîne un traitement inutile., D’autres problèmes structurels, tels que l’utilisation d’éléments obsolètes ou D’appels D’API qui ne sont pas pris en charge par les versions D’API cibles, peuvent entraîner l’échec de l’exécution correcte du code.Lint peut vous aider à nettoyer ces problèmes.

pour améliorer encore les performances de linting, vous devriez égalementajouter des annotations à votre code.

aperçu

Android Studio fournit un outil d’analyse de code appelé lintthat peut vous aider à identifier et corriger les problèmes avec la qualité structurelle de votre codewithout votre avoir à exécuter l’application ou écrire des cas de test., Chaque problème détecté par l’outil est signalé avec un message de description et un niveau de gravité, de sorte que vous pouvez rapidement hiérarchiser les améliorations critiques à apporter. En outre, vous pouvez réduire le niveau de gravité d’un problème toignore les problèmes qui ne sont pas pertinents pour votre projet, ou augmenter le niveau de gravité àhighlight problèmes spécifiques.

l’outil lint vérifie vos fichiers source de projet Android pour les bogues potentiels et les améliorations d’optimisation pour l’exactitude, la sécurité, les performances, la convivialité, l’accessibilité et l’internationalisation., Lorsque vous utilisez Android Studio, les inspections lint et ID configurées s’exécutent chaque fois que vous créez votre application. Cependant, vous pouvez exécuter manuellement des inspections ou exécuter lint à partir de la ligne de commande.

Remarque: Lorsque votre code est compilé dans Android Studio, des inspections de code supplémentaires IntelliJ s’exécutent pour examiner le code en ligne.

la Figure 1 montre comment l’outil lint traite les fichiers source de l’application.

la Figure 1., Flux de travail d’analyse de Code avec l’outil lint

fichiers source de L’Application les fichiers source sont constitués de fichiers qui composent votre projet Android, y compris les fichiers Java, Kotlin et XML, les icônes et les fichiers de configuration ProGuard.

lint.xmlfichier un fichier de configuration que vous pouvez utiliser pour spécifier toutes les vérifications de charpie que vous souhaitez exclure et pour personnaliser les niveaux de gravité du problème. L’outil lint un outil d’analyse de code statique que vous pouvez exécuter sur votre projet Android à partir de la ligne de commande ou dansAndroid Studio (voir exécuter manuellement les inspections)., Linttool vérifie les problèmes de code structurel qui pourraient affecter la qualité et les performances de votre application. Il est fortement recommandé de corriger toute erreur détectée par lint avant de publier votre application. Résultats de la vérification de lint vous pouvez afficher les résultats de lint dans la console ou dans la fenêtre Résultats D’Inspection dans Android Studio. Voir exécuter manuellement les inspections.,

exécutez lint à partir de la ligne de commande

Si vous utilisez Android Studio ou Gradle, vous pouvez utiliser le wrapper Gradle pour appeler la tâche lint pour votre projet en entrant l’une des commandes suivantes À partir du répertoire racine de votre projet:

  • sous Windows:
    gradlew lint
  • Linux ou Mac:
    ./gradlew lint

vous devriez voir une sortie similaire à la suivante:

lorsque l’outil lint termine ses vérifications, il fournit des chemins vers les versions XML et HTML du rapport lint., Vous pouvez ensuite accéder au rapport HTML et l’ouvrir dans votre navigateur, comme le montre la figure 2.

la Figure 2. Exemple de rapport HTML lint

Si votre projet inclut des variantes de construction et que vous souhaitez plutôt exécuter la tâchelintpour une variante de construction spécifique, vous devez mettre le nom de la variante en majuscule et le préfixer aveclint.

gradlew lintDebug

pour en savoir plus sur l’exécution des tâches Gradle à partir de la ligne de commande, lisez construire votre application à partir de la ligne de commande.,

exécutez lint à l’aide de l’outil autonome

Si vous n’utilisez pas Android Studio ou Gradle, vous pouvez utiliser l’outil autonome lint après avoir installé les outils du SDK Android à partir du Gestionnaire du SDK. Vous pouvez ensuite localiser l’outil lint dans le répertoire android_sdk/tools/.

pour exécuter lint sur une liste de fichiers d’un répertoire de projet, utilisez la commande suivante:

lint <project directory>

Par exemple, vous pouvez lancer la commande suivante pour analyser les fichiers sous le répertoiremyproject et ses sous-répertoires., L’ID du problème MissingPrefix indique à lint de rechercher uniquement les attributs XML qui manquent le préfixe D’espace de noms Android.

lint --check MissingPrefix myproject 

pour voir la liste complète des indicateurs et des arguments de ligne de commande pris en charge par l’outil, utilisez la commande suivante:

lint --help

L’exemple suivant montre la sortie de la console lorsque la commande lint est exécutée contre un projet appelé tremblement de terre.,

La sortie ci-dessus énumère quatre mises en garde et pas d’erreurs: trois avertissements (ManifestOrder, UsesMinSdkAttributes et UnusedResources) dans la du projet AndroidManifest.xml fichier, et un avertissement (IconMissingDensityFolder) dans la balise Preferences.xml fichier de mise en page.

configurer lint pour supprimer les Avertissements

par défaut lorsque vous exécutez une analyse de peluches, l’outil vérifie tous les problèmes pris en charge par lint. Vous pouvez également restreindre la vérification des problèmes par lint et attribuer le niveau de gravité de ces problèmes., Par exemple, vous pouvez supprimer la vérification lint pour les problèmes spécifiques qui ne sont pas pertinents pour votre projet et, vous pouvez configurer lint pour signaler les problèmes non critiques à un niveau inférieur.

Vous pouvez configurer la vérification des peluches pour différents niveaux:

  • globalement (projet entier)
  • module de projet
  • module de Production
  • module de Test
  • ouvrir les fichiers
  • hiérarchie des classes
  • portée du système de contrôle de Version (VCS)

configurer lint dans Android Studio

vérifie votre code pendant que vous utilisezandroid Studio., Vous pouvez afficher les avertissements et les erreurs de deux façons:

  • sous forme de texte contextuel dans l’éditeur de Code. Lorsque lint trouve un problème, il met en évidence le code problématique en jaune, ou pour les problèmes plus graves, il souligne le code en rouge.
  • dans la fenêtre Résultats d’Inspection de charpie après avoir cliqué sur Analyser> inspecter le Code.Voir exécuter manuellement les inspections.

configurer le fichier lint

Vous pouvez spécifier vos préférences de vérification de lint dans le fichierlint.xml. Si vous créez ce fichier manuellement, placez-le dans le répertoire racine de votre projet Android.,

le fichierlint.xmlest constitué d’une balise parent<lint>contenant un ou plusieurs éléments enfants<issue>. Les peluches définit une unique balise id valeur de l’attribut pour chaque <issue>.

<?xml version="1.0" encoding="UTF-8"?> <lint> <!-- list of issues to configure --></lint>

Vous pouvez modifier le niveau de gravité d’un problème ou désactiver la vérification des peluches en définissant l’attribut de gravité dans la balise<issue>.,

astuce: pour obtenir une liste complète des problèmes supportés par lint et leurs ID de problème correspondants, exécutez la commandelint --list.

échantillon de charpie.fichier xml

L’exemple suivant montre le contenu d’un lint.xml fichier.

Configure lint checking for Java, Kotlin, and XML source files

Vous pouvez désactiver lint de la vérification de vos fichiers source Java, Kotlin et XML.

Conseil: vous pouvez gérer la fonction de vérification des peluches pour vos fichiers source Java, Kotlin ou XML dans la boîte de dialogue Préférences par défaut., Sélectionnez Fichier > autres paramètres > paramètres par défaut, puis dans le volet gauche de la boîte de dialogue Préférences par défaut, sélectionnez Éditeur > Inspections.

configuration de la vérification lint en Java ou Kotlin

Pour désactiver la vérification lint spécifiquement pour une classe ou une méthode dans votre projet Android,ajoutez l’annotation@SuppressLint à ce code.

l’exemple suivant montre comment désactiver la vérification des peluches pour le problème NewApidans la méthode onCreate., L’outil lint continue de vérifier le problèmeNewApi dans d’autres méthodes de cette classe.,

l’exemple suivant montre comment désactiver la vérification des peluches pour le problème ParserErrordans la classe FeedProvider:

pour supprimer la vérification de tous les problèmes de peluches dans le fichier, utilisez le mot-clé all, comme ceci:

Kotlin

@SuppressLint("all")

Java

@SuppressLint("all")

configuration de la vérification des peluches en XML

Vous pouvez utiliser l’attribut tools:ignore pour désactiver la vérification des peluches vos fichiers XML., Placez la valeur d’espace de noms suivante dans le fichier lint.xml afin que l’outil lint reconnaisse l’attribut:

namespace xmlns:tools="http://schemas.android.com/tools"

L’exemple suivant montre comment désactiver la vérification lint pour le problèmeUnusedResources dans le problème <LinearLayout> élément d’un fichier xmllayout. L’attributignore est hérité par les éléments enfants de l’élément parentelement dans lequel l’attribut est déclaré. Dans cet exemple, la vérification des peluches est également désactivée pour l’élément <TextView>.,

pour désactiver plusieurs problèmes, répertoriez les problèmes à désactiver dans une chaîne séparée par des virgules. Par exemple:

tools:ignore="NewApi,StringFormatInvalid"

pour supprimer la vérification de tous les problèmes de peluches dans L’élément XML, utilisez le mot-clé all, comme ceci:

tools:ignore="all"

configurer les options de peluches avec Gradle

le plugin Android pour Gradle vous permet de configurer certaines options lint, telles que les vérifications à exécuter ou à ignorer, en utilisant le bloc lintOptions {} dans votre fichier build.gradle au niveau du module., L’extrait de code suivant vous montre certaines des propriétés que vous pouvez configurer:

créer une ligne de base d’Avertissements

Vous pouvez prendre un instantané de l’ensemble actuel d’avertissements de votre projet, puis utiliser l’instantané comme ligne de base pour les futures exécutions d’inspection afin que seuls les nouveaux problèmes soient signalés. L’instantané de base vous permet de commencer à utiliser lint pour échouer la génération sans avoir à revenir en arrière et à résoudre tous les problèmes existants en premier.

pour créer un instantané de référence, modifiez le fichier build.gradle de votre projet comme suit.,

android { lintOptions { baseline file("lint-baseline.xml") }}

lorsque vous ajoutez cette ligne pour la première fois, le fichierlint-baseline.xml est créé pour établir votre ligne de base. À partir de ce moment, les outils ne lisent que le fichier pour déterminer la ligne de base. Si vous voulezpour créer une nouvelle ligne de base, supprimez manuellement le fichier et relancez lint pour le recréer.

ensuite, exécutez lint à partir de l’EDI (Analyze> Inspect Code) ou à partir de la ligne de commande comme suit. La sortie imprime l’emplacement du fichier lint-baseline.xml. L’emplacement du fichier pour votre configuration peut être différent de ce qui est montré ici.,

$ ./gradlew lintDebug...Wrote XML report to file:///app/lint-baseline.xmlCreated baseline file /app/lint-baseline.xml

Exécution lint enregistrements de l’ensemble de l’questions dans le lint-baseline.xml fichier. L’ensemble des problèmes actuels est appelé la ligne de base, et vous pouvez vérifier le fichier lint-baseline.xml dans le contrôle de version si vous souhaitez le partager avec d’autres.

personnaliser la ligne de base

Si vous souhaitez ajouter certains types de problèmes à la ligne de base, mais pas tous, vous pouvez spécifier les problèmes à ajouter en modifiant lebuild.gradle de votre projet, comme suit.,

android { lintOptions { check 'NewApi', 'HandlerLeak' baseline file("lint-baseline.xml") }}

Après avoir créé la ligne de base, si vous ajoutez de nouveaux avertissements à la base de code, lint ne répertorie que les bogues nouvellement introduits.

avertissement de base

lorsque les lignes de base sont en vigueur, vous recevez un avertissement informatif qui vous indique qu’une ou plusieurs questions ont été filtrées car elles étaient déjà répertoriées dans la ligne de base. La raison de thiswarning est de vous aider à vous rappeler que vous avez configuré une ligne de base, car idéalement, vous voudriez résoudre tous les problèmes à un moment donné.,

Cet avertissement informatif ne vous indique pas seulement le nombre exact d’erreurs et d’Avertissements filtrés, il garde également une trace des problèmes qui ne sont plus signalés. Ces informations vous permettent de savoir si vous avez réellement corrigé des problèmes, vous pouvez donc éventuellement recréer la ligne de base pour empêcher l’erreur de revenir non détectée.

Remarque: Les lignes de base sont activées lorsque vous exécutez des inspections en mode batch dans l’EDI, mais elles sont ignorées pour les vérifications dans l’éditeur qui s’exécutent en arrière-plan lorsque vous modifiez un fichier., La raison est que les lignes de base sont destinées au cas où une base de code a un nombre massif d’Avertissements existants,mais vous souhaitez résoudre les problèmes localement pendant que vous touchez le code.

exécuter manuellement les inspections

Vous pouvez exécuter manuellement les inspections lint et autres inspectionse configurées en sélectionnant analyser> inspecter le Code. Les résultats de l’inspection apparaissent dans la fenêtre Résultats de L’Inspection.,

Définir la portée de l’inspection et de profil

Sélectionnez les fichiers que vous souhaitez analyser (champ inspection) et theinspections que vous souhaitez exécuter (inspection de profil), comme suit:

  1. Dans l’Android afficher, ouvrez votre projet et sélectionnez le projet, un dossier ou un fichier que vous souhaitez analyser.
  2. dans la barre De menu, sélectionnez Analyser > Inspecter le Code.
  3. dans la boîte de dialogue Spécifier la portée D’Inspection, vérifiez les paramètres.

    la Figure 3., Examiner les paramètres de portée d’inspection

    la combinaison d’options qui apparaît dans la boîte de dialogue Spécifier la portée d’Inspection varie selon que vous avez sélectionné un projet, un dossier ou un fichier. Vous pouvez modifier les éléments à inspecter en sélectionnant l’un des autres boutons radio. Voir la boîte de dialogue specify inspection scope pour une description de tous les champs possibles de la boîte de dialogue Specify Inspection Scope.

    • lorsque vous sélectionnez un projet, un fichier ou un répertoire, la boîte de dialogue Spécifier la portée d’Inspection affiche le chemin d’accès au projet, au fichier ou au répertoire que vous avez sélectionné.,
    • lorsque vous sélectionnez plusieurs projets, fichiers ou répertoires, La boîte de dialogue Spécifier la portée d’Inspection affiche une case d’option cochée pour les fichiers sélectionnés.
  4. sous Profil D’Inspection, conservez le profil par défaut (par défaut du projet).
  5. Cliquez sur OK pour exécuter l’inspection. Figure 4 montre lint et d’autres résultats d’inspectione de L’exécution du code Inspect:

    Figure 4. Sélectionnez un problème pour voir sa résolution

  6. dans l’arborescence du volet gauche, affichez les résultats de l’inspection en développant et en sélectionnant catégories, types et problèmes d’erreur.,

    Le volet de droite affiche le rapport d’inspection pour l’erreur de la catégorie, le type ou le problème et fournit le nom et l’emplacement de l’erreur. Le cas échéant, le rapport d’inspection affiche d’autres informations telles qu’un résumé du problème pour vous aider à corriger le problème.

  7. dans l’arborescence du volet gauche, cliquez avec le bouton droit sur une catégorie, un type ou un problème pour afficher le menu contextuel.

    selon le contexte, vous pouvez effectuer tout ou partie des opérations suivantes: aller à la source, exclure et inclure les éléments sélectionnés, supprimer les problèmes, Modifier les paramètres, Gérer les alertes d’inspection et réexécuter une inspection.,

pour une description des boutons de la barre d’outils de gauche, des éléments du menu contextuel et des champs du rapport d’inspection, Voir Fenêtre de L’outil D’Inspection.

utiliser une portée personnalisée

Vous pouvez utiliser L’une des étendues personnalisées fournies dans Android Studio, comme suit:

  1. dans la boîte de dialogue Spécifier la portée D’Inspection, cliquez sur portée personnalisée.
  2. cliquez sur la liste déroulante portée personnalisée pour afficher vos options.

    la Figure 5. Sélectionnez la portée personnalisée que vous souhaitez utiliser

    • fichiers de projet: tous les fichiers du projet en cours.,
    • fichiers de Production du projet: uniquement les fichiers de production du projet en cours.
    • fichiers de Test du projet: uniquement les fichiers de test du projet en cours. Voir types de Test et emplacement.
    • ouvrir les fichiers: uniquement les fichiers que vous avez ouverts dans le projet en cours.
    • Module <le module>: Seuls les fichiers dans le dossier du module dans votre projet actuel.
    • fichier courant: uniquement le fichier courant de votre projet en cours. Apparaît lorsque vous avez sélectionné un fichier ou un dossier.,
    • hiérarchie des classes: lorsque vous sélectionnez celle-ci et cliquez sur OK, une boîte de dialogue apparaît avec toutes les classes du projet en cours. Utilisez le champ Rechercher par nom de la boîte de dialogue pour filtrer et sélectionner les classes à inspecter. Si vous ne filtrez pas la liste des classes, code inspection inspecte toutes les classes.
  3. Cliquez sur OK.

Créer une étendue personnalisée

si vous voulez inspecter une sélection de fichiers et de répertoires qui n’est couverte par aucun des étendues personnalisées, vous pouvez créer un champ.,

  1. dans la boîte de dialogue Spécifier L’étendue D’Inspection, sélectionnez étendue personnalisée.
  2. cliquez sur les trois points après la liste déroulante portée personnalisée.

    la Figure 6. Boîte de dialogue Spécifier la portée d’Inspection

    la boîte de dialogue étendues apparaît.

    la Figure 7. Créez une portée personnalisée

  3. cliquez sur Ajouter pour définir une nouvelle portée.
  4. dans la liste déroulante Ajouter une portée, sélectionnez Local.

    les étendues locales et partagées sont utilisées dans le projet pour la fonctionnalité inspecter le Code., Une portée partagée peut également être utilisée avec d’autres fonctionnalités de projet qui ont un champ de portée. Par exemple, lorsque vous cliquez sur Modifier les paramètres pour modifier les paramètres des utilisations de recherche, la boîte de dialogue résultante contient un champ de portée dans lequel vous pouvez sélectionner une portée partagée.

    la Figure 8. Sélectionnez une portée partagée dans la boîte de dialogue Rechercher des Usages

  5. donnez un nom à la portée et cliquez sur OK.

    le volet droit de la boîte de dialogue étendues contient des options qui vous permettent de définir la portée personnalisée.

  6. Dans la liste déroulante, sélectionnez le Projet.,

    Une liste des projets disponibles s’affiche.

    Remarque: Vous pouvez créer la portée personnalisée pour les projets ou les packages. Les étapes sont les mêmes de toute façon.

  7. développez les dossiers de projet, sélectionnez ce que vous souhaitez ajouter à la portée personnalisée et cliquez sur l’un des boutons à droite.

    la Figure 9. Définir une portée personnalisée

    • Include: incluez ce dossier et ses fichiers, mais n’incluez aucun de ses sous-dossiers.
    • inclure récursivement: inclure ce dossier et tous ses fichiers et sous-dossiers et leurs fichiers.,
    • exclure: excluez ce dossier et ses fichiers, mais n’excluez aucun de ses sous-dossiers.
    • exclure récursivement: exclure le dossier ths et tous ses fichiers et sous-dossiers et leurs fichiers.

    La Figure 10 montre que le dossier principal est inclus et que le dossier java est inclus récursivement. Le bleu indique les dossiers partiellement inclus et le vert indique les dossiers et fichiers inclus récursivement.

    la Figure 10., Exemple de modèle pour une portée personnalisée

    • Si vous sélectionnez le dossier java et cliquez sur Exclure récursivement, la surbrillance verte disparaît sur le dossier java et tous les dossiers et fichiers qui s’y trouvent.
    • Si vous sélectionnez à la place la MainActivity en surbrillance verte.fichier java et cliquez sur Exclure, MainActivity.java n’est plus en surbrillance verte mais tout le reste sous le dossier java est en surbrillance verte.
  8. Cliquez sur OK. La portée personnalisée apparaît en bas de la liste déroulante.,

revoir et modifier les profils d’inspection

Android Studio est livré avec une sélection de profils d’inspection lint et autres qui sont mis à jour via les mises à jour Android. Vous pouvez utiliser ces profils tels quels ou modifier leurs noms, descriptions, sévérités et étendues. Vous pouvez également activer et désactiver des groupes entiers de profils ou des profils individuels dans un groupe.

pour accéder à la boîte de dialogue Inspections:

  1. Sélectionnez Analyser> code D’inspection.
  2. dans la boîte de dialogue Spécifier la portée sous Profil D’Inspection, cliquez sur plus.,

    la boîte de dialogue Inspections s’affiche avec une liste des inspections prises en charge et de leurs descriptions.

    la Figure 11. Inspections prises en charge et leurs descriptions

  3. sélectionnez la liste déroulante Profil pour basculer entre les inspections par défaut (Android Studio) et par défaut du projet (le projet actif). Pour plus d’informations, consultez cette page de dialogue de portée D’Inspection IntelliJSpecify.
  4. dans la boîte de dialogue Inspections dans le volet de gauche, sélectionnez une catégorie de profil de niveau supérieur ou développez un groupe et sélectionnez un profil spécifique., Lorsque vous sélectionnez une catégorie de profil, vous pouvez modifier toutes les inspections dans cette catégorie comme une simple inspection.
  5. sélectionnez la liste déroulante Gérer pour copier, renommer, ajouter des descriptions, exporter et importer des inspections.
  6. Lorsque vous avez terminé, cliquez sur OK.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *