Configuración y uso de Android Lint

Sobre el autor: Socio de contenido de CSDN y experto técnico, creó una aplicación con decenas de millones de usuarios diarios desde cero.
Concéntrese en compartir series originales de artículos en diversos campos, especializados en backend de Java, desarrollo móvil, realización de negocios, inteligencia artificial, etc. Espero que me apoyen mucho.

Insertar descripción de la imagen aquí

1. Introducción

Continuamos resumiendo y aprendiendo **conocimientos básicos de pelusa**, revisando el pasado y aprendiendo lo nuevo.

2. Descripción general

Android Studio proporciona una herramienta de escaneo de código llamada lint que te ayuda a encontrar y corregir problemas con la calidad estructural de tu código sin tener que ejecutar tu aplicación ni escribir casos de prueba
. Cada problema detectado por la herramienta se informa con un mensaje descriptivo y un nivel de gravedad para que pueda identificar rápidamente las mejoras clave que deben priorizarse.
Además, puede reducir la gravedad de los problemas para ignorar problemas no relacionados con el proyecto o aumentar la gravedad para resaltar problemas específicos.

La herramienta lint puede verificar los archivos fuente de su proyecto de Android en busca de posibles errores y si se necesitan mejoras de optimización en términos de corrección, seguridad, rendimiento, usabilidad, accesibilidad e internacionalización.

sitio web oficial de pelusa

3. Configure pelusa para que no muestre advertencias

De forma predeterminada, cuando ejecuta un análisis de pelusa, la herramienta pelusa busca problemas que pelusa pueda ayudar a detectar.
También puede restringir lint para verificar ciertos problemas y asignar un nivel de gravedad a esos problemas. Por ejemplo, puede evitar que lint busque problemas específicos que no sean relevantes para su proyecto
y puede configurar lint para que informe problemas no críticos con un nivel de gravedad más bajo.

Puede configurar diferentes niveles de verificación de pelusa:

全局(整个项目)
项目模块
生产模块
测试模块
打开的文件
类层次结构
版本控制系统 (VCS) 范围

3.1 Configurar pelusa en el proyecto de Android Studio

Puede especificar preferencias de verificación de pelusa en el archivo lint.xml, creado en el directorio raíz
del proyecto, para cambiar la gravedad de un problema o deshabilitar la verificación de pelusa para el problema configurando el atributo de gravedad en una etiqueta.

<?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 Configurar comprobaciones de pelusa para archivos fuente Java, Kotlin y XML

configuración > Editor > Inspecciones
Insertar descripción de la imagen aquí

  • A menudo se recomienda definir las opciones auxiliares de accesibilidad, como la descripción de contenido de ImageView, en atributos.
  • Cumplimiento: violación de los requisitos de Google Play, como el uso de una versión de la biblioteca caducada, el incumplimiento de los nuevos requisitos del sistema en cuanto a rendimiento, seguridad, niveles de API, etc.
  • La corrección no es una codificación perfecta, como la codificación rígida, el uso de API desactualizadas, etc.
  • Internacionalización internacionalización, utilizando caracteres chinos directamente, sin utilizar referencias de recursos, etc.
  • Interoperabilidad interoperabilidad, como la interacción con Kotln, etc.
  • Performance Codificación que afecta el rendimiento, como por ejemplo: referencias estáticas, referencias circulares, etc.
  • Seguridad Codificación insegura, como permitir el uso de JavaScriptInterface en WebView, etc.
  • La usabilidad está disponible, existen mejores alternativas como composición tipográfica, sugerencias de formato de icono.png, etc.

3.3 Configurar la comprobación de pelusa para Java o Kotlin

Para deshabilitar la verificación de pelusa específicamente para una clase o método en su proyecto de Android, agregue la anotación @SuppressLint al código.

El siguiente ejemplo muestra cómo deshabilitar la verificación de pelusa para problemas de NewApi en el método onCreate. La herramienta lint seguirá buscando problemas con NewApi en otros métodos de la clase.

@SuppressLint("NewApi")
@Override
public void onCreate(Bundle savedInstanceState) {
    
    
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
}

El siguiente ejemplo muestra cómo deshabilitar la verificación de pelusa para problemas de ParserError en la clase FeedProvider:

