Ulepszanie kodu za pomocą sprawdzania lintków

Oprócz tworzenia testów w celu sprawdzenia, czy aplikacja spełnia wymagania funkcjonalne, należy także użyć narzędzia lintowego, aby sprawdzić, czy kod nie zawiera problemów strukturalnych. Narzędzie Lint pomaga znaleźć niewłaściwie uporządkowany kod, który może obniżyć niezawodność i wydajność aplikacji na Androida oraz utrudnić obsługę kodu. Zdecydowanie zalecamy poprawienie wszystkich błędów wykrytych przez lążki przed opublikowaniem aplikacji.

Jeśli na przykład Twoje pliki zasobów XML zawierają nieużywane przestrzenie nazw, zajmuje to miejsce i wymaga zbędnego przetwarzania. Inne problemy strukturalne, takie jak użycie wycofanych elementów lub wywołań interfejsu API, które nie są obsługiwane przez docelowe wersje interfejsu API, mogą powodować błędy w działaniu kodu. Lint pomoże Ci rozwiązać te problemy.

Aby poprawić wydajność lintowania, możesz też dodać adnotacje do kodu.

Przegląd

Android Studio udostępnia narzędzie do skanowania kodu o nazwie lint, które pomaga w wykrywaniu i rozwiązywaniu problemów z jakością strukturalną kodu bez konieczności uruchamiania aplikacji czy pisania przypadków testowych. Każdy problem wykryty przez narzędzie jest raportowany w formie opisu i poziomu ważności, dzięki czemu możesz określić priorytety działań, które należy wprowadzić. Możesz też obniżyć poziom ważności problemu, aby zignorować problemy, które nie są istotne dla Twojego projektu, lub zwiększyć wagę, aby wyróżnić konkretne problemy.

Narzędzie Lint sprawdza pliki źródłowe projektu Androida pod kątem potencjalnych błędów i ulepszeń optymalizacji pod kątem poprawności, bezpieczeństwa, wydajności, łatwości obsługi, ułatwień dostępu i internacjonalizacji. Jeśli korzystasz z Android Studio, skonfigurowane inspekcje lint i IDE są uruchamiane podczas tworzenia aplikacji. Możesz jednak uruchamiać je ręcznie lub uruchamiać lint z wiersza poleceń w sposób opisany na tej stronie.

Wbudowane narzędzie Lint sprawdza Twój kod podczas korzystania z Android Studio. Ostrzeżenia i błędy możesz wyświetlać na 2 sposoby:

  • jako tekst w wyskakującym okienku w oknie edytora. Gdy Lint znajdzie problem, podświetli go na żółto. W przypadku poważniejszych problemów kod jest podkreślany na czerwono.
  • W oknie Wyniki inspekcji w Lincie po kliknięciu Kod > Sprawdź kod.

Uwaga: gdy Twój kod zostanie skompilowany w Android Studio, przeprowadzane są dodatkowe inspekcje kodu IntelliJ, aby usprawnić weryfikację.

Rysunek 1 przedstawia, jak narzędzie Lint przetwarza pliki źródłowe aplikacji.

Przepływ pracy przy skanowaniu kodu za pomocą narzędzia Lint.
Rysunek 1. Proces skanowania kodu za pomocą narzędzia Lint.
Pliki źródłowe aplikacji
Pliki źródłowe to pliki, które składają się na projekt na Androida, w tym pliki Kotlin, Java i XML, ikony oraz pliki konfiguracyjne ProGuard.
Plik lint.xml
Plik konfiguracji, za pomocą którego możesz określić wszystkie testy lintowania, które chcesz wykluczyć, i dostosować poziomy ważności problemu.
Narzędzie Linter
Narzędzie do skanowania statycznego kodu, które można uruchomić w projekcie na Androida z poziomu wiersza poleceń lub w Android Studio. Narzędzie Lint sprawdza błędy w kodzie strukturalnym, które mogą wpływać na jakość i działanie Twojej aplikacji na Androida.
Wyniki sprawdzania lintowania
Wyniki badania możesz wyświetlić w konsoli lub w oknie Wyniki inspekcji w Android Studio. Jeśli uruchomisz lint z poziomu wiersza poleceń, wyniki zostaną zapisane w folderze build/. Więcej informacji znajdziesz w sekcji o ręcznym przeprowadzaniu inspekcji.

Uruchom Lint z poziomu wiersza poleceń

Jeśli korzystasz z Androida Studio lub Gradle, użyj otoki Gradle, aby wywołać w projekcie zadanie lint, wpisując jedno z tych poleceń z katalogu głównego projektu:

  • W systemie Windows:
    gradlew lint
    
  • W systemie Linux lub macOS:
    ./gradlew lint
    

Zostaną wyświetlone dane wyjściowe podobne do tych:

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

Gdy narzędzie Lint zakończy testy, udostępni ścieżki do wersji XML i HTML raportu Lint. Następnie możesz przejść do raportu HTML i otworzyć go w przeglądarce, tak jak pokazano na ilustracji 2.

Przykładowy raport lintowania HTML
Rysunek 2. Przykładowy raport dotyczący lintowania HTML.

Jeśli projekt obejmuje warianty kompilacji, lint sprawdza tylko wariant domyślny. Jeśli chcesz uruchomić lint na innej wersji, nazwę wariantu musisz zapisać wielką literą i poprzedzić ją ciągiem lint.

./gradlew lintRelease

Więcej informacji o uruchamianiu zadań Gradle z poziomu wiersza poleceń znajdziesz w artykule Tworzenie aplikacji z poziomu wiersza poleceń.

Uruchom Lint za pomocą oddzielnego narzędzia

Jeśli nie korzystasz z Androida Studio ani Gradle, zainstaluj narzędzia wiersza poleceń pakietu Android SDK, aby móc używać samodzielnego narzędzia Lint. Znajdź narzędzie lintowania pod adresem android_sdk/cmdline-tools/version/bin/lint.

Uwaga: jeśli spróbujesz uruchomić samodzielne narzędzie w projekcie Gradle, wystąpi błąd. Aby uruchomić Lint w projekcie Gradle, zawsze używaj polecenia gradle lint (w systemie Windows) lub ./gradlew lint (w systemach macOS i Linux).

Aby uruchomić lint na liście plików w katalogu projektu, użyj tego polecenia:

lint [flags] <project directory>

Możesz na przykład uruchomić to polecenie, aby przeskanować pliki w katalogu myproject i jego podkatalogach. Identyfikator problemu MissingPrefix informuje Lint, aby skanował tylko w poszukiwaniu atrybutów XML, w których brakuje prefiksu przestrzeni nazw Androida.

lint --check MissingPrefix myproject 

Aby wyświetlić pełną listę flag i argumentów wiersza poleceń obsługiwanych przez narzędzie, użyj tego polecenia:

lint --help

Poniższy przykład pokazuje dane wyjściowe konsoli, gdy polecenie Lint jest uruchamiane w projekcie o nazwie 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

W przykładowych danych wyjściowych widać 4 ostrzeżenia bez błędów.

Dwa ostrzeżenia są związane z plikiem AndroidManifest.xml projektu:

  • ManifestOrder
  • UsesMinSdkAttributes
Jedno ostrzeżenie dotyczy pliku układu Preferences.xml: UnusedResources.

Jedno ostrzeżenie dotyczy katalogu res: IconMissingDensityFolder.

Skonfiguruj lint w celu pomijania ostrzeżeń

Domyślnie po uruchomieniu lintowania narzędzie sprawdza pod kątem wszystkich problemów obsługiwanych przez lint. Możesz też ograniczyć problemy do sprawdzenia przez lint i przypisać poziomy ważności problemów. Możesz na przykład powstrzymać sprawdzanie lintowania pod kątem konkretnych problemów, które nie są istotne dla Twojego projektu, a Lint – skonfigurować raportowanie problemów niekrytycznych o niższym poziomie ważności.

Poziomy ważności:

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

Sprawdzanie lintowania możesz skonfigurować na różnych poziomach:

  • Globalnie (cały projekt)
  • Moduł projektu
  • Moduł produkcyjny
  • Przetestuj moduł
  • Otwórz pliki
  • Hierarchia klas
  • Zakresy systemu kontroli wersji (VCS)

Skonfiguruj plik lint

Ustawienia lintowania możesz określić w pliku lint.xml. Jeśli tworzysz ten plik ręcznie, umieść go w katalogu głównym projektu Androida.

Plik lint.xml składa się z otaczającego go tagu nadrzędnego <lint>, który zawiera co najmniej 1 podrzędny element <issue>. Lint określa unikalną wartość atrybutu id dla każdej <issue>:

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

Aby zmienić poziom ważności problemu lub wyłączyć sprawdzanie lintowania, ustaw atrybut ważności w tagu <issue>.

Wskazówka: aby wyświetlić pełną listę problemów obsługiwanych przez Litt i odpowiadające im identyfikatory problemów, uruchom polecenie lint --list.

Przykładowy plik lint.xml

Poniższy przykład przedstawia zawartość pliku 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>

Ten przykład pokazuje, jak zgłaszane są różne typy problemów. Sprawdzanie IconMissingDensityFolder jest całkowicie wyłączone, a sprawdzanie ObsoleteLayoutParam – tylko w przypadku plików określonych w załączonych deklaracji <ignore ... />.

Skonfiguruj sprawdzanie lint dla plików źródłowych Kotlin, Java i XML

Możesz wyłączyć sprawdzanie lint w plikach źródłowych Kotlin, Java i XML w oknie Preferencje:

  1. Wybierz Plik > Ustawienia (Windows) lub Android Studio > Ustawienia (w systemie macOS lub Linux).
  2. Kliknij Edytor > Inspekcje.
  3. Aby ją wyłączyć, odznacz odpowiedni plik źródłowy.

Możesz je ustawić dla IDE lub dla poszczególnych projektów, wybierając odpowiedni profil.

Skonfiguruj sprawdzanie lint w Javie lub Kotlin

Aby wyłączyć sprawdzanie lintowania dla klasy lub metody w projekcie Androida, dodaj do tego kodu adnotację @SuppressLint.

Poniższy przykład pokazuje, jak w metodzie onCreate wyłączyć sprawdzanie linuktów pod kątem problemu NewApi. Narzędzie Lint nadal sprawdza problem NewApi w innych metodach tej klasy.

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

To samo można osiągnąć w przypadku każdego elementu kompozycyjnego. Poniższy fragment kodu pokazuje, jak wyłączyć sprawdzanie NewApi w komponencie kompozycyjnym.

Kotlin

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

Poniższy przykład pokazuje, jak wyłączyć sprawdzanie lintowania pod kątem problemu ParserError w klasie FeedProvider:

Kotlin

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

Java

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

Aby pominąć sprawdzanie wszystkich problemów z linami w pliku, użyj słowa kluczowego all:

Kotlin

@SuppressLint("all")

Java

@SuppressLint("all")

Za pomocą tej samej adnotacji możesz pominąć sprawdzanie lint w dowolnej funkcji kompozycyjnej.

Skonfiguruj sprawdzanie lint w pliku XML

Użyj atrybutu tools:ignore, aby wyłączyć sprawdzanie lintowania w określonych sekcjach plików XML. Umieść poniższą wartość przestrzeni nazw w pliku lint.xml, aby narzędzie do lintowania rozpoznało atrybut:

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

Poniższy przykład pokazuje, jak można wyłączyć sprawdzanie lintowania pod kątem problemu UnusedResources w elemencie <LinearLayout> pliku układu XML. Atrybut ignore jest dziedziczony przez elementy podrzędne elementu nadrzędnego, w którym jest on zadeklarowany. W tym przykładzie sprawdzanie lintowania jest też wyłączone w przypadku podrzędnego elementu <TextView>:

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

Aby wyłączyć więcej niż 1 problem, podaj listę problemów, które chcesz wyłączyć, rozdzielając je przecinkami. Przykład:

tools:ignore="NewApi,StringFormatInvalid"

Aby pominąć sprawdzanie wszystkich problemów z lintami w elemencie XML, użyj słowa kluczowego all:

tools:ignore="all"

Skonfiguruj opcje lint za pomocą Gradle

Wtyczka na Androida dla Gradle umożliwia skonfigurowanie niektórych opcji lintowania, np. sprawdzania, które testy mają zostać uruchomione, a które ignorować, przy użyciu bloku lint{} w pliku build.gradle na poziomie modułu.

Ten fragment kodu zawiera niektóre właściwości, które możesz skonfigurować:

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

Odlotowy

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

Wszystkie metody lintowania, które zastępują dany poziom ważności problemu, przestrzegają kolejności konfiguracji. Na przykład ustawienie problemu jako krytycznych w zadaniu finalizeDsl() spowoduje zastąpienie jego wyłączenia w głównym DSL.

Tworzenie punktu odniesienia dla ostrzeżeń

Możesz wykonać zrzut bieżącego zestawu ostrzeżeń w projekcie, a następnie użyć zrzutu jako punktu odniesienia przy kolejnych uruchomieniach inspekcji, aby zgłaszać tylko nowe problemy. Zrzut podstawowy umożliwia rozpoczęcie korzystania z linta w celu niepowodzenia kompilacji bez konieczności cofania się i rozwiązywania wszystkich istniejących problemów.

Aby utworzyć zrzut podstawowy, zmodyfikuj plik build.gradle swojego projektu w ten sposób:

Kotlin

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

Odlotowy

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

Gdy dodajesz ten wiersz po raz pierwszy, tworzony jest plik lint-baseline.xml w celu określenia punktu odniesienia. Od tego momentu narzędzia odczytują tylko zawartość pliku, aby określić punkt odniesienia. Jeśli chcesz utworzyć nowy punkt odniesienia, ręcznie usuń plik i uruchom lint jeszcze raz, aby go odtworzyć.

Następnie uruchom lint w IDE, wybierając Kod > Sprawdź kod lub z poziomu wiersza poleceń, w ten sposób. W danych wyjściowych zostanie wyświetlona lokalizacja pliku lint-baseline.xml. Lokalizacja pliku konfiguracji może się różnić od pokazanej tutaj:

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

Uruchomienie metody lint powoduje zarejestrowanie wszystkich bieżących problemów w pliku lint-baseline.xml. Zbiór bieżących problemów to punkt odniesienia. Jeśli chcesz udostępnić plik lint-baseline.xml innym osobom, możesz sprawdzić jego kontrolę wersji.

Dostosuj wartość bazową

Jeśli chcesz dodać do punktu odniesienia tylko niektóre typy problemów, określ je, edytując plik build.gradle projektu w ten sposób:

Kotlin

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

Odlotowy

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

Jeśli po utworzeniu punktu odniesienia dodasz do bazy kodu nowe ostrzeżenia, lint wyświetli tylko te nowo wprowadzone.

Ostrzeżenie dotyczące wartości podstawowej

Gdy obowiązuje wartość bazowa, otrzymasz informacyjne ostrzeżenie z informacją, że co najmniej 1 problem został odfiltrowany, ponieważ jest wymieniony w punkcie bazowym. Dzięki temu zapamiętasz, że masz skonfigurowaną wartość bazową i że w pewnym momencie musisz rozwiązać wszystkie problemy.

To ostrzeżenie informacyjne uwzględnia też problemy, które nie są już zgłaszane. Dzięki tym informacjom dowiesz się, czy problemy zostały rzeczywiście rozwiązane, i możesz opcjonalnie odtworzyć wartość bazową, aby zapobiec niewykryciu błędu.

Uwaga: linie bazowe są włączone, gdy uruchamiasz inspekcje w trybie wsadowym w IDE, ale są one ignorowane w przypadku kontroli w edytorze wykonywanych w tle podczas edytowania pliku. Dzieje się tak, ponieważ wartości bazowe są przeznaczone w sytuacji, gdy baza kodu zawiera dużą liczbę ostrzeżeń, ale chcesz rozwiązywać problemy lokalnie podczas dotykania kodu.

Przeprowadzanie inspekcji ręcznie

Aby ręcznie uruchomić skonfigurowane kontrole lint i inne kontrole IDE, wybierz Kod > Sprawdź kod. Wyniki inspekcji pojawią się w oknie Wyniki inspekcji.

Ustawianie zakresu i profilu inspekcji

Wybierz pliki, które chcesz przeanalizować (zakres inspekcji) i kontrole, które chcesz przeprowadzić (profil inspekcji), wykonując te czynności:

  1. W widoku Androida otwórz projekt i wybierz projekt, folder lub plik do analizy.
  2. Na pasku menu kliknij Kod > Zbadaj kod.
  3. W oknie Określ zakres inspekcji sprawdź ustawienia.

    Określ zakres inspekcji
    Rysunek 3. Sprawdź ustawienia zakresu inspekcji.

    Opcje dostępne w oknie Określ zakres inspekcji różnią się w zależności od tego, czy został wybrany projekt, folder czy plik:

    • Gdy wybierzesz jeden projekt, plik lub katalog, w oknie Określ zakres inspekcji pojawi się ścieżka do wybranego projektu, pliku lub katalogu.
    • Jeśli wybierzesz więcej niż 1 projekt, plik lub katalog, w oknie Określ zakres inspekcji pojawi się przycisk Wybrane pliki.

    Aby zmienić zakres sprawdzania, wybierz jedną z pozostałych opcji. Opis wszystkich możliwych pól w oknie Określanie zakresu inspekcji znajdziesz w artykule Określanie zakresu inspekcji.

  4. W sekcji Profil inspekcji wybierz profil, którego chcesz użyć.
  5. Kliknij OK, aby uruchomić inspekcję.

    Rysunek 4 przedstawia wyniki inspekcji lint i innych wyników kontroli IDE z uruchomienia kodu inspekcji:

    Wybierz problem, aby zobaczyć jego rozwiązanie.
    Rysunek 4. Wyniki inspekcji. Wybierz problem, aby zobaczyć jego rozwiązanie.
  6. W panelu Wyniki inspekcji wyświetl wyniki inspekcji, rozwijając i wybierając kategorie, typy lub problemy błędów.

    W panelu Raport z inspekcji wyświetli się raport z kontroli dla wybranej kategorii, typu lub problemu wybranego w panelu Wyniki kontroli oraz nazwy i lokalizacji błędu. W stosownych przypadkach raport z przeglądu zawiera inne informacje, takie jak streszczenie problemu, które pomogą Ci go rozwiązać.

  7. W widoku drzewa panelu Wyniki inspekcji kliknij prawym przyciskiem kategorię, typ lub problem, aby wyświetlić menu kontekstowe.

    W zależności od kontekstu możesz:

    • Przejdź do źródła.
    • Wyklucz i uwzględnij wybrane elementy.
    • Pomiń problemy.
    • Zmień ustawienia.
    • Zarządzaj alertami kontrolnymi.
    • Ponownie uruchom kontrolę.

Opisy przycisków paska narzędzi, elementów menu kontekstowego oraz pól raportu z inspekcji znajdziesz w oknie narzędzia Wyniki inspekcji.

Użyj zakresu niestandardowego

Użyj jednego z zakresów niestandardowych dostępnych w Android Studio w ten sposób:

  1. W oknie Określ zakres inspekcji wybierz Zakres niestandardowy.
  2. Kliknij listę Zakres niestandardowy, aby wyświetlić opcje:

    Wybierz zakres inspekcji
    Rysunek 5. Wybierz zakres niestandardowy, którego chcesz użyć.
    • Wszystkie miejsca: wszystkie pliki.
    • Pliki projektu: wszystkie pliki w bieżącym projekcie.
    • Pliki źródłowe projektu: tylko pliki źródłowe w bieżącym projekcie.
    • Pliki produkcyjne projektu: tylko pliki produkcyjne w bieżącym projekcie.
    • Pliki testowe projektu: tylko pliki testowe w bieżącym projekcie.
    • Drapki i konsole: tylko pliki tymczasowe i konsole, które są otwarte w bieżącym projekcie.
    • Ostatnio wyświetlane pliki: tylko ostatnio wyświetlane pliki w bieżącym projekcie.
    • Bieżący plik:tylko bieżący plik w bieżącym projekcie. Pojawia się, gdy zaznaczysz plik lub folder.
    • Wybrany katalog: tylko bieżący folder w bieżącym projekcie. Pojawia się po wybraniu folderu.
    • Hierarchia klas: gdy wybierzesz tę opcję i klikniesz OK, pojawi się okno ze wszystkimi klasami w bieżącym projekcie. W oknie użyj pola Wyszukaj według nazwy, aby przefiltrować i wybrać klasy do sprawdzenia. Jeśli nie filtrujesz listy klas, kontrola kodu sprawdza wszystkie klasy.

    Jeśli w projekcie masz skonfigurowany VCS, możesz też ograniczyć wyszukiwanie tylko do zmodyfikowanych plików.

  3. Kliknij OK.

Utwórz zakres niestandardowy

Jeśli chcesz sprawdzić wybrane pliki i katalogi, których nie ma żaden z dostępnych obecnie zakresów niestandardowych, możesz utworzyć zakres niestandardowy:

  1. W oknie Określ zakres inspekcji wybierz Zakres niestandardowy.
  2. Kliknij 3 kropki po liście Zakres niestandardowy.

    Okno określania zakresu inspekcji
    Rysunek 6. Okno Określ zakres inspekcji.

    Pojawi się okno Zakresy.

    Utwórz zakres niestandardowy
    Rysunek 7. Utwórz zakres niestandardowy.
  3. Aby zdefiniować nowy zakres, kliknij przycisk w lewym górnym rogu okna.
  4. Na wyświetlonej liście Dodaj zakres wybierz Lokalne.

    Na potrzeby funkcji Sprawdź kod w projekcie używane są zakresy lokalne i udostępnione. Zakresu Udostępnione można też używać z innymi funkcjami projektu, które mają pole zakresu. Jeśli na przykład klikniesz Edytuj ustawienia , aby zmienić ustawienia opcji Znajdź wykorzystanie, w wyświetlonym oknie pojawi się pole Zakres, w którym możesz wybrać udostępniony zakres.

    Wybierz udostępniony zakres w oknie Znajdź przypadki użycia
    Rysunek 8. Wybierz zakres udostępniony w oknie Znajdź informacje o wykorzystaniu.
  5. Nazwij zakres i kliknij OK.

    W panelu po prawej stronie okna Zakresy znajdują się opcje umożliwiające zdefiniowanie zakresu niestandardowego.

  6. Z listy wybierz Projekt.

    Pojawi się lista dostępnych projektów.

    Uwaga: zakres niestandardowy możesz utworzyć dla projektów i pakietów. Kroki są takie same.

  7. Rozwiń foldery projektu, wybierz, co chcesz dodać do zakresu niestandardowego, i zdecyduj, czy chcesz go uwzględnić czy wykluczyć.

    Zdefiniuj zakres niestandardowy
    Rysunek 9. Zdefiniuj zakres niestandardowy.
    • Uwzględnij: uwzględnia ten folder i jego pliki, ale nie dodawaj żadnych podfolderów.
    • Uwzględnij rekurencyjnie: uwzględnia ten folder i jego pliki oraz podfoldery i ich pliki.
    • Wyklucz: wyklucz ten folder i jego pliki, ale nie wykluczaj żadnych jego podfolderów.
    • Wyklucz rekurencyjnie: wyklucz ten folder i jego pliki oraz jego podfoldery i ich pliki.

    Rysunek 10 pokazuje, że uwzględniony jest folder main, a foldery java i res są umieszczane rekurencyjnie. Niebieski oznacza częściowo uwzględniony folder, a zielony – foldery i pliki występujące rekurencyjnie.

    Przykładowy wzorzec zakresu niestandardowego
    Rysunek 10. Przykładowy wzorzec zakresu niestandardowego.
    • Jeśli wybierzesz folder java i klikniesz Wyklucz rekursywnie, zielone wyróżnienie zostanie usunięte z folderu java oraz wszystkich znajdujących się w nim plików i folderów.
    • Jeśli wybierzesz zaznaczony na zielono plik MainActivity.kt i klikniesz Wyklucz, domena MainActivity.kt nie będzie już podświetlona na zielono, ale wszystko inne w folderze java pozostanie zielone.
  8. Kliknij OK. Zakres niestandardowy pojawi się u dołu listy.

Sprawdzanie i edytowanie profili inspekcji

Android Studio ma wybór profili lint i innych profili inspekcji, które są aktualizowane w ramach aktualizacji Androida. Możesz korzystać z tych profili w niezmienionej postaci lub edytować ich nazwy, opisy, wagi i zakresy. Możesz też aktywować i dezaktywować całe grupy profili lub poszczególne profile w grupie.

Aby uzyskać dostęp do ustawień Inspekcji:

  1. Wybierz Plik > Ustawienia. (w systemie Windows) lub Android Studio > Ustawienia (w systemie macOS lub Linux).
  2. Kliknij Edytor > Inspekcje.
  3. Okienko Inspekcje zawiera listę obsługiwanych inspekcji wraz z ich opisami.

    Obsługiwane inspekcje i ich opisy
    Rysunek 11. Obsługiwane inspekcje i ich opisy.
  4. Wybierz listę Profil, aby przełączać się między inspekcjami Domyślna (Android Studio) i Domyślny projekt (aktywny projekt).

    Więcej informacji znajdziesz na stronie IntelliJ Zarządzanie profilami.

  5. Na liście Inspekcje w panelu po lewej stronie wybierz kategorię profili najwyższego poziomu lub rozwiń grupę i wybierz konkretny profil.

    Po wybraniu kategorii profilu możesz edytować wszystkie kontrole w tej kategorii jako jedną inspekcję.

  6. Wybierz listę Pokaż działania schematu Pokaż ikonę działań schematu, aby skopiować inspekcje, zmienić ich nazwę, dodać do nich opisy, wyeksportować je i zaimportować.
  7. Gdy skończysz, kliknij OK.