À propos de l'auteur : partenaire de contenu CSDN, expert technique, partant de zéro pour créer des dizaines de millions d'activités quotidiennes APP.
Concentrez-vous sur le partage de séries d'articles originales dans divers domaines, bon en backend Java, développement mobile, réalisation commerciale, intelligence artificielle, etc. J'espère que vous me soutiendrez beaucoup.
Table des matières
- 1. Introduction
- 2. Aperçu
- 3. Configurez Lint pour ne pas afficher d'avertissements
-
- 3.1 Configurer les peluches dans le projet Android Studio
- 3.2 Configurer la vérification des peluches pour les fichiers sources Java, Kotlin et XML
- 3.3 Configurer la vérification des peluches pour Java ou Kotlin
- 3.4 Configuration de la vérification des peluches XML
- 3.5 Configuration des options de charpie via Gradle
- 4. Le studio Android exécute une vérification des peluches
-
- 4.1 Supprimer les ressources inutiles
- 4.2 Supprimer les importations inutiles
- 4.3 Supprimer les déclarations inutiles
- 4.4 Supprimer les affectations inutiles
- 4.5 Supprimer les déclarations d'espace de noms ou les indications d'emplacement inutilisées dans XML
- 4.6 Supprimer les bibliothèques dépendantes inutiles
- 5. Exécutez Lint à partir de la ligne de commande
- 5. Lectures recommandées
1. Introduction
Nous continuons à résumer et à apprendre les **bases de Lint**, en apprenant du passé.
2. Aperçu
Android Studio fournit un outil d'analyse de code appelé lint qui vous aide à trouver et à corriger les problèmes liés à la qualité structurelle de votre code sans exécuter réellement votre application ni écrire de cas de test
. Chaque problème détecté par l'outil est signalé avec un message descriptif et un niveau de gravité afin que vous puissiez identifier rapidement les améliorations clés qui doivent être priorisées.
En outre, vous pouvez réduire la gravité d'un problème pour ignorer les problèmes qui ne sont pas pertinents pour le projet, ou augmenter la gravité pour mettre en évidence des problèmes spécifiques.
L'outil Lint peut vérifier les fichiers sources de votre projet Android pour détecter des bogues potentiels et si des améliorations d'optimisation sont nécessaires en termes d'exactitude, de sécurité, de performances, de convivialité, d'accessibilité et d'internationalisation.
3. Configurez Lint pour ne pas afficher d'avertissements
Par défaut, lorsque vous exécutez une analyse des peluches, l'outil de charpie recherche les problèmes que les peluches peuvent aider à détecter.
Vous pouvez également limiter les peluches pour rechercher certains problèmes et attribuer des niveaux de gravité à ces problèmes. Par exemple, vous pouvez empêcher Lint de rechercher des 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 de gravité inférieur.
Vous pouvez configurer différents niveaux de vérification des peluches :
全局(整个项目)
项目模块
生产模块
测试模块
打开的文件
类层次结构
版本控制系统 (VCS) 范围
3.1 Configurer les peluches dans le projet Android Studio
Vous pouvez spécifier les préférences de vérification des charpies dans le fichier lint.xml, que vous créez dans le répertoire racine
de votre projet, pour modifier la gravité d'un problème ou désactiver la vérification des charpies pour ce problème en définissant l'attribut de gravité dans une balise.
<?xml version="1.0" encoding="utf-8" ?>
<lint>
<!--配置所有Issue的默认优先级-->
<!--<issue id="all" severity="warning"/>-->
<!--配置指定Issue的优先级-->
<!--<issue id="ShowToast" severity="error"/>-->
<!--忽略指定路径的指定问题,支持正则表达式或path匹配-->
<!--<issue id="NewApi">-->
<!--<ignore regexp=".*MainActivity.java"/>-->
<!--<ignore path="**/com/paincker/lint/demo/MainActivity.java"/>-->
<!--<ignore path="res/layout/activation.xml"/>-->
<!--</issue>-->
<!--<issue id="all" severity="warning"/>-->
<!-- 忽略android建议的最小尺寸建议提示 -->
<issue id="SmallSp" severity="ignore"/>
<!-- 忽略 ButtonStyle-->
<issue id="ButtonStyle" severity="ignore"/>
<!-- 忽略拼写问题-->
<issue id="SpellCheckingInspection" severity="ignore"/>
<issue id="Spelling" severity="ignore"/>
<!-- 忽略对控件内容描述的检查 -->
<issue id="ContentDescription" severity="ignore"/>
<issue id="SameParameterValue" severity="ignore"/>
<issue id="UsingHttp" severity="ignore" >
<ignore path="demo/gradle/wrapper/gradle-wrapper.properties" />
</issue>
<!-- 忽略google提供的云端备份功能 -->
<issue id="AllowBackup" severity="ignore"/>
<issue id="RtlEnabled" severity="ignore" />
<!-- 忽略Missing density variation folders in 'src/main/res': drawable-hdpi, drawable-mdpi, drawable-xxhdpi -->
<issue id="IconMissingDensityFolder" severity="ignore"/>
<issue id="GradleDependency" severity="ignore" />
</lint>
3.2 Configurer la vérification des peluches pour les fichiers sources Java, Kotlin et XML
paramètres > Éditeur > Inspections
- Il est souvent recommandé de définir les options auxiliaires d'accessibilité, telles que contentDescription d'ImageView, dans les attributs.
- Conformité : violation des exigences de Google Play, telles que l'utilisation d'une version de bibliothèque expirée, le non-respect des nouvelles exigences du système en matière de performances, de sécurité, de niveaux d'API, etc.
- Exactitude : codage imparfait, tel que le codage en dur, l'utilisation d'API obsolètes, etc.
- Internationalisation Internationalisation, en utilisant directement les caractères chinois, sans utiliser de références de ressources, etc.
- Interopérabilité, comme l'interaction avec Kotln, etc.
- Codage performant qui a un impact sur les performances, comme les références statiques, les références circulaires, etc.
- Sécurité Codage dangereux, comme autoriser l'utilisation de JavaScriptInterface dans WebView, etc.
- La convivialité est disponible et il existe de meilleures alternatives telles que la composition, les suggestions de format d'icône, le format .png, etc.
3.3 Configurer la vérification des peluches pour Java ou Kotlin
Pour désactiver la vérification des charpies spécifiquement pour une classe ou une méthode dans votre projet Android, ajoutez l'annotation @SuppressLint au code.
L'exemple suivant montre comment désactiver la vérification des peluches pour les problèmes NewApi dans la méthode onCreate. L'outil lint continuera à rechercher les problèmes NewApi dans d'autres méthodes de la classe.
@SuppressLint("NewApi")
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
L'exemple suivant montre comment désactiver la vérification des charpies pour les problèmes ParserError dans la classe FeedProvider :
@SuppressLint("ParserError")
public class FeedProvider extends ContentProvider {
Pour désactiver la vérification des charpies pour tous les problèmes dans un fichier, utilisez le mot-clé all comme indiqué ci-dessous
@SuppressLint("all")
3.4 Configuration de la vérification des peluches XML
pour désactiver la vérification des charpies pour des parties spécifiques du fichier XML à l'aide de l'attribut tools:ignore. Ajoutez la valeur d'espace de noms suivante dans le fichier lint.xml afin que l'outil lint reconnaisse cet attribut :
namespace xmlns:tools="http://schemas.android.com/tools"
L'exemple suivant montre comment désactiver la vérification des charpies pour les problèmes UnusedResources dans les éléments d'un fichier de présentation XML. Si un élément parent déclare l'attribut ignore, les éléments enfants de l'élément héritent de cet attribut. Dans cet exemple, la vérification des peluches est également désactivée sur les éléments enfants.
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
tools:ignore="UnusedResources" >
<TextView
android:text="@string/auto_update_prompt" />
</LinearLayout>
Pour supprimer plusieurs questions, répertoriez les questions à supprimer à l'aide d'une chaîne séparée par des virgules. Par exemple:
tools:ignore="NewApi,StringFormatInvalid"
Pour désactiver la vérification des charpies pour tous les problèmes dans les éléments XML, utilisez le mot-clé all, comme suit :
tools:ignore="all"
3.5 Configuration des options de charpie via Gradle
Le plugin Android pour Gradle vous permet de configurer certaines options de lint, telles que les vérifications à exécuter ou à ignorer, à l'aide des blocs lint{} dans le fichier build.gradle au niveau du module. L'extrait de code suivant montre certaines des propriétés que vous pouvez configurer :
android {
...
lint {
// Turns off checks for the issue IDs you specify.
disable 'TypographyFractions','TypographyQuotes'
// Turns on checks for the issue IDs you specify. These checks are in
// addition to the default lint checks.
enable 'RtlHardcoded','RtlCompat', 'RtlEnabled'
// To enable checks for only a subset of issue IDs and ignore all others,
// list the issue IDs with the 'check' property instead. This property overrides
// any issue IDs you enable or disable using the properties above.
checkOnly 'NewApi', 'InlinedApi'
// If set to true, turns off analysis progress reporting by lint.
quiet true
// If set to true (default), stops the build if errors are found.
abortOnError false
// If true, only report errors.
ignoreWarnings true
// If true, lint also checks all dependencies as part of its analysis. Recommended for
// projects consisting of an app with library dependencies.
checkDependencies true
}
}
...
4. Le studio Android exécute une vérification des peluches
Exécutez manuellement les charpies configurées et d’autres vérifications IDE en sélectionnant code > Inspecter le code. Les résultats de l'inspection seront affichés dans la fenêtre Résultats de l'inspection
.
Cliquez sur OK pour exécuter la vérification. L'image ci-dessous montre les résultats des inspections de charpie et d'autres inspections IDE générées par l'exécution d'Inspect Code.
Ci-dessous, nous énumérons quelques options individuelles couramment utilisées
4.1 Supprimer les ressources inutiles
En sélectionnant code > Analyser le code > Exécuter l'inspection par nom
Saisissez ensuite les ressources inutilisées dans la boîte de dialogue
et cliquez sur OK
4.2 Supprimer les importations inutiles
En sélectionnant code > Analyser le code > Exécuter l'inspection par nom
Saisissez ensuite l'importation inutilisée dans la boîte de dialogue
et cliquez sur OK
4.3 Supprimer les déclarations inutiles
La méthode est la même que ci-dessus, puis entrez la déclaration inutilisée
dans la boîte de dialogue
4.4 Supprimer les affectations inutiles
La méthode est la même que ci-dessus, puis saisissez l'affectation inutilisée
dans la boîte de dialogue
4.5 Supprimer les déclarations d'espace de noms ou les indications d'emplacement inutilisées dans XML
La méthode est la même que ci-dessus, puis entrez la déclaration de schéma inutilisée
dans la boîte de dialogue
4.6 Supprimer les bibliothèques dépendantes inutiles
La méthode est la même que ci-dessus, puis entrez la bibliothèque inutilisée
dans la boîte de dialogue
expression conditionnelle constante
Découvrez plus d'options dans Configuration des contrôles anti-peluches pour les fichiers sources Java, Kotlin et XML .
5. Exécutez Lint à partir de la ligne de commande
Si vous n'utilisez pas actuellement Android Studio ou Gradle, vous pouvez utiliser l'outil lint autonome après avoir installé les outils de ligne de commande du SDK Android via le gestionnaire de SDK.
Après avoir installé ce composant, vous pouvez trouver l'outil lint dans android_sdk/cmdline-tools/version/bin/lint.
Pour exécuter lint sur une liste de fichiers dans le répertoire du projet, utilisez la commande suivante :
lint [flags] <project directory>
Par exemple, vous pouvez exécuter la commande suivante pour analyser les fichiers du répertoire monprojet et de ses sous-répertoires. ID du problème MissingPrefix Tip Lint recherche uniquement la présence d'attributs XML pour lesquels le préfixe d'espace de noms Android est manquant.
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 lors de l'exécution de la commande lint sur un projet nommé Earthquake.
$ lint Earthquake
Scanning Earthquake: ...............................................................................................................................
Scanning Earthquake (Phase 2): .......
AndroidManifest.xml:23: Warning: <uses-sdk> tag appears after <application> tag [ManifestOrder]
<uses-sdk android:minSdkVersion="7" />
^
AndroidManifest.xml:23: Warning: <uses-sdk> tag should specify a target API level (the highest verified version; when running on later versions, compatibility behaviors may be enabled) with android:targetSdkVersion="?" [UsesMinSdkAttributes]
<uses-sdk android:minSdkVersion="7" />
^
res/layout/preferences.xml: Warning: The resource R.layout.preferences appears to be unused [UnusedResources]
res: Warning: Missing density variation folders in res: drawable-xhdpi [IconMissingDensityFolder]
0 errors, 4 warnings
La sortie ci-dessus ne répertorie aucune erreur, mais elle répertorie quatre avertissements : trois avertissements (ManifestOrder, UsesMinSdkAttributes et UnusedResources)
dans le fichier AndroidManifest.xml du projet et un avertissement (IconMissingDensityFolder) dans le fichier de présentation Preferences.xml.
5. Lectures recommandées
Structures de données et algorithmes
Colonne d'apprentissage Android