@SuppressLint("ParserError")
public class FeedProvider extends ContentProvider {
    
    

Para deshabilitar la verificación de pelusa para todos los problemas en un archivo, use la palabra clave all como se muestra a continuación

@SuppressLint("all")

3.4 Configurar la verificación de pelusa XML

para deshabilitar la verificación de pelusa para partes específicas del archivo XML usando el atributo herramientas: ignorar. Agregue el siguiente valor de espacio de nombres en el archivo lint.xml para que la herramienta lint reconozca este atributo:

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

El siguiente ejemplo muestra cómo deshabilitar la verificación de pelusa para problemas de UnusedResources en elementos de un archivo de diseño XML. Si un elemento principal declara el atributo ignorar, los elementos secundarios del elemento heredan este atributo. En este ejemplo, la verificación de pelusa también está deshabilitada en elementos secundarios.

<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>

Para deshabilitar varios problemas, use una cadena separada por comas para enumerar los problemas que desea deshabilitar. Por ejemplo:

tools:ignore="NewApi,StringFormatInvalid"

Para deshabilitar la verificación de pelusa para todos los problemas en elementos XML, use la palabra clave all, de la siguiente manera:


tools:ignore="all"

3.5 Configurar opciones de pelusa a través de Gradle

El complemento de Android para Gradle le permite configurar ciertas opciones de lint, como qué comprobaciones ejecutar o ignorar, usando bloques lint{} en el archivo build.gradle a nivel de módulo. El siguiente fragmento de código muestra algunas de las propiedades que puede configurar:

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. Android Studio ejecuta la comprobación de pelusa

Ejecute manualmente pelusa configurada y otras comprobaciones de IDE seleccionando código > Inspeccionar código. Los resultados de la inspección se mostrarán en la ventana Resultados de la inspección
.
Insertar descripción de la imagen aquí

Haga clic en Aceptar para ejecutar la verificación. La siguiente imagen muestra la pelusa y otros resultados de inspección del IDE generados al ejecutar Inspeccionar código
Insertar descripción de la imagen aquí

A continuación enumeramos algunas opciones individuales de uso común.

4.1 Eliminar recursos inútiles

Seleccionando código > Analizar código > Ejecutar inspección por nombre
Insertar descripción de la imagen aquí

Luego ingrese los recursos no utilizados en el cuadro de diálogo
Insertar descripción de la imagen aquí
y haga clic en Aceptar

4.2 Eliminar importaciones inútiles

Seleccionando código > Analizar código > Ejecutar inspección por nombre

Insertar descripción de la imagen aquí

Luego ingrese la importación no utilizada en el cuadro de diálogo
Insertar descripción de la imagen aquí
y haga clic en Aceptar

4.3 Eliminar declaraciones inútiles

El método es el mismo que el anterior y luego ingrese la declaración no utilizada
en el cuadro de diálogo

4.4 Eliminar asignaciones inútiles

El método es el mismo que el anterior y luego ingresa la tarea no utilizada
en el cuadro de diálogo

4.5 Eliminar declaraciones de espacios de nombres no utilizados o sugerencias de ubicación en xml

El método es el mismo que el anterior y luego ingresa la declaración del esquema no utilizado
en el cuadro de diálogo.

4.6 Eliminar bibliotecas dependientes inútiles

El método es el mismo que el anterior y luego ingresa la biblioteca no utilizada
en el cuadro de diálogo

expresión condicional constante

Vea más opciones en Configuración de comprobaciones de pelusa para archivos fuente Java, Kotlin y XML .

5. Ejecute lint desde la línea de comando

Si actualmente no estás usando Android Studio o Gradle, puedes usar la herramienta lint independiente después de instalar las herramientas de línea de comandos del SDK de Android a través del Administrador de SDK.
Después de instalar este componente, puede encontrar la herramienta pelusa en android_sdk/cmdline-tools/version/bin/lint.

Para ejecutar lint en una lista de archivos en el directorio del proyecto, use el siguiente comando:

lint [flags] <project directory>

Por ejemplo, puede emitir el siguiente comando para escanear archivos en el directorio myproject y sus subdirectorios. ID del problema MissingPrefix Consejo lint solo busca la presencia de atributos XML a los que les falta el prefijo del espacio de nombres de Android.

lint --check MissingPrefix myproject

Para ver la lista completa de indicadores y argumentos de línea de comando admitidos por la herramienta, use el siguiente comando:

lint --help

El siguiente ejemplo muestra la salida de la consola cuando se ejecuta el comando lint en un proyecto llamado 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

El resultado anterior no enumera ningún error, pero sí enumera cuatro advertencias: tres advertencias (ManifestOrder, UsesMinSdkAttributes y UnusedResources)
en el archivo AndroidManifest.xml del proyecto y una advertencia (IconMissingDensityFolder) en el archivo de diseño Preferences.xml.

5. Lectura recomendada

columna java

columna SQL

Estructuras de datos y algoritmos

columna de aprendizaje de Android

dddd

Supongo que te gusta

Origin blog.csdn.net/fumeidonga/article/details/132765951
Recomendado
Clasificación