Migliora il codice con i controlli di lint

Oltre a eseguire i test di compilazione per assicurarti che la tua app soddisfi i requisiti funzionali, è importante eseguire il codice anche tramite lo strumento lint per assicurarti che non presenti problemi strutturali. Lo strumento lint consente di trovare codice con struttura debole che può influire sull'affidabilità e sull'efficienza delle app per Android e rendere il codice più difficile da gestire. Ti consigliamo vivamente di correggere eventuali errori rilevati da lint prima di pubblicare l'app.

Ad esempio, se i file di risorse XML contengono spazi dei nomi inutilizzati, occupano spazio e richiedono un'elaborazione non necessaria. Altri problemi strutturali, come l'utilizzo di elementi obsoleti o chiamate API che non sono supportate dalle versioni dell'API di destinazione, potrebbero causare l'interruzione dell'esecuzione corretta del codice. Lint può aiutarti a risolvere questi problemi.

Per migliorare le prestazioni del linting, puoi anche aggiungere annotazioni al codice.

Panoramica

Android Studio offre uno strumento di scansione del codice chiamato lint, che può aiutarti a identificare e correggere i problemi relativi alla qualità strutturale del codice, senza dover eseguire l'app o scrivere scenari di test. Ogni problema rilevato dallo strumento viene segnalato con un messaggio descrittivo e un livello di gravità per consentirti di dare la priorità ai miglioramenti critici da apportare. Puoi anche abbassare il livello di gravità di un problema per ignorare i problemi non pertinenti al tuo progetto o alzarlo per evidenziare problemi specifici.

Lo strumento Lint controlla i file di origine dei progetti Android per individuare potenziali bug e miglioramenti dell'ottimizzazione relativi a correttezza, sicurezza, prestazioni, usabilità, accessibilità e internazionalizzazione. Quando utilizzi Android Studio, le ispezioni di lint e IDE configurate vengono eseguite durante la compilazione dell'app. Tuttavia, puoi eseguire le ispezioni manualmente o eseguire lint dalla riga di comando, come descritto in questa pagina.

Lo strumento lint integrato controlla il codice mentre utilizzi Android Studio. Puoi visualizzare avvisi ed errori in due modi:

  • Come testo popup nella finestra dell'editor. Quando lint rileva un problema, evidenzia il codice problematico in giallo. Per problemi più gravi, il codice viene sottolineato in rosso.
  • Nella finestra Risultati ispezione lint quando fai clic su Codice > Ispeziona codice.

Nota: quando il codice viene compilato in Android Studio, vengono eseguite ulteriori ispezioni del codice IntelliJ per semplificare la revisione del codice. Mantieni Android Studio il più aggiornato possibile per assicurarti che siano disponibili le regole e le ispezioni di lint più recenti.

La Figura 1 mostra come lo strumento lint elabora i file di origine dell'app.

Flusso di lavoro di scansione del codice con lo strumento lint.
Figura 1. Flusso di lavoro di scansione del codice con lo strumento lint.
File di origine dell'app
I file di origine sono costituiti dai file che compongono il progetto Android, inclusi file Kotlin, Java e XML, icone e file di configurazione di ProGuard.
Il file lint.xml
Un file di configurazione che puoi utilizzare per specificare eventuali controlli lint da escludere e per personalizzare i livelli di gravità dei problemi.
Strumento lint
Uno strumento di scansione del codice statico che puoi eseguire sul tuo progetto Android dalla riga di comando o in Android Studio. Lo strumento lint controlla la presenza di problemi di codice strutturale che potrebbero influire sulla qualità e sulle prestazioni della tua app per Android.
Risultati del controllo lint
Puoi visualizzare i risultati di lint nella console o nella finestra Risultati ispezione in Android Studio. Se esegui lint dalla riga di comando, i risultati vengono scritti nella cartella build/. Per ulteriori dettagli, consulta la sezione su come eseguire manualmente le ispezioni.

Eseguire lint dalla riga di comando

Se utilizzi Android Studio o Gradle, utilizza il wrapper Gradle per richiamare l'attività lint per il tuo progetto inserendo uno dei seguenti comandi dalla directory principale del progetto:

Nota: mantieni il plug-in Android per Gradle il più aggiornato possibile per utilizzare le regole lint più recenti.

  • Su Windows:
    gradlew lint
    
  • Su Linux o macOS:
    ./gradlew lint
    

