mejora tu código con lint checks

publicado en: Articles | 0

Además de asegurarte de que tu app cumple con sus requisitos funcionales mediante la creación de pruebas, es importante que también te asegures de que tu código no tenga problemas estructurales ejecutando el código a través de Lint. La herramienta lint ayuda a encontrar Código mal estructurado que puede afectar la fiabilidad y la eficiencia de sus aplicaciones Android y hacer que su código sea más difícil de mantener.

por ejemplo, si los archivos de recursos XML contienen espacios de nombres no utilizados, esto ocupa espacio e incurre en un procesamiento innecesario., Otros problemas estructurales, como el uso de elementos obsoletos o llamadas a la API que no son compatibles con las versiones de la API de destino, pueden provocar que el código no se ejecute correctamente.La pelusa puede ayudarte a limpiar estos problemas.

para mejorar aún más el rendimiento de linting, también debe agregar anotaciones a su código.

vista general

Android Studio proporciona una herramienta de escaneo de código llamada lint que puede ayudarlo a identificar y corregir problemas con la calidad estructural de su código sin tener que ejecutar la aplicación o escribir casos de prueba., Cada problema detectado por la herramienta se informa con un mensaje de descripción y un nivel de gravedad, para que pueda priorizar rápidamente las mejoras críticas que deben realizarse. Además, puede reducir el nivel de gravedad de un problema para identificar problemas que no son relevantes para su proyecto, o aumentar el nivel de gravedad para resaltar problemas específicos.

la herramienta lint comprueba los archivos de origen del proyecto Android en busca de posibles errores y mejoras de optimización para la corrección, la seguridad, el rendimiento, la usabilidad, la accesibilidad y la internacionalización., Al usar Android Studio, las inspecciones de lint e IDE configuradas se ejecutan cada vez que compilas tu aplicación. Sin embargo, puede ejecutar manualmente inspecciones o ejecutar lint desde la línea de comandos.

Nota: Cuando tu código se compila en Android Studio, se ejecutan inspecciones adicionales de código de intelij para revisar el código de línea.

La Figura 1 muestra cómo la herramienta lint procesa los archivos de origen de la aplicación.

la Figura 1., Flujo de trabajo de escaneo de código con la herramienta lint

archivos de origen de la aplicación los archivos de origen consisten en archivos que componen su proyecto de Android, incluidos archivos Java, Kotlin, andXML, iconos y archivos de configuración ProGuard. El archivo

lint.xmlun archivo de configuración que puede usar para especificar cualquier comprobación de pelusa que desee excluir y para personalizar los niveles de gravedad del problema. Herramienta lint una herramienta de análisis de código estático que puedes ejecutar en tu proyecto Android desde la línea de comandos o desde inAndroid Studio (consulta ejecutar inspecciones manualmente)., El linttool comprueba si hay problemas de código estructural que podrían afectar la calidad y el rendimiento de la aplicación yourAndroid. Se recomienda encarecidamente que corrija cualquier error que lint detecte antes de publicar su aplicación. Resultados de la comprobación de lint puedes ver los resultados de lint en la consola o en la ventana de resultados de inspección de Android Studio. Consulte Ejecutar inspecciones manualmente.,

ejecuta lint desde la línea de comandos

si usas Android Studio o Gradle, puedes usar el envoltorio de Gradle para invocar la tarea lint para tu proyecto introduciendo uno de los siguientes comandos desde el directorio raíz de tu proyecto:

  • En Windows:
    gradlew lint
  • Linux o Mac:
    ./gradlew lint

debería ver una salida similar a la siguiente:

Cuando la herramienta lint completa sus comprobaciones, proporciona rutas a las versiones XML y html del informe lint., A continuación, puede navegar hasta el informe HTML y abrirlo en su navegador, como se muestra en la figura 2.

la Figura 2. Ejemplo de informe HTML lint

si su proyecto incluye Variantes de compilación, y en su lugar desea ejecutar la tarea lint solo para una variante de compilación específica, debe poner en mayúscula el nombre de la variante y ponerle el prefijo lint.

gradlew lintDebug

para obtener más información sobre cómo ejecutar tareas de Gradle desde la línea de comandos, lee compilar tu aplicación desde la línea de comandos.,

