Lint: alapok, statikus elemző Android projektekhez

Szerző: IT Sectr Megjelenés: 2026-02-13 Olvasási idő: 10 perc

Android Lint — beépített statikus kódelemző az Android Studio-ban és a Gradle-ben, amely a forrásfájlokat a Google ajánlásainak való megfelelőség szempontjából ellenőrzi. A Lint potenciális hibákat talál a fordítás előtt: nem használt erőforrások, teljesítményproblémák, memóriaszivárgások és API-inkompatibilitás. Az eszköz XML, Java és Kotlin fájlokat elemez. Bővebben a Android Lint Guide oldalon.

Főbb pontok

  • Android Lint — statikus elemző beépítve az Android Studio-ba és Gradle-be kódellenőrzéshez
  • Lint ellenőrzés — XML, Java és Kotlin elemzése hibákra az alkalmazás fordítási szakasza előtt
  • lint.xml — konfigurációs fájl a Lint szabályok beállításához Android projektben
  • Lint baseline — meglévő figyelmeztetések rögzítésének mechanizmusa fokozatos bevezetéshez
  • CI integráció — Lint futtatása a build szerveren a kód minőségének automatikus ellenőrzéséhez

Mi az a Lint — statikus kódelemző?

Android Lint — statikus elemzőeszköz, amely az Android SDK és Android Studio része. A Lint beolvassa az alkalmazás forráskódját annak végrehajtása nélkül, és megtalálja azokat a problémákat, amelyeket a fordító kihagy: nem használt erőforrások, helytelen lokalizáció, potenciális memóriaszivárgások, API inkompatibilitás a minSdkVersion-nel és a Google teljesítményre vonatkozó ajánlásainak megsértése.

Statikus elemzés — a szoftver ellenőrzésének módszere a kód tényleges végrehajtása nélkül. Ellentétben a fordítóval, amely csak a szintaxist és típusokat ellenőrzi, a statikus elemző logikai hibákat, antimintákat és a legjobb gyakorlatoktól való eltéréseket keres. A Lint több mint 200 beépített ellenőrzést végez kategóriánként: correctness, performance, security, accessibility, usability és I18N.

A Lint több szinten működik: XML elemzés ellenőrzi az elrendezéseket (layout), erőforrásokat (strings, colors, dimens), a manifestet és a konfigurációs fájlokat. Java/Kotlin elemzés — a forráskódot elavult API-hívások, szálproblémák és kontextusszivárgások szempontjából. Gradle elemzés — a build konfigurációt verziókompatibilitás szempontjából.

Hogyan ellenőrzi a Lint az Android projektek kódját

Lint ellenőrzés az Android Studio-n (Analyze > Inspect Code) vagy Gradle paranccsal indítható: ./gradlew lint. Eredmény — HTML jelentés a build/reports/lint-results.html mappában és XML jelentés CI rendszerek számára. A Lint minden fájlt függetlenül elemez, egy szabálykészletet (Issue) alkalmazva, amelyek mindegyike egyedi ID-val, leírással, kategóriával és súlyossági szinttel rendelkezik.

A Lint súlyossági szintjei: Error (hiba — blokkolja a buildet), Warning (figyelmeztetés — befolyásolja a minőséget), Informational (tájékoztatás — tájékoztatás céljából), Ignore (alapértelmezetten figyelmen kívül hagyva). A szintek a lint.xml-ben állíthatók be. A Lint hibák beállíthatók úgy, hogy a Gradle build meghiúsuljon jelenlétük esetén a lintOptions.abortOnError true segítségével.

groovy
android {
    lintOptions {
        abortOnError true
        checkAllWarnings true
        baselineFile file("lint-baseline.xml")
        htmlReport true
        xmlReport true
        lintConfig file("lint.xml")
    }
}

Lint baseline — fájl, amely rögzíti az aktuális figyelmeztetéseket elfogadhatóként. A lint --baseline baseline.xml paranccsal hozható létre. A baseline projektbe történő hozzáadása után a Lint csak az új problémákról jelent. Ez kényelmes a Lint bevezetéséhez egy régi, több száz figyelmeztetést tartalmazó projektben — a csapat fokozatosan javítja a hibákat.

Lint szabályok beállítása konfigurációs fájlokban

lint.xml — konfigurációs fájl a projekt gyökerében a Lint szabályok beállításához. Ebben adjuk meg a figyelmen kívül hagyott szabályokat, súlyossági szinteket és kivételeket adott fájlokhoz vagy könyvtárakhoz. A fájl manuálisan jön létre, és globálisan érvényes a projekt összes moduljára. lint.xml nélkül minden szabály az alapértelmezett beállításokkal működik.

xml
<?xml version="1.0" encoding="UTF-8"?>
<lint>
    <!-- Nem használt erőforrások ellenőrzésének kikapcsolása -->
    <issue id="UnusedResources" severity="ignore" />

    <!-- Kontextusszivárgás súlyosságának növelése -->
    <issue id="StaticFieldLeak" severity="error" />

    <!-- Figyelmen kívül hagyás generált fájlokban -->
    <issue id="MissingTranslation" severity="ignore">
        <ignore path="build/generated" />
    </issue>
</lint>

@SuppressLint — annotáció a Lint kikapcsolásához metódus vagy osztály szinten Java/Kotlin-ban. Példa: @SuppressLint("SetTextI18n") egy olyan metódushoz, ahol a szöveg dinamikusan kerül beállításra a TextView-ban. A @RequiresApi annotáció megadja a metódus minimális API szintjét — a Lint nem ad ki figyelmeztetést, ha a minSdk magasabb a megadott értéknél.

Lint ellenőrzés futtatása CI/CD pipeline-ban

CI integráció Lint — szabványos gyakorlat az Android fejlesztésben. A ./gradlew lint parancs elindítja az összes modul elemzését és jelentéseket generál. CI/CD konfigurációban (Jenkins, GitLab CI, GitHub Actions) a Lint minden pull request-nél fut. Hibák esetén a build meghiúsul, és a fejlesztő értesítést kap a Lint HTML jelentéssel.

yaml
lint-check:
  script:
    - ./gradlew lint
  artifacts:
    paths:
      - app/build/reports/lint-results.html
    when: always

HTML jelentés A Lint táblázatot tartalmaz az összes talált problémáról kategóriával, szabály ID-val, fájllal, sorral és leírással. A jelentés elérhető a CI szerveren vagy build artifactként publikálható. XML jelentés (lint-results.xml) a kódelemző rendszerekkel (SonarQube, CodeClimate) való integrációhoz és feladatok automatikus létrehozásához nyomkövetőkben (Jira, YouTrack) használatos.

Lint pull request-ben — konfigurálja a GitHub Actions-t vagy GitLab CI-t úgy, hogy a Lint automatikusan fusson MR/PR létrehozásakor. Ha a Lint hibákat talál, a CI failure státuszt ad vissza, és az egyesítés blokkolva van. Ez megakadályozza a problémás kód bekerülését a fő ágba és fenntartja a kódbázis minőségét.

A Lint szabályok fő kategóriái Android-ban

Lint kategóriák lefedik az Android fejlesztés minden aspektusát. A Google 12 kategóriába osztja a szabályokat, mindegyik egy adott problématípusért felelős. A legfontosabb kategóriák — Correctness, Performance, Security és Accessibility. A fejlesztőnek elegendő ismernie az egyes kategóriák kulcsfontosságú ellenőrzéseit a hatékony Lint munkához.

KategóriaLeírásPélda szabály
CorrectnessAz alkalmazás működését befolyásoló hibákMissingPermission, WrongConstant
PerformanceTeljesítmény- és memóriaproblémákUnusedResources, ViewHolder, DrawAllocation
SecuritySérülékenységek és biztonsági megsértésekExportedContentProvider, WorldReadableFiles
AccessibilityAkadálymentesítési problémák a felhasználók számáraContentDescription, TouchTargetSize
UsabilityHasználhatóság és felhasználói élményNotSibling, BackButton, HardcodedText
I18NNemzetközi és lokalizációMissingTranslation, ExtraTranslation

Performance szabályok — a leggyakorlatiasabbak. UnusedResources megtalálja az XML-ben deklarált, de a kódban nem használt erőforrásokat. ViewHolder ellenőrzi, hogy a RecyclerView adapterekben a ViewHolder minta használatos-e. DrawAllocation figyelmeztet az objektumok létrehozására az onDraw metódusban. E problémák kijavítása csökkenti az APK méretét és gyorsítja az alkalmazást.

Security szabályok kötelezőek a publikált alkalmazásokhoz. ExportedContentProvider ellenőrzi, hogy a ContentProvider védelem nélkül van-e exportálva. WorldReadableFiles figyelmeztet az összes alkalmazás számára hozzáférhető fájlok létrehozására. AllowBackup ellenőrzi az allowBackup jelzőt a manifestben — ajánlott kikapcsolni az adatbiztonság érdekében.

Gyakran Ismételt Kérdések

Mi a különbség a Lint és a fordító között?

A fordító ellenőrzi a szintaxist és típusokat, a kódot bájtkódra fordítja a végrehajtáshoz. A Lint elemzi a kódot fordítás nélkül, és megtalálja azokat a logikai problémákat, amelyeket a fordító kihagy: nem használt változók, erőforrás-szivárgások, lokalizációs problémák, teljesítménysértések és API inkompatibilitás a minSdkVersion-nel. A Lint kiegészíti a fordítót, de nem helyettesíti azt.

Hogyan kapcsolhatok ki egy adott Lint figyelmeztetést a kódban?

XML fájlokban használja a tools:ignore attribútumot a szabály ID-jával: tools:ignore="UnusedResources". Java/Kotlin-ban adja hozzá a @SuppressLint annotációt a metódushoz vagy osztályhoz: @SuppressLint("SetTextI18n"). Egy teljes könyvtárhoz konfigurálja a lint.xml-t issue csomóponttal és severity="ignore"-val. A teljes projekthez konfigurálja a lint.xml-t a modul gyökerében.

Mi az a Lint baseline és hogyan használjam?

Lint baseline — XML fájl, amely rögzíti az aktuális Lint figyelmeztetéseket elfogadhatóként. A ./gradlew lint -Pbaseline paranccsal vagy a lintOptions.baselineFile segítségével a build.gradle-ben hozható létre. A baseline hozzáadása után a Lint csak az új problémákról jelent. Ez kényelmes a Lint örökölt kódú projektekbe történő bevezetéséhez — a csapat iteratívan javítja a hibákat.

Hogyan hozhatok létre saját Lint szabályt?

Hozzon létre egy új Java/Kotlin modult lint-api és lint-checks függőségekkel a com.android.tools.lint könyvtárból. Implementálja a Detector osztályt a problémák kereséséhez és az Issue osztályt azok leírásához. Építse a modult JAR-ba, helyezze el az Android projekt lintLibs mappájában. Az Android Studio automatikusan átveszi az egyéni szabályokat.

Miért kötelező a Lint ellenőrzés Android projektekben?

A Lint olyan problémákat talál, amelyeket a fordító nem lát: kontextusszivárgások (Activity, Fragment), API inkompatibilitás a minSdkVersion-nel, Gradle konfigurációs problémák, túl nagy PNG ikonok, alternatív erőforrások hiánya különböző nyelvekhez és képernyőkonfigurációkhoz. A Google Play a Lint használatát ajánlja a publikálás előtt. Lint nélkül az alkalmazás összeomolhat régi eszközökön.

Összefoglaló

  • Android Lint — statikus kódelemző beépítve az Android SDK-ba és Android Studio-ba
  • Lint ellenőrzés — XML, Java és Kotlin elemzése potenciális hibákra az alkalmazás fordítása előtt
  • lint.xml — konfigurációs fájl a Lint szabályok beállításához Android projektben
  • Lint baseline — meglévő figyelmeztetések rögzítésének mechanizmusa fokozatos bevezetéshez
  • CI integráció — Lint futtatása a build szerveren blokkolja a kritikus hibás PR-okat
  • Lint kategóriák — Correctness, Performance, Security, Accessibility és I18N
  • @SuppressLint — annotáció a Lint kikapcsolásához metódus vagy osztály szinten

Kulcsrakész mobilalkalmazást fejlesztünk

Az IT Sectr 2017 óta készít iOS és Android alkalmazásokat induló vállalkozásoknak és vállalkozásoknak. Tanácsot adunk, és a legjobb megoldást javasoljuk.

Projekt megbeszélése

Olvassa el is