Dovresti vedere un output simile al seguente:

> Task :app:lintDebug
Wrote HTML report to file:<path-to-project>/app/build/reports/lint-results-debug.html

Quando lo strumento lint completa i controlli, fornisce i percorsi alle versioni XML e HTML del report lint. Puoi quindi passare al report HTML e aprirlo nel browser, come mostrato nella figura 2.

Esempio di report lint HTML
Figura 2. Esempio di report lint HTML.

Se il progetto include varianti di compilazione, lo strumento lint controlla solo la variante predefinita. Se vuoi eseguire lint su una variante diversa, devi scrivere il nome della variante in maiuscolo e anteporre lint al prefisso.

./gradlew lintRelease

Nota: Lint non viene eseguito automaticamente durante la compilazione. Ti consigliamo vivamente di eseguire esplicitamente lint nell'ambito di una build di integrazione continua in modo da visualizzare i controlli lint più recenti durante la compilazione del codice sorgente esistente.

Per scoprire di più sull'esecuzione delle attività Gradle dalla riga di comando, vedi Creare la tua app dalla riga di comando.

Esegui lint utilizzando lo strumento autonomo

Se non utilizzi Android Studio o Gradle, installa gli strumenti a riga di comando dell'SDK Android per utilizzare lo strumento lint autonomo. Individua lo strumento Lint in android_sdk/cmdline-tools/version/bin/lint.

Nota: se provi a eseguire lo strumento autonomo su un progetto Gradle, viene visualizzato un messaggio di errore. Per eseguire lint su un progetto Gradle, devi sempre utilizzare gradle lint (su Windows) o ./gradlew lint (su macOS o Linux).

Per eseguire lint su un elenco di file in una directory del progetto, utilizza il seguente comando:

lint [flags] <project directory>

Ad esempio, puoi inviare il seguente comando per eseguire la scansione dei file nella directory myproject e nelle relative sottodirectory. L'ID problema MissingPrefix indica a lint di cercare solo gli attributi XML senza il prefisso dello spazio dei nomi Android.

lint --check MissingPrefix myproject 

Per visualizzare l'elenco completo dei flag e degli argomenti a riga di comando supportati dallo strumento, utilizza il seguente comando:

lint --help

L'esempio seguente mostra l'output della console quando il comando lint viene eseguito su un progetto denominato Terremoto:

$ 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

L'output dell'esempio elenca quattro avvisi e nessun errore.

Due avvisi riguardano il file AndroidManifest.xml del progetto:

  • ManifestOrder
  • UsesMinSdkAttributes
Un avviso riguarda il file di layout Preferences.xml: UnusedResources.

Un avviso riguarda la directory res: IconMissingDensityFolder.

Configurare lint per eliminare gli avvisi

Per impostazione predefinita, quando esegui una scansione lint lo strumento controlla tutti i problemi supportati da lint. Puoi anche limitare i problemi da controllare con lint e assegnare i livelli di gravità. Ad esempio, puoi eliminare il controllo lint per problemi specifici che non sono pertinenti al tuo progetto e puoi configurare lint in modo che segnali i problemi non critici con un livello di gravità inferiore.

I livelli di gravità sono:

  • enable
  • disable o ignore
  • informational
  • warning
  • error
  • fatal

Puoi configurare il controllo lint per diversi livelli:

  • A livello globale (intero progetto)
  • Modulo del progetto
  • Modulo di produzione
  • Modulo di test
  • Apri i file
  • Gerarchia delle classi
  • Ambiti del sistema di controllo della versione (VCS)

Configura il file lint

Puoi specificare le preferenze di controllo lint nel file lint.xml. Se crei il file manualmente, posizionalo nella directory root del tuo progetto Android.

Il file lint.xml è costituito da un tag principale <lint> che contiene uno o più elementi <issue> secondari. Lint definisce un valore dell'attributo id unico per ogni <issue>:

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

Per modificare il livello di gravità di un problema o disattivare il controllo lint per il problema, imposta l'attributo gravità nel tag <issue>.

Suggerimento:per un elenco completo dei problemi supportati da lint e dei relativi ID, esegui il comando lint --list.

File lint.xml di esempio

L'esempio seguente mostra i contenuti di un file lint.xml:

<?xml version="1.0" encoding="UTF-8"?>
<lint>
    <!-- Disable the IconMissingDensityFolder check in this project -->
    <issue id="IconMissingDensityFolder" severity="ignore" />

    <!-- Ignore the ObsoleteLayoutParam issue in the specified files -->
    <issue id="ObsoleteLayoutParam">
        <ignore path="res/layout/activation.xml" />
        <ignore path="res/layout-xlarge/activation.xml" />
    </issue>

    <!-- Ignore the UselessLeaf issue in the specified file -->
    <issue id="UselessLeaf">
        <ignore path="res/layout/main.xml" />
    </issue>

    <!-- Change the severity of hardcoded strings to "error" -->
    <issue id="HardcodedText" severity="error" />
</lint>

Questo esempio mostra come vengono segnalati diversi tipi di problemi. Il controllo IconMissingDensityFolder è disattivato completamente e il controllo ObsoleteLayoutParam è disattivato solo nei file specificati nelle dichiarazioni <ignore ... /> allegate.

Configurare il controllo lint per i file di origine Kotlin, Java e XML

Puoi disattivare il controllo lint per i file di origine Kotlin, Java e XML nella finestra di dialogo Preferenze:

  1. Seleziona File > Impostazioni (su Windows) o Android Studio > Preferenze (su macOS o Linux).
  2. Seleziona Editor > Ispezioni.
  3. Per disattivarla, deseleziona il file di origine appropriato.

Puoi impostarle per l'IDE o per singoli progetti selezionando il profilo appropriato.

Configura il controllo lint in Java o Kotlin

Per disattivare il controllo lint in modo specifico per una classe o un metodo nel progetto Android, aggiungi l'annotazione @SuppressLint al codice.

L'esempio seguente mostra come disattivare il controllo lint per il problema NewApi nel metodo onCreate. Lo strumento Lint continua a verificare la presenza del problema NewApi in altri metodi di questa classe.

Kotlin

@SuppressLint("NewApi")
override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.main)

Java

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

Lo stesso può essere fatto su qualsiasi Composable. Il seguente snippet di codice mostra come disattivare i controlli NewApi su qualsiasi Composable.

Kotlin

  @SuppressLint("NewApi")
  @Composable
  fun MyComposable{
    ...
  }
  

L'esempio seguente mostra come disattivare il controllo lint per il problema ParserError nella classe FeedProvider:

Kotlin

@SuppressLint("ParserError")
class FeedProvider : ContentProvider() {

Java

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

Per evitare il controllo di tutti i problemi di lint nel file, utilizza la parola chiave all:

Kotlin

@SuppressLint("all")

Java

@SuppressLint("all")

Puoi utilizzare la stessa annotazione per eliminare i controlli lint su qualsiasi funzione componibile.

Configurare il controllo lint in XML

Utilizza l'attributo tools:ignore per disattivare il controllo lint per sezioni specifiche dei file XML. Inserisci il seguente valore dello spazio dei nomi nel file lint.xml in modo che lo strumento di lint riconosca l'attributo:

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

L'esempio seguente mostra come disattivare il controllo lint per rilevare il problema UnusedResources in un elemento <LinearLayout> di un file di layout XML. L'attributo ignore viene ereditato dagli elementi secondari dell'elemento principale in cui viene dichiarato l'attributo. In questo esempio, il controllo del lint è disabilitato anche per l'elemento <TextView> figlio:

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

Per disattivare più di un problema, elenca i problemi da disattivare in una stringa separata da virgole. Per esempio:

tools:ignore="NewApi,StringFormatInvalid"

Per evitare il controllo di tutti i problemi di lint nell'elemento XML, utilizza la parola chiave all:

tools:ignore="all"

Configurare le opzioni di lint con Gradle

Il plug-in Android per Gradle consente di configurare determinate opzioni lint, ad esempio quali controlli eseguire o ignorare, utilizzando il blocco lint{} nel file build.gradle a livello di modulo.

Il seguente snippet di codice mostra alcune delle proprietà che puoi configurare:

Kotlin

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 set to true, lint only reports errors.
        ignoreWarnings = true
        // If set to true, lint also checks all dependencies as part of its analysis.
        // Recommended for projects consisting of an app with library dependencies.
        checkDependencies = true
    }
}
...

Groovy

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 set to true, lint only reports errors.
        ignoreWarnings true
        // If set to true, lint also checks all dependencies as part of its analysis.
        // Recommended for projects consisting of an app with library dependencies.
        checkDependencies true
    }
}
...

Tutti i metodi di lint che sostituiscono il livello di gravità specificato di un problema rispettano l'ordine di configurazione. Ad esempio, l'impostazione di un problema come irreversibile in finalizeDsl() sostituisce la sua disattivazione nel DSL principale.

Crea una base di riferimento per gli avvisi

Puoi acquisire uno snapshot dell'insieme attuale di avvisi del progetto, quindi utilizzarlo come base per le esecuzioni future di ispezioni, in modo che vengano segnalati solo i nuovi problemi. Lo snapshot di riferimento ti consente di iniziare a utilizzare lint per interrompere la compilazione senza dover prima tornare indietro e risolvere tutti i problemi esistenti.

Per creare uno snapshot di riferimento, modifica il file build.gradle del progetto come segue:

Kotlin

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

Groovy

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

Quando aggiungi questa riga per la prima volta, viene creato il file lint-baseline.xml per stabilire il valore di riferimento. Da quel momento in poi, gli strumenti leggono il file solo per determinare la linea di base. Se vuoi creare una nuova base di riferimento, elimina manualmente il file ed esegui di nuovo lint per ricrearlo.

Quindi, esegui il lint dall'IDE selezionando Codice > Ispeziona codice o dalla riga di comando come segue. L'output stampa la posizione del file lint-baseline.xml. La posizione del file per la configurazione potrebbe essere diversa da quella mostrata qui:

$ ./gradlew lintDebug -Dlint.baselines.continue=true
...
Wrote XML report to file:///app/lint-baseline.xml
Created baseline file /app/lint-baseline.xml

L'esecuzione di lint registra tutti i problemi correnti nel file lint-baseline.xml. L'insieme di problemi attuali è chiamato base di riferimento. Puoi attivare il controllo della versione per il file lint-baseline.xml se vuoi condividerlo con altri.

Personalizzare la linea di riferimento

Se vuoi aggiungere solo determinati tipi di problemi alla base di riferimento, specifica i problemi da aggiungere modificando il file build.gradle del progetto come segue:

Kotlin

android {
    lint {
        checkOnly += "NewApi" + "HandlerLeak"
        baseline = file("lint-baseline.xml")
    }
}

Groovy

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

Se aggiungi nuovi avvisi alla base di codice dopo aver creato la linea di base, lint elenca solo i bug appena introdotti.

Avviso di riferimento

Quando è attivo un riferimento, viene visualizzato un avviso informativo che indica che uno o più problemi sono stati filtrati perché sono elencati nel riferimento. Questo avviso ti aiuta a ricordare che hai configurato una base di riferimento e che a un certo punto devi risolvere tutti i problemi.

Questo avviso informativo tiene traccia anche dei problemi che non vengono più segnalati. Queste informazioni ti consentono di sapere se hai effettivamente risolto i problemi, quindi puoi facoltativamente ricreare la base di riferimento per evitare che un errore si ripeta senza essere rilevato.

Nota: le basi di riferimento vengono abilitate quando esegui ispezioni in modalità batch nell'IDE, ma vengono ignorate per i controlli nell'editor eseguiti in background durante la modifica di un file. Questo perché le linee di base sono destinate al caso in cui una base di codice abbia un numero elevato di avvisi esistenti, ma vuoi correggere i problemi localmente mentre modifichi il codice.

Eseguire le ispezioni manualmente

Per eseguire manualmente lint configurato e altre ispezioni IDE, seleziona Codice > Controlla codice. I risultati dell'ispezione vengono visualizzati nella finestra Risultati ispezione.

Impostare l'ambito e il profilo dell'ispezione

Seleziona i file da analizzare (l'ambito dell'ispezione) e le ispezioni da eseguire (il profilo dell'ispezione) come segue:

  1. Nella visualizzazione Android, apri il progetto e seleziona il progetto, la cartella o il file che vuoi analizzare.
  2. Nella barra dei menu, seleziona Codice > Ispeziona codice.
  3. Nella finestra di dialogo Specifica l'ambito del controllo, controlla le impostazioni.

    Rivedi le impostazioni dell&#39;ambito dell&#39;ispezione
    Figura 3. Rivedi le impostazioni dell'ambito dell'ispezione.

    Le opzioni visualizzate nella finestra di dialogo Specifica ambito ispezione variano a seconda che tu abbia selezionato un progetto, una cartella o un file:

    • Quando selezioni un progetto, un file o una directory, la finestra di dialogo Specifica ambito ispezione mostra il percorso del progetto, del file o della directory selezionato.
    • Quando selezioni più di un progetto, file o directory, la finestra di dialogo Specifica l'ambito di ispezione mostra un pulsante di opzione per File selezionati.

    Per modificare gli elementi da ispezionare, seleziona uno degli altri pulsanti di opzione. Consulta la finestra di dialogo Specifica ambito ispezione per una descrizione di tutti i campi possibili nella finestra di dialogo Specifica ambito ispezione.

  4. In Profilo di ispezione, seleziona il profilo che vuoi utilizzare.
  5. Fai clic su OK per eseguire l'ispezione.

    La Figura 4 mostra i risultati di lint e di altre ispezioni IDE dall'esecuzione di Esamina codice:

    Seleziona un problema per visualizzarne la soluzione.
    Figura 4. Risultati dell'ispezione. Seleziona un problema per visualizzarne la risoluzione.
  6. Nel riquadro Risultati dell'ispezione, visualizza i risultati dell'ispezione espandendo e selezionando categorie, tipi o problemi di errore.

    Il riquadro Report di ispezione mostra il report di ispezione per la categoria, il tipo o il problema di errore selezionato nel riquadro Risultati dell'ispezione e il nome e la posizione dell'errore. Ove applicabile, il report di ispezione mostra altre informazioni, come una sinossi del problema, per aiutarti a correggerlo.

  7. Nella visualizzazione ad albero del riquadro Risultati dell'ispezione, fai clic con il tasto destro del mouse su una categoria, un tipo o un problema per visualizzare il menu contestuale.

    A seconda del contesto, puoi:

    • Passa all'origine.
    • Escludi e includi gli elementi selezionati.
    • Problemi di soppressione.
    • Modifica le impostazioni.
    • Gestire gli avvisi di ispezione.
    • Esegui di nuovo un'ispezione.

Per le descrizioni dei pulsanti della barra degli strumenti, degli elementi del menu contestuale e dei campi dei report di ispezione, consulta la finestra dello strumento Risultati ispezione.

Utilizza un ambito personalizzato

Utilizza uno degli ambiti personalizzati forniti in Android Studio come segue:

  1. Nella finestra di dialogo Specifica l'ambito dell'ispezione, seleziona Ambito personalizzato.
  2. Fai clic sull'elenco Ambito personalizzato per visualizzare le opzioni:

    Scegli l&#39;ambito di ispezione che vuoi utilizzare
    Figura 5. Seleziona l'ambito personalizzato che vuoi utilizzare.
    • Tutti i luoghi:tutti i file.
    • File di progetto:tutti i file del progetto corrente.
    • File di origine del progetto:solo i file di origine del progetto corrente.
    • File di produzione del progetto: solo i file di produzione nel progetto corrente.
    • File di test del progetto:solo i file di test nel progetto corrente.
    • Scratch e console: solo i file scratch e le console che hai aperto nel progetto corrente.
    • File visualizzati di recente:solo i file visualizzati di recente nel progetto corrente.
    • File corrente:solo il file corrente nel progetto corrente. Viene visualizzato quando hai selezionato un file o una cartella.
    • Directory selezionata:solo la cartella corrente nel progetto corrente. Viene visualizzato quando hai selezionato una cartella.
    • Gerarchia delle classi:se selezioni questa opzione e fai clic su OK, viene visualizzata una finestra di dialogo con tutti i corsi del progetto corrente. Nella finestra di dialogo, utilizza il campo Cerca per nome per filtrare e selezionare le classi da ispezionare. Se non filtri l'elenco dei corsi, l'ispezione del codice controlla tutte le classi.
  3. Se hai configurato un VCS per il progetto, sono disponibili anche opzioni per limitare la ricerca solo ai file che sono stati modificati.

  4. Fai clic su OK.

Creare un ambito personalizzato

Quando vuoi ispezionare una selezione di file e directory non coperta da nessuno degli ambiti personalizzati disponibili, puoi crearne uno personalizzato:

  1. Nella finestra di dialogo Specifica ambito di ispezione, seleziona Ambito personalizzato.
  2. Fai clic sui tre puntini dopo l'elenco Ambito personalizzato.

    Finestra di dialogo Specifica l&#39;ambito dell&#39;ispezione
    Figura 6. Finestra di dialogo Specifica ambito ispezione.

    Viene visualizzata la finestra di dialogo Ambiti.

    Creare un ambito personalizzato
    Figura 7. Crea un ambito personalizzato.
  3. Fai clic sul pulsante nell'angolo in alto a sinistra della finestra di dialogo per definire un nuovo ambito.
  4. Nell'elenco Aggiungi ambito visualizzato, seleziona Locale.

    Gli ambiti locali e condivisi vengono utilizzati all'interno del progetto per la funzionalità Esamina codice. Un ambito condiviso può essere utilizzato anche con altre funzionalità di progetto che dispongono di un campo ambito. Ad esempio, quando fai clic su Modifica impostazioni per cambiare le impostazioni per Trova utilizzi, la finestra di dialogo risultante ha un campo Ambito in cui puoi selezionare un ambito condiviso.

    Seleziona un ambito condiviso dalla finestra di dialogo Trova utilizzi
    Figura 8. Seleziona un ambito condiviso dalla finestra di dialogo Trova utilizzi.
  5. Assegna un nome all'ambito e fai clic su OK.

    Il riquadro a destra della finestra di dialogo Ambiti viene compilato con le opzioni che ti consentono di definire l'ambito personalizzato.

  6. Nell'elenco, seleziona Progetto.

    Viene visualizzato un elenco dei progetti disponibili.

    Nota:puoi creare l'ambito personalizzato per progetti o pacchetti. I passaggi sono gli stessi.

  7. Espandi le cartelle del progetto, seleziona gli elementi da aggiungere all'ambito personalizzato e scegli se includerlo o escluderlo.

    Definisci un ambito personalizzato
    Figura 9. Definisci un ambito personalizzato.
    • Includi: includi questa cartella e i relativi file, ma non le relative sottocartelle.
    • Includi in modo ricorsivo: include questa cartella e i relativi file, nonché le sottocartelle e i relativi file.
    • Escludi: escludi questa cartella e i relativi file, ma non le sue sottocartelle.
    • Escludi in modo ricorsivo: escludi questa cartella e i relativi file, nonché le sottocartelle e i relativi file.

    La figura 10 mostra che la cartella main è inclusa e che le cartelle java e res sono incluse in modo ricorsivo. Il blu indica una cartella parzialmente inclusa, mentre il verde indica le cartelle e i file inclusi in modo ricorsivo.

    Pattern di esempio per un ambito personalizzato
    Figura 10. Pattern di esempio per un ambito personalizzato.
    • Se selezioni la cartella java e fai clic su Escludi in modo ricorsivo, l'evidenziazione verde scompare nella cartella java e in tutte le cartelle e i file al suo interno.
    • Se selezioni il file MainActivity.kt evidenziato in verde e fai clic su Escludi, MainActivity.kt non è più evidenziato in verde, ma tutto il resto nella cartella java rimane verde.
  8. Fai clic su OK. L'ambito personalizzato viene visualizzato in fondo all'elenco.

Rivedi e modifica i profili di ispezione

Android Studio offre una selezione di profili di lint e di altri controlli che vengono aggiornati tramite gli aggiornamenti di Android. Puoi utilizzare questi profili così come sono o modificarne i nomi, le descrizioni, le severità e gli scopi. Puoi anche attivare e disattivare interi gruppi di profili o singoli profili all'interno di un gruppo.

Per accedere alle impostazioni di Ispezioni:

  1. Seleziona File > Impostazioni. (su Windows) o Android Studio > Preferenze (su macOS o Linux).
  2. Seleziona Editor > Ispezioni.
  3. Il riquadro Ispezioni mostra un elenco delle ispezioni supportate e le relative descrizioni.

    Ispezioni supportate e relative descrizioni
    Figura 11. Ispezioni supportate e relative descrizioni.
  4. Seleziona l'elenco Profilo per passare dalle ispezioni Predefinito (Android Studio) a quelle Predefinito progetto (il progetto attivo).

    Per ulteriori informazioni, consulta la pagina Gestire i profili di IntelliJ.

  5. Nell'elenco Ispezioni nel riquadro a sinistra, seleziona una categoria di profili di primo livello o espandi un gruppo e seleziona un profilo specifico.

    Quando selezioni una categoria di profilo, puoi modificare tutte le ispezioni di quella categoria come un'unica ispezione.

  6. Seleziona l'elenco Azioni schema di visualizzazione Mostra icona Azioni schema per copiare, rinominare, aggiungere descrizioni, esportare e importare le ispezioni.
  7. Al termine, fai clic su OK.