ejecuta lint con la herramienta independiente

si no usas Android Studio o Gradle, puedes usar la herramienta independiente de lint después de instalar las herramientas del SDK de Android desde SDK Manager. A continuación, puede localizar la herramienta lint en el directorio android_sdk/tools/.

para ejecutar lint contra una lista de archivos en un directorio de proyecto, utilice el siguiente comando:

lint <project directory>

por ejemplo, puede emitir el siguiente comando para escanear los archivos en el directoriomyproject y sus subdirectorios., El ID del problema MissingPrefix indica a lint que solo busque atributos XML que no tengan 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 comandos soportados por la herramienta, use el siguiente comando:

lint --help

el siguiente ejemplo muestra la salida de la consola cuando el comando lint se ejecuta contra un proyecto llamado Earthquake.,

la salida anterior enumera cuatro advertencias y no hay errores: tres advertencias (ManifestOrder, UsesMinSdkAttributes, y UnusedResources) en el archivo AndroidManifest.xml y una advertencia (IconMissingDensityFolder) en el archivo de diseño Preferences.xml.

configurar lint para suprimir las advertencias

de forma predeterminada cuando se ejecuta un análisis de lint, La herramienta comprueba todos los problemas que admite lint. También puede restringir los problemas para que lint compruebe y asignar el nivel de gravedad para esos problemas., Por ejemplo, puede suprimir la comprobación de lint para detectar problemas específicos que no sean relevantes para su proyecto y puede configurar lint para que informe problemas no críticos a un nivel de seriedad inferior.

Puede configurar la comprobación de lint para diferentes niveles:

  • globalmente (proyecto completo)
  • Módulo de proyecto
  • Módulo de producción
  • Módulo de prueba
  • archivos abiertos
  • jerarquía de clases
  • ámbitos del sistema de control de versiones (VCS)

configurar lint en Android Studio

la herramienta comprueba tu código mientras usas Android Studio., Puede ver advertencias y errores de dos maneras:

  • como texto emergente en el Editor de código. Cuando lint encuentra un problema, resalta el código problemático en amarillo, o para problemas más serios, subraya el código en rojo.
  • En la ventana Resultados de inspección de pelusa después de hacer clic en Analizar > inspeccionar código.Consulte Ejecutar inspecciones manualmente.

configurar el archivo lint

puede especificar sus preferencias de comprobación de lint en el archivo lint.xml. Si está creando este archivo manualmente, colóquelo en el directorio raíz de su proyecto de Android.,

el archivo lint.xml consiste en una etiqueta padre <lint> que contiene uno o más elementos hijos <issue>. Lint define un valor de atributo único id para cada <issue>.

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

puede cambiar el nivel de gravedad de un problema o deshabilitar la comprobación de pelusa para el problema estableciendo el atributo severity en la etiqueta <issue>.,

sugerencia: para obtener una lista completa de problemas compatibles con lint y sus ID de problema correspondientes, ejecute el comando lint --list.

muestra de pelusa.archivo xml

el siguiente ejemplo muestra el contenido de un archivo lint.xml.

configurar la comprobación de lint para los archivos de origen Java, Kotlin y XML

Puede desactivar la comprobación de lint de los archivos de origen Java, Kotlin y XML.

sugerencia: puede administrar la función de comprobación de pelusa para sus archivos de origen Java, Kotlin o XML en el cuadro de diálogo preferencias predeterminadas., Seleccione File > Other Settings > Default Settings, y luego en el panel izquierdo del diálogo de preferencias predeterminadas, seleccione Editor > Inspections.

configurar la comprobación de lint en Java o Kotlin

para deshabilitar la comprobación de lint específicamente para una clase o método en tu proyecto Android,agrega la anotación @SuppressLint a ese código.

el siguiente ejemplo muestra cómo puede desactivar la comprobación de pelusa para el problema NewApien el método onCreate., La herramienta lint continúa buscando el problema NewApi en otros métodos de esta clase.,

el siguiente ejemplo muestra cómo desactivar la comprobación de pelusa para el problema ParserErroren la clase FeedProvider:

para suprimir la comprobación de todos los problemas de pelusa en el archivo, use la palabra clave all, de esta manera:

Kotlin

@SuppressLint("all")

Java

@SuppressLint("all")

configurar la comprobación de lint en XML

puede usar el atributo tools:ignore para deshabilitar la comprobación de lint para secciones específicas de su Archivos XML., Coloque el siguiente valor de espacio de nombres en el archivo lint.xml para que la herramienta lint reconozca el atributo:

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

el siguiente ejemplo muestra cómo puede desactivar la comprobación de lint para el problemaUnusedResources en el de un archivo xmllayout. El atributo ignore es heredado por los elementos secundarios del parentelement en el que se declara el atributo. En este ejemplo, la comprobación de pelusa también está deshabilitada para el elemento child <TextView>.,

para deshabilitar más de un problema, enumere los problemas a deshabilitar en una cadena separada por comas. Por ejemplo:

tools:ignore="NewApi,StringFormatInvalid"

para suprimir la comprobación de todos los problemas de lint en el elemento XML, use la palabra clave all, como esta:

tools:ignore="all"

Configure las opciones de lint con Gradle

El complemento Gradle te permite configurar ciertas opciones de lint, como qué verificaciones ejecutar o ignorar, usando el bloque lintOptions {} en tu archivo de nivel de módulo build.gradle., El siguiente fragmento de código muestra algunas de las propiedades que puede configurar:

crear advertencias línea de base

Puede tomar una instantánea del conjunto actual de advertencias de su proyecto y, a continuación, usar la instantánea como línea de base para futuras ejecuciones de inspección, de modo que solo se notifiquen nuevos problemas. La instantánea de línea de base le permite comenzar a usar lint para fallar la compilación sin tener que volver atrás y abordar primero todos los problemas existentes.

para crear una instantánea de referencia, modifique el archivo build.gradle de su proyecto de la siguiente manera.,

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

cuando agrega esta línea por primera vez, el archivo lint-baseline.xml se crea para establecer su línea de base. A partir de entonces, las herramientas solo leen el archivo para determinar la línea base. Si desea crear una nueva línea base, elimine manualmente el archivo y vuelva a ejecutar lint para volver a crearlo.

a continuación, ejecute lint desde el IDE (Analyze > Inspect Code) o desde la línea de comandos de la siguiente manera. La salida imprime la ubicación del archivo lint-baseline.xml. La ubicación del archivo para su configuración puede ser diferente de lo que se muestra aquí.,

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

Ejecutar lint registros de todos thecurrent problemas en el lint-baseline.xml archivo. El conjunto de problemas actuales se llama la línea de base, y puede verificar el archivo lint-baseline.xml en control de versiones si desea compartirlo con otros.

personalizar la línea base

si desea agregar algunos tipos de problemas a la línea base, pero no todos, puede especificar los problemas que desea agregar editando el build.gradle de su proyecto, de la siguiente manera.,

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

después de crear la base de referencia, si agrega nuevas advertencias a la base de código, lint solo enumera los errores recientemente introducidos.

Advertencia de línea de Base

cuando las líneas de base están en vigor, se obtiene una advertencia informativa que le indica que uno o máslas cuestiones se filtraron porque ya estaban listadas en la línea de base. La razón de esta advertencia es para ayudarlo a recordar que ha configurado una línea de base, porque idealmente, querría solucionar todos los problemas en algún momento.,

esta advertencia informativa no solo le dice el número exacto de errores y advertencias que se filtraron, sino que también realiza un seguimiento de los problemas que ya no se informan. Esta información le permite saber si realmente ha solucionado problemas, por lo que opcionalmente puede volver a crear la línea de base para evitar que el error vuelva sin ser detectado.

Nota:Las líneas base se activan cuando se ejecutan inspecciones en modo batch en el IDE, pero se ignoran para las comprobaciones en el editor que se ejecutan en segundo plano cuando se está editando un archivo., La razón es que las líneas de base están diseñadas para el caso en el que una base de código tiene un gran número de advertencias existentes,pero desea solucionar problemas localmente mientras toca el código.

ejecutar manualmente inspecciones

puede ejecutar manualmente inspecciones de pelusa configuradas y otras inspecciones IDE seleccionando analizar > inspeccionar código. Los resultados de la inspección aparecen en la ventana Resultados de la inspección.,

establecer el ámbito y el perfil de inspección

seleccione los archivos que desea analizar (ámbito de inspección) y las inspecciones que desea ejecutar (perfil de inspección), de la siguiente manera:

  1. En la vista de Android, Abra su proyecto y seleccione el proyecto, una carpeta o un archivo que desea analizar.
  2. En la barra de menú, seleccione Analizar > inspeccionar código.
  3. En el cuadro de diálogo Especificar ámbito de inspección, revise la configuración.

    Figura 3., Revisar la configuración del ámbito de inspección

    la combinación de opciones que aparecen en el cuadro de diálogo Especificar ámbito de inspección varía en función de si ha seleccionado un proyecto, una carpeta o un archivo. Puede cambiar qué inspeccionar seleccionando uno de los otros botones de opción. Consulte el diálogo Especificar ámbito de inspección para obtener una descripción de todos los campos posibles en el diálogo Especificar ámbito de inspección.

    • Cuando selecciona un proyecto, archivo o directorio, el cuadro de diálogo Especificar ámbito de Inspección muestra la ruta de acceso al proyecto, archivo o directorio seleccionado.,
    • Cuando selecciona Más de un proyecto, archivo o directorio, el cuadro de diálogo Especificar ámbito de Inspección muestra un botón de opción Marcado para los archivos seleccionados.
  4. En perfil de inspección, mantenga el perfil predeterminado (por defecto del proyecto).
  5. haga clic en Aceptar para ejecutar la inspección. La figura 4 muestra los resultados de inspección de lint y otros IDE de la ejecución del Código Inspect:

    Figura 4. Seleccione un problema para ver su resolución

  6. en la vista de árbol del panel izquierdo, vea los resultados de la inspección expandiendo y seleccionando categorías de errores, Tipos y problemas.,

    el panel derecho muestra el informe de inspección para la categoría, el tipo o el problema de error seleccionado y proporciona el nombre y la ubicación del error. Cuando corresponda, el informe de inspección muestra otra información, como una sinopsis del problema, para ayudarlo a corregirlo.

  7. en la vista de árbol del panel izquierdo, haga clic con el botón derecho en una categoría, tipo o problema para mostrar el menú contextual.

    dependiendo del contexto, puede hacer todo o parte de lo siguiente: saltar al origen, excluir e incluir elementos seleccionados, suprimir problemas, Editar configuraciones, Administrar Alertas de inspección y volver a ejecutar una inspección.,

para obtener descripciones de los botones de la barra de Herramientas del lado izquierdo, los elementos del menú contextual y los campos del informe de inspección, consulte Ventana de herramientas de inspección.

usar un ámbito personalizado

puede usar uno de los ámbitos personalizados proporcionados en Android Studio, de la siguiente manera:

  1. En el cuadro de diálogo Especificar ámbito de inspección, haga clic en ámbito personalizado.
  2. haga clic en la lista desplegable alcance personalizado para mostrar sus opciones.

    Figura 5. Seleccione el ámbito personalizado que desea utilizar

    • Archivos de proyecto: todos los archivos del proyecto actual.,
    • Archivos de producción del proyecto: solo los archivos de producción del proyecto actual.
    • Archivos de prueba del proyecto: solo los archivos de prueba del proyecto actual. Consulte Tipos de Prueba y ubicación.
    • abrir archivos: solo los archivos que tiene abiertos en el proyecto actual.
    • Module <your-module>: solo los archivos en la carpeta del módulo correspondiente en su proyecto actual.
    • archivo actual: solo el archivo actual en su proyecto actual. Aparece cuando tiene seleccionado un archivo o carpeta.,
    • jerarquía de clases: cuando selecciona esta y hace clic en Aceptar, aparece un diálogo con todas las clases del proyecto actual. Utilice el campo Buscar por nombre en el cuadro de diálogo para filtrar y seleccionar las clases a inspeccionar. Si no filtra la lista de clases, code inspection inspecciona todas las clases.
  3. haga Clic en ACEPTAR.

crear un ámbito personalizado

Cuando desee inspeccionar una selección de archivos y directorios que no esté cubierta por ninguno de los ámbitos personalizados actualmente disponibles, puede crear un ámbito personalizado.,

  1. En el cuadro de diálogo Especificar ámbito de inspección, seleccione ámbito personalizado.
  2. haga clic en los tres puntos después del alcance personalizado lista desplegable.

    Figura 6. Cuadro de diálogo Especificar ámbito de inspección

    aparece el cuadro de diálogo ámbitos.

    Figura 7. Cree un ámbito personalizado

  3. haga clic en Agregar para definir un nuevo ámbito.
  4. en la lista desplegable Agregar ámbito resultante, seleccione Local.

    los ámbitos local y compartido se utilizan dentro del proyecto para la función inspeccionar código., Un ámbito compartido también se puede usar con otras características del proyecto que tengan un campo de ámbito. Por ejemplo, cuando hace clic en Editar configuración para cambiar la configuración de los usos de búsqueda, el cuadro de diálogo resultante tiene un campo de ámbito donde puede seleccionar un ámbito compartido.

    la Figura 8. Seleccione un ámbito compartido en el cuadro de diálogo Buscar usos

  5. asigne un nombre al ámbito y haga clic en Aceptar.

    el panel derecho del cuadro de diálogo ámbitos se rellena con opciones que permiten definir el ámbito personalizado.

  6. en la lista desplegable, seleccione Proyecto.,

    aparece una lista de proyectos disponibles.

    Nota: puede crear el ámbito personalizado para proyectos o paquetes. Los pasos son los mismos de cualquier manera.

  7. expanda las carpetas del proyecto, seleccione lo que desea agregar al ámbito personalizado y haga clic en uno de los botones de la derecha.

    Figura 9. Defina un ámbito personalizado

    • Include: incluya esta carpeta y sus archivos, pero no incluya ninguna de sus subcarpetas.
    • incluir recursivamente: incluir esta carpeta y todos sus archivos y subcarpetas y sus archivos.,
    • Exclude: excluye esta carpeta y sus archivos, pero no excluye ninguna de sus subcarpetas.
    • excluir recursivamente: excluir esta carpeta y todos sus archivos y subcarpetas y sus archivos.

    La Figura 10 muestra que la carpeta principal está incluida y que la carpeta java está incluida recursivamente. El azul indica carpetas incluidas parcialmente y el verde indica carpetas y archivos incluidos recursivamente.

    la Figura 10., Patrón de ejemplo para un ámbito personalizado

    • Si selecciona la carpeta java y hace clic en Excluir recursivamente, el resaltado Verde desaparece en la carpeta java y en todas las carpetas y archivos debajo de ella.
    • Si en su lugar selecciona la actividad principal resaltada en verde.java y haga clic en Excluir, MainActivity.java ya no está resaltado en verde, pero todo lo demás en la carpeta java está resaltado en verde.
  8. haga Clic en ACEPTAR. El ámbito personalizado aparece en la parte inferior de la lista desplegable.,

revisar y editar perfiles de inspección

Android Studio viene con una selección de lint y otros perfiles de inspección que se actualizan a través de actualizaciones de Android. Puede usar estos perfiles tal cual o editar sus nombres, descripciones, severidad y alcances. También puede activar y desactivar grupos enteros de perfiles o perfiles individuales dentro de un grupo.

para acceder al cuadro de diálogo inspecciones:

  1. seleccione Analizar > inspeccionar código.
  2. En el cuadro de diálogo Especificar ámbito en Perfil de inspección, haga clic en más.,

    el diálogo inspecciones aparece con una lista de las inspecciones soportadas y sus descripciones.

    Figura 11. Inspecciones compatibles y sus descripciones

  3. seleccione la lista desplegable Perfil para alternar entre las inspecciones predeterminadas (Android Studio) y las inspecciones predeterminadas del proyecto (el proyecto activo). Para obtener más información, consulte esta página de diálogo IntelliJSpecify Inspection Scope.
  4. En el cuadro de diálogo inspecciones del panel izquierdo, seleccione una categoría de perfil de nivel superior o expanda un grupo y seleccione un perfil específico., Al seleccionar una categoría de perfil, puede editar todas las inspecciones de esa categoría como una sola inspección.
  5. seleccione la lista desplegable Administrar para copiar, renombrar, agregar descripciones, exportar e importar inspecciones.
  6. Cuando haya terminado, haga clic en Aceptar.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *