Ulepszanie kodu za pomocą sprawdzania lintków

Oprócz tworzenia testów, które pozwalają sprawdzić, czy aplikacja spełnia wymagania funkcjonalne, warto też uruchomić narzędzie lint, aby upewnić się, że kod nie ma problemów strukturalnych. Narzędzie lint pomaga znajdować źle skonstruowany kod, który może wpływać na niezawodność i wydajność aplikacji na Androida oraz utrudniać utrzymanie kodu. Zdecydowanie zalecamy poprawienie wszystkich błędów wykrytych przez linter przed opublikowaniem aplikacji.

Jeśli na przykład pliki zasobów XML zawierają nieużywane przestrzenie nazw, zajmują one miejsce i wymagają niepotrzebnego przetwarzania. Inne problemy strukturalne, takie jak używanie przestarzałych elementów lub wywołań interfejsu API, które nie są obsługiwane przez docelowe wersje interfejsu API, mogą powodować nieprawidłowe działanie kodu. Lint może pomóc Ci rozwiązać te problemy.

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

Omówienie

Android Studio udostępnia narzędzie do skanowania kodu o nazwie lint, które pomaga identyfikować i korygować problemy z jakością strukturalną kodu bez konieczności uruchamiania aplikacji ani pisania przypadków testowych. Każdy problem wykryty przez to narzędzie jest zgłaszany wraz z komunikatem opisującym i poziomem ważności, dzięki czemu możesz ustalić priorytety krytycznych ulepszeń, które należy wprowadzić. Możesz też obniżyć poziom ważności problemu, aby zignorować kwestie, które nie są istotne dla Twojego projektu, lub podnieść poziom ważności, aby wyróżnić konkretne problemy.

Narzędzie lint sprawdza pliki źródłowe projektu na Androida pod kątem potencjalnych błędów i możliwości optymalizacji pod względem poprawności, bezpieczeństwa, wydajności, użyteczności, ułatwień dostępu i internacjonalizacji. Jeśli używasz Androida Studio, skonfigurowane inspekcje lint i IDE są uruchamiane podczas kompilowania aplikacji. Możesz jednak uruchamiać inspekcje ręcznie lub uruchamiać lint z wiersza poleceń, jak opisano na tej stronie.

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

  • w formie wyskakującego tekstu w oknie edytora; Gdy narzędzie lint znajdzie problem, podświetli problematyczny kod na żółto. W przypadku poważniejszych problemów podkreśla kod na czerwono.
  • W oknie Wyniki sprawdzania, które pojawi się po kliknięciu Kod > Sprawdź kod.

Uwaga: gdy kod jest kompilowany w Android Studio, uruchamiane są dodatkowe inspekcje kodu IntelliJ, aby usprawnić sprawdzanie kodu. Dbaj o to, aby Android Studio było jak najbardziej aktualne, aby mieć dostęp do najnowszych reguł i kontroli lintowania.

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

Przepływ pracy skanowania kodu za pomocą narzędzia lint.
Rysunek 1. Przepływ pracy 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, w którym możesz określić kontrole lint, które chcesz wykluczyć, oraz dostosować poziomy ważności problemów.
Narzędzie lint
Narzędzie do statycznego skanowania kodu, które możesz uruchomić w projekcie na Androida z wiersza poleceń lub w Androidzie Studio. Narzędzie lint sprawdza problemy strukturalne w kodzie, które mogą wpływać na jakość i wydajność aplikacji na Androida.
Wyniki sprawdzania kodu
Wyniki narzędzia lint możesz wyświetlić w konsoli lub w oknie Wyniki inspekcji w Android Studio. Jeśli uruchomisz lint z wiersza poleceń, wyniki zostaną zapisane w folderze build/. Więcej informacji znajdziesz w sekcji dotyczącej ręcznego przeprowadzania kontroli.

Uruchamianie narzędzia lint z wiersza poleceń

Jeśli używasz Android Studio lub Gradle, wywołaj zadanie lint dla swojego projektu za pomocą narzędzia Gradle Wrapper, wpisując jedno z tych poleceń w katalogu głównym projektu:

Uwaga: dbaj o to, aby wtyczka Androida do obsługi Gradle była jak najbardziej aktualna, aby korzystać z najnowszych reguł lint.

  • 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

Po zakończeniu sprawdzania narzędzie lint podaje ścieżki do wersji raportu lint w formatach XML i HTML. Następnie możesz przejść do raportu HTML i otworzyć go w przeglądarce, jak pokazano na rysunku 2.

Przykładowy raport narzędzia do sprawdzania poprawności kodu HTML
Rysunek 2. Przykładowy raport narzędzia do sprawdzania kodu HTML.

Jeśli Twój projekt zawiera warianty kompilacji, lint sprawdza tylko wariant domyślny. Jeśli chcesz uruchomić lint w innym wariancie, musisz napisać jego nazwę wielkimi literami i dodać przed nią znak lint.

./gradlew lintRelease

Uwaga: Lint nie jest uruchamiany automatycznie w ramach kompilacji. Zdecydowanie zalecamy jawne uruchamianie narzędzia lint w ramach kompilacji ciągłej integracji, aby podczas kompilowania istniejącego kodu źródłowego widzieć najnowsze sprawdzenia lint.

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

Uruchamianie narzędzia lint

Jeśli nie używasz Androida Studio ani Gradle, zainstaluj narzędzia wiersza poleceń pakietu Android SDK, aby używać samodzielnego narzędzia lint. Narzędzie lint znajdziesz na stronie android_sdk/cmdline-tools/version/bin/lint.

Uwaga: jeśli spróbujesz uruchomić samodzielne narzędzie w projekcie Gradle, pojawi się błąd. Do uruchamiania narzędzia lint w projekcie Gradle zawsze używaj klawisza gradle lint (w systemie Windows) lub ./gradlew lint (w systemie macOS lub 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 wydać to polecenie, aby przeskanować pliki w katalogu myproject i jego podkatalogach. Identyfikator problemu MissingPrefix informuje narzędzie lint, aby skanowało tylko atrybuty 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 to narzędzie, użyj tego polecenia:

lint --help

Ten przykład pokazuje dane wyjściowe konsoli po uruchomieniu polecenia lint 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

Przykładowe dane wyjściowe zawierają 4 ostrzeżenia i 0 błędów.

2 ostrzeżenia dotyczą pliku AndroidManifest.xml projektu:

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

Jedno ostrzeżenie dotyczy katalogu res:IconMissingDensityFolder

Konfigurowanie narzędzia lint w celu pomijania ostrzeżeń

Domyślnie podczas skanowania za pomocą narzędzia lint sprawdzane są wszystkie problemy, które ono obsługuje. Możesz też ograniczyć problemy, które ma sprawdzać narzędzie lint, i przypisywać im poziomy ważności. Możesz na przykład wyłączyć sprawdzanie pod kątem konkretnych problemów, które nie są istotne w Twoim projekcie, a także skonfigurować narzędzie lint tak, aby zgłaszało problemy niekrytyczne na niższym poziomie ważności.

Poziomy ważności:

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

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

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

Konfigurowanie pliku lint

Preferencje sprawdzania kodu 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 tagu nadrzędnego <lint>, który zawiera co najmniej 1 element podrzędny <issue>. Lint definiuje unikalną wartość atrybutu id dla każdego <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 za pomocą narzędzia lint, ustaw atrybut severity w tagu <issue>.

Wskazówka: aby wyświetlić pełną listę problemów obsługiwanych przez narzędzie lint i odpowiadających im identyfikatorów, uruchom polecenie lint --list. Opcję --list należy uruchomić za pomocą samodzielnego narzędzia do sprawdzania kodu.

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 są zgłaszane różne typy problemów. Sprawdzanie IconMissingDensityFolder jest całkowicie wyłączone, a sprawdzanie ObsoleteLayoutParam jest wyłączone tylko w przypadku plików określonych w załączonych deklaracjach <ignore ... />.

Konfigurowanie sprawdzania za pomocą narzędzia lint plików źródłowych w językach Kotlin, Java i XML

Sprawdzanie za pomocą narzędzia lint możesz wyłączyć w przypadku plików źródłowych Kotlin, Java i XML w oknie Ustawienia:

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

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

Konfigurowanie sprawdzania lint w języku Java lub Kotlin

Aby wyłączyć sprawdzanie za pomocą narzędzia lint w przypadku konkretnej klasy lub metody w projekcie na Androida, dodaj do tego kodu adnotację @SuppressLint.

W przykładzie poniżej pokazujemy, jak wyłączyć sprawdzanie za pomocą narzędzia lint w przypadku problemu NewApi w metodzie onCreate. Narzędzie lint nadal sprawdza występowanie problemu 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 dowolnego komponentu. Poniższy fragment kodu pokazuje, jak wyłączyć sprawdzanie NewApi w dowolnym komponencie.

Kotlin

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

Poniższy przykład pokazuje, jak wyłączyć sprawdzanie za pomocą narzędzia lint dla problemu ParserError w klasie FeedProvider:

Kotlin

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

Java

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

Aby wyłączyć sprawdzanie wszystkich problemów w pliku, użyj słowa kluczowego all:

Kotlin

@SuppressLint("all")

Java

@SuppressLint("all")

Tej samej adnotacji możesz użyć do pomijania sprawdzania kodu w dowolnej funkcji Composable.

Konfigurowanie sprawdzania kodu w XML

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

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

Poniższy przykład pokazuje, jak wyłączyć sprawdzanie za pomocą narzędzia lint problemu UnusedResources w elemencie <LinearLayout> pliku układu XML. Atrybut ignore jest dziedziczony przez elementy podrzędne elementu nadrzędnego, w którym został zadeklarowany. W tym przykładzie sprawdzanie kodu jest też wyłączone w przypadku elementu podrzędnego <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 je w ciągu rozdzielonym przecinkami. Przykład:

tools:ignore="NewApi,StringFormatInvalid"

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

tools:ignore="all"

Konfigurowanie opcji lint za pomocą Gradle

Wtyczka Androida do obsługi Gradle umożliwia konfigurowanie niektórych opcji lint, np. tego, które testy mają być uruchamiane lub ignorowane, za pomocą bloku lint{} w pliku build.gradle na poziomie modułu.

Poniższy fragment kodu pokazuje 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
    }
}
...

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

Wszystkie metody lint, które zastępują podany poziom ważności problemu, uwzględniają kolejność konfiguracji. Na przykład ustawienie problemu jako krytycznego w finalizeDsl() zastępuje wyłączenie go w głównym DSL.

Tworzenie wartości bazowej ostrzeżeń

Możesz zrobić zrzut bieżącego zestawu ostrzeżeń dotyczących projektu, a następnie użyć go jako punktu odniesienia dla przyszłych przebiegów kontroli, aby zgłaszane były tylko nowe problemy. Zrzut bazowy umożliwia rozpoczęcie korzystania z narzędzia lint do przerywania kompilacji bez konieczności wracania do wszystkich istniejących problemów i ich rozwiązywania.

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

Kotlin

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

Groovy

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

Gdy dodasz ten wiersz po raz pierwszy, zostanie utworzony plik lint-baseline.xml, aby ustalić wartość bazową. Od tego momentu narzędzia będą odczytywać plik tylko w celu określenia wartości bazowej. Jeśli chcesz utworzyć nową linię bazową, ręcznie usuń plik i ponownie uruchom narzędzie lint, aby go odtworzyć.

Następnie uruchom lint w IDE, wybierając Code > Inspect Code (Kod > Sprawdź kod), lub w wierszu poleceń w ten sposób: Dane wyjściowe zawierają lokalizację pliku lint-baseline.xml. Lokalizacja pliku konfiguracji może być inna niż pokazana tutaj:

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

Uruchomienie lint rejestruje wszystkie bieżące problemy w pliku lint-baseline.xml. Zbiór aktualnych problemów jest nazywany wartością odniesienia. Jeśli chcesz udostępnić plik innym osobom, możesz go lint-baseline.xml zarejestrować w systemie kontroli wersji.

Dostosowywanie linii bazowej

Jeśli chcesz dodać do linii bazowej tylko określone typy problemów, wskaż je, edytując plik build.gradle projektu w ten sposób:

Kotlin

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

Groovy

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

Jeśli po utworzeniu linii bazowej dodasz do bazy kodu nowe ostrzeżenia, narzędzie lint wyświetli tylko nowo wprowadzone błędy.

Ostrzeżenie dotyczące wartości bazowej

Gdy obowiązuje linia bazowa, wyświetla się ostrzeżenie informujące, że co najmniej 1 problem został odfiltrowany, ponieważ znajduje się na liście linii bazowej. Ten komunikat ostrzegawczy przypomina, że masz skonfigurowaną linię bazową i musisz w pewnym momencie rozwiązać wszystkie problemy.

To ostrzeżenie informacyjne śledzi też problemy, które nie są już zgłaszane. Te informacje pozwalają sprawdzić, czy problemy zostały rozwiązane. Możesz też ponownie utworzyć linię bazową, aby zapobiec ponownemu wystąpieniu błędu bez wykrycia.

Uwaga: wartości bazowe są włączane, gdy przeprowadzasz inspekcje w trybie wsadowym w IDE, ale są ignorowane w przypadku kontroli w edytorze, które są uruchamiane w tle podczas edytowania pliku. Dzieje się tak, ponieważ linie bazowe są przeznaczone do sytuacji, w których baza kodu zawiera dużą liczbę istniejących ostrzeżeń, ale chcesz rozwiązywać problemy lokalnie podczas modyfikowania kodu.

Ręczne przeprowadzanie kontroli

Aby ręcznie uruchomić skonfigurowane narzędzie lint i inne inspekcje IDE, wybierz Code > Inspect Code (Kod > Sprawdź kod). Wyniki sprawdzania pojawią się w oknie Wyniki sprawdzania.

Ustawianie zakresu kontroli i profilu

Wybierz pliki, które chcesz analizować (zakres sprawdzania), oraz kontrole, które chcesz przeprowadzić (profil sprawdzania):

  1. W widoku Android otwórz projekt i wybierz projekt, folder lub plik, który chcesz przeanalizować.
  2. Na pasku menu wybierz Kod > Sprawdź kod.
  3. W oknie dialogowym Określ zakres sprawdzania sprawdź ustawienia.

    Sprawdzanie ustawień zakresu kontroli
    Rysunek 3. Sprawdź ustawienia zakresu kontroli.

    Opcje wyświetlane w oknie Określ zakres sprawdzania różnią się w zależności od tego, czy wybrano projekt, folder czy plik:

    • Gdy wybierzesz projekt, plik lub katalog, w oknie Określ zakres inspekcji wyświetli 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ę zaznaczony przycisk opcji Wybrane pliki.

    Aby zmienić element do sprawdzenia, wybierz jeden z pozostałych przycisków opcji. Opis wszystkich możliwych pól w oknie Określ zakres kontroli znajdziesz w artykule Okno Określ zakres kontroli.

  4. W sekcji Profil kontroli wybierz profil, którego chcesz użyć.
  5. Aby przeprowadzić inspekcję, kliknij OK.

    Na rysunku 4 widać wyniki lintowania i innych inspekcji IDE uzyskane po uruchomieniu sprawdzania kodu:

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

    W panelu Raport z inspekcji wyświetla się raport z inspekcji dotyczący kategorii, typu lub problemu wybranego w panelu Wyniki inspekcji. Wyświetla on nazwę i lokalizację błędu. W odpowiednich przypadkach raport ze sprawdzania wyświetla inne informacje, takie jak podsumowanie problemu, które pomagają go rozwiązać.

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

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

    • Przejdź do źródła.
    • Wykluczanie i uwzględnianie wybranych elementów.
    • Ukrywanie problemów.
    • Zmień ustawienia.
    • Zarządzaj alertami dotyczącymi kontroli.
    • Ponownie przeprowadź test.

Opisy przycisków paska narzędzi, elementów menu kontekstowego i pól raportu inspekcji znajdziesz w artykule Okno narzędzia Wyniki inspekcji.

Używanie zakresu niestandardowego

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

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

    Wybierz zakres sprawdzania, którego chcesz użyć.
    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.
    • Pliki tymczasowe i konsole: tylko pliki tymczasowe i konsole 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 wybierzesz plik lub folder.
    • Wybrany katalog: tylko bieżący folder w bieżącym projekcie. Pojawia się, gdy wybierzesz folder.
    • 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 odfiltrować i wybrać klasy do sprawdzenia. Jeśli nie odfiltrujesz listy zajęć, inspekcja kodu sprawdzi wszystkie zajęcia.
  3. Jeśli w projekcie masz skonfigurowany system kontroli wersji, możesz też ograniczyć wyszukiwanie tylko do zmodyfikowanych plików.

  4. Kliknij OK.

Tworzenie zakresu niestandardowego

Jeśli chcesz sprawdzić wybór plików i katalogów, które nie są objęte żadnym z dostępnych zakresów niestandardowych, możesz utworzyć zakres niestandardowy:

  1. W oknie Określ zakres sprawdzania kliknij Zakres niestandardowy.
  2. Kliknij 3 kropki obok listy Zakres niestandardowy.

    Okno Określ zakres kontroli
    Rysunek 6. Okno Określ zakres kontroli
    .

    Pojawi się okno Zakresy.

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

    W projekcie używane są zarówno zakres lokalny, jak i udostępniony na potrzeby funkcji Sprawdź kod. Zakres Udostępniony można też stosować w przypadku innych funkcji projektu, które mają pole zakresu. Na przykład gdy klikniesz Edytuj ustawienia , aby zmienić ustawienia funkcji Znajdź użycia, w wyświetlonym oknie dialogowym pojawi się pole Zakres, w którym możesz wybrać zakres udostępniony.

    Wybierz udostępniony zakres w oknie Znajdź użycia
    Rysunek 8. Wybierz udostępniony zakres w oknie Znajdź użycia.
  5. Nadaj zakresowi nazwę i kliknij OK.

    W oknie dialogowym Zakresy po prawej stronie pojawią się opcje, które pozwolą Ci zdefiniować zakres niestandardowy.

  6. Z listy wybierz Projekt.

    Pojawi się lista dostępnych projektów.

    Uwaga: niestandardowy zakres możesz utworzyć dla projektów lub pakietów. Czynności są takie same.

  7. Rozwiń foldery projektów, wybierz elementy, które chcesz dodać do zakresu niestandardowego, i określ, czy mają być uwzględnione czy wykluczone.

    Definiowanie zakresu niestandardowego
    Rysunek 9. Określ zakres niestandardowy.
    • Uwzględnij: uwzględnij ten folder i jego pliki, ale nie uwzględniaj żadnych podfolderów.
    • Uwzględnij rekursywnie: uwzględnij ten folder i jego pliki, a także podfoldery i ich pliki.
    • Wyklucz: wyklucz ten folder i jego pliki, ale nie wykluczaj żadnych jego podfolderów.
    • Wyklucz rekursywnie: wyklucz ten folder i jego pliki, a także podfoldery i ich pliki.

    Na ilustracji 10 widać, że folder main jest uwzględniony, a foldery javares są uwzględniane rekursywnie. Niebieski kolor oznacza częściowo uwzględniony folder, a zielony – rekurencyjnie uwzględnione foldery i pliki.

    Przykładowy wzorzec zakresu niestandardowego
    Rysunek 10. Przykładowy wzorzec zakresu niestandardowego.
    • Jeśli wybierzesz folder java i klikniesz Wyklucz rekurencyjnie, zielone podświetlenie zniknie z folderu java oraz wszystkich folderów i plików w nim.
    • Jeśli wybierzesz plik MainActivity.kt podświetlony na zielono i klikniesz Wyklucz, plik MainActivity.kt przestanie być podświetlony na zielono, ale wszystko inne w folderze java pozostanie podświetlone na zielono.
  8. Kliknij OK. Zakres niestandardowy pojawi się u dołu listy.

Sprawdzanie i edytowanie profili kontroli

Android Studio ma wybór profili lint i innych profili inspekcji, które są aktualizowane w ramach aktualizacji Androida. Możesz używać tych profili w ich obecnej postaci lub edytować ich nazwy, opisy, poziomy ważności i zakresy. Możesz też aktywować i dezaktywować całe grupy profili lub poszczególne profile w grupie.

Aby otworzyć ustawienia kontroli:

  1. Wybierz Plik > Ustawienia. (w systemie Windows) lub Android Studio > Preferences (w systemie macOS lub Linux).
  2. Kliknij Edytor > Kontrole.
  3. W panelu Kontrole wyświetla się lista obsługiwanych kontroli i ich opisy.

    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ślne (Android Studio) i Domyślne dla projektu (aktywny projekt).

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

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

    Gdy wybierzesz kategorię profilu, możesz edytować wszystkie inspekcje w tej kategorii jako jedną inspekcję.

  6. Wybierz listę Pokaż działania związane ze schematem Ikona Pokaż działania schematu, aby kopiować, zmieniać nazwy, dodawać opisy, eksportować i importować inspekcje.
  7. Gdy skończysz, kliknij OK.