Javítani kell a kódot lint ellenőrzések

posted in: Articles | 0

amellett, hogy biztosítja az alkalmazás megfelel a funkcionális követelményeknek épület tesztek, it ‘ sfontos, hogy azt is biztosítja, hogy a kód nem strukturális problémák futtatásával a kódot throughlint. A lint eszköz segít megtalálni a rosszul strukturált kódot, ami befolyásolhatja az androidos alkalmazások használhatóságát és hatékonyságát, valamint nehezebbé teszi a kód fenntartását.

például, ha az XML-erőforrásfájlok nem használt névtereket tartalmaznak, ez helyet foglal el, és nem szükséges feldolgozást igényel., Más szerkezeti problémák, például elavult elemek vagy API-hívások használata, amelyeket a cél API-verziók nem támogatnak, a kód megfelelő futtatásához vezethetnek.Lint segít megtisztítani ezeket a kérdéseket.

a bélésteljesítmény további javítása érdekében hozzá kell adnia a kódhoz tartozó megjegyzéseket is.

Áttekintés

Android Stúdió biztosítja a kód beolvasása nevű eszköz lintthat segít azonosítani meg a problémát a strukturális minősége a codewithout az, hogy végre az app, vagy írjon vizsgált esetekben., Az eszköz által észlelt minden problémátleírási üzenettel és súlyossági szinttel kell jelezni, hogy gyorsan rangsorolhassa a végrehajtandó kritikus fejlesztéseket. Ezenkívül csökkentheti a probléma súlyossági szintjétjelentkezzen olyan kérdésekre, amelyek nem relevánsak a projekthez, vagy emelje fel a súlyossági szintetkiemelje a konkrét problémákat.

a lint eszköz ellenőrzi az Android projekt forrásfájljait a lehetséges hibákért és optimalizálási fejlesztésekért a helyesség, a biztonság, a teljesítmény, a használhatóság, a hozzáférhetőség és a nemzetközivé válás érdekében., Ha Android Studio, konfigurált lint, IDE ellenőrzések fut, amikor építeni az alkalmazást. Azonban manuálisan futtathatja az ellenőrzéseket, vagy futtathatja a lint parancsot a parancssorból.

Megjegyzés: Ha a kód összeállítása Android Studio, additionalIntelliJ kód ellenőrzések fut tostreamline kód felülvizsgálata.

az 1. ábra azt mutatja, hogy a lint eszköz hogyan dolgozza fel az alkalmazás forrásfájljait.

1.ábra., Kód szkennelési munkafolyamat a lint eszközzel

Alkalmazásforrásfájlok a forrásfájlok olyan fájlokból állnak, amelyek az Android projektet alkotják, beleértve a Java, Kotlin, andXML fájlokat, ikonokat és ProGuard konfigurációs fájlokat. Alint.xmlfájl egy konfigurációs fájlt, amely segítségével megadhat minden olyan lint-ellenőrzést, amelyet meg szeretne adniexclude és a probléma súlyossági szintjeinek testreszabása. A lint eszköz egy statikus kód szkennelési eszköz, amelyet az Android projektjén futtathat a parancssorból vagy az inAndroid Studio-ból (lásd: kézi ellenőrzés futtatása)., A lintool ellenőrzi a strukturális kód problémák, amelyek befolyásolhatják a minőségét és teljesítményét yourAndroid alkalmazás. Erősen ajánlott, hogy javítsa ki azokat a hibákat, amelyeket a lint észlelaz alkalmazás közzététele előtt. A lint ellenőrzés eredményei a lint eredményeit a konzolon vagy az Android Studio vizsgálati Eredményablakában tekintheti meg. Lásd: kézi ellenőrzés futtatása.,

a Futtatás szösz a parancssorból

Ha az Android Stúdió vagy Gradle, akkor használja a Gradle burkoló, hogy hivatkozhat a lint feladat a projekt megadásával az alábbi parancsok közül a gyökérkönyvtárba a projekt:

  • A Windows:
    gradlew lint
  • A Linux vagy Mac:
    ./gradlew lint

látnod kell kimeneti hasonló a következő:

Ha a szösz eszköz befejezi az ellenőrzést biztosít utak az XML, HTML változata a szösz jelentés., Ezután navigálhat a HTML-jelentéshez, majd megnyithatja a böngészőben, a 2.ábra szerint.

2.ábra. Minta HTML lint jelentés

Ha a projekt tartalmaz build változatok, és ehelyett szeretné futtatni a lint feladat csak egy adott build variáns, akkor ki kell használni a variáns neve és előtagja azt lint.

gradlew lintDebug

Ha többet szeretne megtudni a Gradle feladatok futtatásáról a parancssorból, olvassa el az alkalmazás létrehozása parancsot a parancssorból.,

futtassa a lint-et az önálló eszköz használatával

Ha nem használ Android Studio vagy Gradle-t, használhatja az önálló lint eszközt, miután telepítette az Android SDK eszközöket az SDK menedzserből. Ezután keresse meg a lint eszközt a android_sdk/tools/ könyvtárban.

a lint futtatásához a projektkönyvtárban található fájlok listájához használja a következő parancsot:

lint <project directory>

például a következő parancsot adhatja ki amyproject könyvtár és annak alkönyvtárai alatti fájlok beolvasásához., A MissingPrefixprobléma azonosító azt mondja a lintnek, hogy csak olyan XML attribútumokat keressen, amelyek hiányoznak az Android névtér előtagjából.

lint --check MissingPrefix myproject 

az eszköz által támogatott zászlók és parancssori argumentumok teljes listájának megtekintéséhez használja a következő parancsot:

lint --help

a következő példa a konzol kimenetét mutatja, amikor a lint parancs a földrengés nevű aproject ellen fut.,

A kimeneti fenti lista négy figyelmeztetések nem hibák: három figyelmeztetés (ManifestOrder, UsesMinSdkAttributes vagy UnusedResources) a projekt AndroidManifest.xml fájl, egy figyelmeztetés (IconMissingDensityFolder) a Preferences.xml elrendezés fájlt.

állítsa be a lint-et a figyelmeztetések elnyomására

alapértelmezés szerint a lint-vizsgálat futtatásakor az eszköz ellenőrzi az összes olyan problémát, amelyet a lint támogat. Azt is korlátozhatja a kérdéseket a lint, hogy ellenőrizze, majd hozzárendelje a súlyossági szint az ilyen kérdések., Például, akkor elnyomja szöszellenőrzés konkrét problémák, amelyek nem relevánsak a projekt, valamint beállíthatja szöszt jelenteni nem kritikus kérdések alacsonyanvalóság szinten.

beállíthatja lint ellenőrzése különböző szinteken:

  • globálisan (teljes projekt)
  • projekt modul
  • termelési modul
  • teszt modul
  • fájlok megnyitása
  • osztály hierarchia
  • verzióvezérlő rendszer (VCS) hatókörök

konfigurálja lint Android Studio

a beépített lint eszköz ellenőrzi a kódot, miközben használodandroid Studio., A figyelmeztetéseket és hibákat kétféle módon tekintheti meg:

  • előugró szövegként a kódszerkesztőben. Amikor a lint problémát talál, kiemelia problémás kód sárga, vagy súlyosabb problémák esetén piros színnel hangsúlyozza a kódot.
  • a lint Inspection Results ablakban kattintson a gombra elemez > ellenőrizze a kódot.Lásd: kézi ellenőrzés futtatása.

állítsa be a lint fájlt

a lint ellenőrzési beállításait a lint.xml fájlban adhatja meg. Ha manuálisan hozza létre ezt a fájlt, helyezze azt az Android projekt gyökérkönyvtárába.,

alint.xml fájl egy<lint> anyacímkéből áll, amely egy vagy több gyermeket tartalmaz<issue> elemek. A Lint egy egyedi id attribútumértéket határoz meg minden <issue>esetén.

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

megváltoztathatja a probléma súlyossági szintjét, vagy letilthatja a probléma lint-ellenőrzését a <issue> címke súlyossági attribútumának beállításával.,

tipp: a lint által támogatott problémák teljes listájához és azok megfelelő kibocsátási azonosítóihoz futtassa a lint --list parancsot.

Mintaszint.xml fájl

a következő példa egy lint.xml fájl tartalmát mutatja.

állítsa be a lint checking for Java, Kotlin, and XML source files

letilthatja lint ellenőrzése a Java, Kotlin, és XML forrás fájlokat.

Tipp: Az alapértelmezett beállítások párbeszédpanelen kezelheti a Java, Kotlin vagy XML forrásfájlok szöszellenőrzési funkcióját., Válassza a > Egyéb beállítások > alapértelmezett beállítások elemet, majd az alapértelmezett beállítások párbeszédpanel bal oldali ablaktáblájában válassza a szerkesztő > ellenőrzéseket.

Konfigurálása szösz ellenőrzése a Java vagy a Kotlin

letiltásához szösz ellenőrzése kifejezetten egy osztály vagy módszer az Android projekt,add, hogy a @SuppressLint jegyzet kód.

a következő példa azt mutatja, hogyan lehet kikapcsolni lint ellenőrzése a NewApikérdés a onCreate módszer., A lint eszköz továbbra is ellenőrzi aNewApi problémát az osztály más módszereiben.,

A következő példa azt mutatja be, hogyan kell kikapcsolni a szösz ellenőrzése a ParserErrorkérdés, hogy a FeedProvider osztály:

ahhoz, Hogy elnyomja ellenőrzése minden szösz kérdések a fájlt, akkor használja a all kulcsszó,mint ez:

Kotlin

@SuppressLint("all")

Java

@SuppressLint("all")

Konfigurálása szösz ellenőrzése XML

használja a tools:ignore attribútum letiltásához szösz ellenőrzése speciális része az XML fájlokat., Tegye a következő névtér értéket a lint.xml fájlba, így a lint eszköz felismeri az attribútumot:

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

a következő példa azt mutatja, hogyan lehet kikapcsolni a lint ellenőrzését aUnusedResources probléma a <LinearLayout> elem egy xmllayout fájlt. A ignore attribútumot annak a parentelnek a gyermekelemei öröklik, amelyben az attribútumot deklarálják. Ebben a példában a lint ellenőrzés is le van tiltva agyermek <TextView> elem.,

egynél több probléma letiltásához sorolja fel a vesszővel elválasztott karakterláncban letiltandó problémákat. Például:

tools:ignore="NewApi,StringFormatInvalid"

ahhoz, Hogy elnyomja ellenőrzése minden szösz kérdések az XML elem, használja a all kulcsszó,mint ez:

tools:ignore="all"

Configure szösz lehetőségeket a Gradle

Az Android plugin Gradle beállíthatja, hogy bizonyos szösz lehetőségek például, amely ellenőrzi, hogy fut, vagy figyelmen kívül hagyja, használja a lintOptions {} blokkolja a modul-szint build.gradle fájl., A következő kódrészlet néhány konfigurálható tulajdonságot jelenít meg:

figyelmeztetések létrehozása alapvonal

pillanatfelvételt készíthet a projekt aktuális figyelmeztetéskészletéről, majd a pillanatfelvételt alapvonalként használhatja a jövőbeli ellenőrzési futásokhoz, hogy csak új problémákat jelentsen. A baseline snapshot segítségével elkezdheti használni a lint, hogy nem sikerül a build anélkül, hogy menjen vissza, majd kezelni az összes meglévő problémák első.

egy alapforgatókönyv létrehozásához módosítsa a projekt build.gradle fájlját az alábbiak szerint.,

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

amikor először adja hozzá ezt a sort, a lint-baseline.xml fájl jön létre, hogy létrehozzaa kiindulási. Ettől kezdve az eszközök csak a fájlt olvassák el az alapvonal meghatározásához. Ha azt szeretnénk, hogy hozzon létre egy új alapvonal, manuálisan törölje a fájlt, majd futtassa lint újra, hogy újra.

ezután futtassa a lint-et az IDE-ből (elemezze a > ellenőrizze a kódot) vagy a parancssorból az alábbiak szerint. A kimenet kiírja a lint-baseline.xml fájl helyét. A beállítás fájl helye eltérhet az itt látható helytől.,

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

Running lintrögzíti az összes aktuális problémát a lint-baseline.xml fájlban. Az aktuális problémák halmaza az alapvonal, alint-baseline.xml fájlt pedig ellenőrizheti a verzióvezérlésbe, ha meg szeretné osztani másokkal.

testreszabhatja az alapvonalat

ha bizonyos problématípusokat szeretne hozzáadni az alapvonalhoz, de nem mindegyiket, megadhatja a hozzáadni kívánt problémákat a projekt build.gradle szerkesztésével, az alábbiak szerint.,

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

az alapvonal létrehozása után, ha új figyelmeztetéseket ad hozzá a kódbázishoz, a lint csak az újonnan bevezetett hibákat sorolja fel.

kiindulási figyelmeztetés

amikor az alapvonalak hatályban vannak, tájékoztató figyelmeztetést kap, amely azt jelzi, hogy egy vagy több kiadást kiszűrtek, mert már szerepelnek az alapvonalban. Ennek az az oka, hogy segít emlékezni arra, hogy beállította az alapvonalat, mert ideális esetben az összes problémát meg akarja oldani egy bizonyos ponton.,

Ez az információs figyelmeztetés nem csak a hibák és figyelmeztetések pontos számát jelzi, hanem nyomon követi azokat a problémákat is, amelyeket már nem jelentettek. Ez az információ tudatjahogy valóban rögzített problémák vannak-e, így opcionálisan újra létrehozhatja az alapvonalat, hogy megakadályozzaa hiba észrevétlenül visszatér.

Megjegyzés: A Baselines engedélyezve van, ha az ellenőrzéseket kötegelt módban futtatja az IDE-ben, de figyelmen kívül hagyjáka szerkesztő-ellenőrzésekhez, amelyek a háttérben futnak egy fájl szerkesztésekor., Ennek oka az, hogy az alapvonalakat arra az esetre szánják,amikor egy kódbázisnak nagyszámú meglévő figyelmeztetése van, de a problémákat helyben szeretné megoldani, miközben megérinti a kódot.

kézi ellenőrzés futtatása

a konfigurált szöszt és más IDE-ellenőrzések manuális futtatása az Analyze > ellenőrző kód kiválasztásával lehetséges. Az ellenőrzés eredményei az ellenőrzési eredmények ablakban jelennek meg.,

állítsa be az ellenőrzés hatókörét és profilját

válassza ki az elemezni kívánt fájlokat (ellenőrzési hatókör) és a futtatni kívánt inspections (inspection profile), az alábbiak szerint:

  1. az Android nézetben nyissa meg a projektet, válassza ki a projektet, egy mappát vagy egy elemezni kívánt fájlt.
  2. a menüsorból válassza az elemzés > kód ellenőrzése lehetőséget.
  3. az ellenőrzés hatókörének megadása párbeszédpanelen tekintse át a beállításokat.

    3., Tekintse át a vizsgálati hatókör beállításait

    a vizsgálati hatókör megadása párbeszédpanelen megjelenő opciók kombinációja attól függ, hogy kiválasztott-e egy projektet, mappát vagy fájlt. A többi rádió gomb kiválasztásával megváltoztathatja, hogy mit kell ellenőrizni. Az ellenőrzés hatókörének megadása párbeszédpanel az ellenőrzés hatókörének megadása párbeszédpanelen található összes lehetséges mező leírásához.

    • Ha kiválaszt egy projektet, fájlt vagy könyvtárat, a vizsgálati hatókör megadása párbeszédablak megjeleníti a Kiválasztott projekt, fájl vagy könyvtár elérési útját.,
    • ha egynél több projektet, fájlt vagy könyvtárat választ ki, az ellenőrzés hatókörének megadása párbeszédpanelen megjelenik egy ellenőrzött rádió gomb a kiválasztott fájlokhoz.
  4. a vizsgálati profil alatt tartsa meg az alapértelmezett profilt (Project Default).
  5. kattintson az OK gombra az ellenőrzés futtatásához. A 4. ábra a lint és más IDE vizsgálati eredményeit mutatja a vizsgált Kód futtatásakor:

    4.ábra. A bal oldali ablaktábla fa nézetében válassza ki a problémát a felbontás

  6. megtekintéséhez, tekintse meg az ellenőrzési eredményeket a hibakategóriák, típusok és problémák kibővítésével és kiválasztásával.,

    A jobb oldali ablaktábla megjeleníti a kiválasztott hibakategória, típus vagy probléma ellenőrzési jelentését, valamint megadja a hiba nevét és helyét. Adott esetben az ellenőrzési jelentés más információkat is megjelenít, például a probléma szinopszisát, hogy segítsen a probléma megoldásában.

  7. a bal oldali ablaktábla fa nézetében kattintson a jobb gombbal egy kategóriára, típusra vagy kiadásra a helyi menü megjelenítéséhez.

    a kontextustól függően a következők mindegyikét vagy egy részét teheti meg: ugrás a forrásra, zárja ki a kiválasztott elemeket, szüntesse meg a problémákat, szerkessze a beállításokat, kezelje az ellenőrzési figyelmeztetéseket, majd ismételje meg az ellenőrzést.,

A bal oldali eszköztár gombjainak, a helyi menüelemeknek és az ellenőrzési jelentés mezőknek a leírásához lásd: ellenőrző eszköz ablak.

használjon egyéni hatókört

használhatja az Android Studio egyik egyedi hatókörét, az alábbiak szerint:

  1. az ellenőrzés hatókörének megadása párbeszédpanelen kattintson az egyéni hatókörre.
  2. kattintson az egyéni hatókör legördülő listára a beállítások megjelenítéséhez.

    5.ábra. Válassza ki a használni kívánt egyéni hatókört

    • Projektfájlok: az aktuális projekt összes fájlja.,
    • Project Production Files: csak a termelési fájlokat az aktuális projekt.
    • projekt tesztfájlok: csak az aktuális projekt tesztfájljai. Lásd a Teszttípusokat és a helyszínt.
    • fájlok megnyitása: csak az aktuális projektben megnyitott fájlok.
    • Module <your-module>: csak a fájlok a megfelelő modul mappában a jelenlegi projekt.
    • aktuális fájl: csak az aktuális fájl az aktuális projektben. Akkor jelenik meg, ha egy fájl vagy mappa van kiválasztva.,
    • osztályhierarchia: amikor kiválasztja ezt, majd az OK gombra kattint, megjelenik egy párbeszédablak az aktuális projekt összes osztályával. A párbeszédpanel Keresési név mezőjével szűrheti, majd kiválaszthatja az ellenőrzendő osztályokat. Ha nem szűri az osztályok listáját, a kódellenőrzés megvizsgálja az összes osztályt.
  3. kattintson az OK gombra.

hozzon létre egy egyéni hatókört

ha olyan fájlok és könyvtárak kiválasztását szeretné megvizsgálni, amelyek nem tartoznak az aktuálisan elérhető egyéni hatókörök közé, létrehozhat egy egyéni hatókört.,

  1. az ellenőrzés hatókörének megadása párbeszédpanelen válassza az egyéni hatókör lehetőséget.
  2. kattintson a három pontra az egyéni hatókör legördülő lista után.

    6.ábra. Adja meg a vizsgálati hatókör párbeszédablakot

    megjelenik a hatókör párbeszédablak.

    7.ábra. Hozzon létre egy egyéni hatókört

  3. kattintson a Hozzáadás egy új hatókör meghatározásához.
  4. az eredményül kapott hatókör hozzáadása legördülő listában válassza a helyi lehetőséget.

    mind a helyi, mind a megosztott hatóköröket a projekten belül használják az ellenőrző kód funkcióhoz., A megosztott hatókör más olyan projektjellemzőkkel is használható, amelyek hatókörrel rendelkeznek. Ha például a Beállítások szerkesztése gombra kattint a használati utasítások megtalálásának beállításainak módosításához, akkor a kapott párbeszédablakban van egy hatókör mező, ahol kiválaszthat egy megosztott hatókört.

    8.ábra. Válasszon ki egy megosztott hatókört a keresési felhasználások párbeszédpanelen

  5. adjon nevet a hatókörnek, majd kattintson az OK gombra.

    a Scopes párbeszédpanel jobb oldali ablaktáblája olyan opciókkal rendelkezik, amelyek lehetővé teszik az egyéni hatókör meghatározását.

  6. a legördülő listából válassza a projekt lehetőséget.,

    megjelenik a rendelkezésre álló projektek listája.

    Megjegyzés: létrehozhatja a projektek vagy csomagok egyéni hatókörét. A lépések mindkét irányban azonosak.

  7. bontsa ki a projektmappákat, válassza ki, hogy mit szeretne hozzáadni az egyéni hatókörhöz, majd kattintson a jobb oldali gombok egyikére.

    9.ábra. Adjon meg egy egyéni hatókört

    • tartalmazza: Tartalmazza ezt a mappát és annak fájljait, de nem tartalmazza az almappákat.
    • Include Recursively: Include this folder and all of its files and subfolders and their files.,
    • kizárás: zárja ki ezt a mappát és annak fájljait, de ne zárja ki egyik almappáját sem.
    • rekurzív kizárás: kizárja a ths mappát és annak összes fájlját, almappáját és fájljait.

    a 10. ábra azt mutatja, hogy a fő mappát tartalmazza, a java mappát pedig rekurzívan tartalmazza. A kék részben tartalmazza a mappákat, a zöld pedig rekurzívan tartalmazza a mappákat és fájlokat.

    10.ábra., Példa minta Egyéni hatókör

    • ha kiválasztja a java mappát, majd rekurzív módon kattint a kizárás elemre, a zöld kiemelés eltűnik a java mappában, valamint az összes mappában és fájlban.
    • Ha ehelyett a zöld kiemelt Főtevékenységet választja.java fájl, majd kattintson a kizárás, Főaktivitást.a java már nem zöld, de a java mappa alatt minden más zöld színnel van kiemelve.
  8. kattintson az OK gombra. Az egyéni hatókör megjelenik a legördülő lista alján.,

ellenőrzési profilok áttekintése és szerkesztése

az Android Studio számos lint és egyéb ellenőrzési profilt tartalmaz, amelyek az Android frissítésein keresztül frissülnek. Használhatja ezeket a profilokat, ahogy van, vagy szerkesztheti a nevüket, leírások, végkielégítések, andscopes. Aktiválhatja és deaktiválhatja a profilok teljes csoportjait vagy az egyes profilokategy csoportban.

az ellenőrzések párbeszédpanel eléréséhez:

  1. válassza az elemzés > kód ellenőrzése lehetőséget.
  2. az ellenőrzési profil alatt a hatókör megadása párbeszédpanelen kattintson a Tovább gombra.,

    Az ellenőrzések párbeszédpanel megjelenik a támogatott ellenőrzések és azok leírásainak listájával.

    11.ábra. Támogatott ellenőrzések és azok leírása

  3. válassza ki a profil legördülő listát az alapértelmezett (Android Studio) és a Project Default (az aktív projekt) ellenőrzések közötti váltáshoz. További információkért lásd ezt az Intellijspeify Inspection Scope párbeszédpanelt.
  4. a bal oldali ablaktábla ellenőrzések párbeszédpaneljén válassza ki a felső szintű profil kategóriát, vagy bontson ki egy csoportot, majd válasszon ki egy adott profilt., Ha kiválaszt egy profil kategóriát, egyetlen ellenőrzésként szerkesztheti az adott kategória összes ellenőrzését.
  5. válassza ki a kezelés legördülő listát a másoláshoz, átnevezéshez, leírások hozzáadásához, exportálásához és import ellenőrzésekhez.
  6. ha kész, kattintson az OK gombra.

Vélemény, hozzászólás?

Az email címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük