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.xml
fá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 MissingPrefix
problé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 NewApi
ké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 ParserError
ké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 lint
rö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:
- az Android nézetben nyissa meg a projektet, válassza ki a projektet, egy mappát vagy egy elemezni kívánt fájlt.
- a menüsorból válassza az elemzés > kód ellenőrzése lehetőséget.
- 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.
- a vizsgálati profil alatt tartsa meg az alapértelmezett profilt (Project Default).
- 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
- 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.
- 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:
- az ellenőrzés hatókörének megadása párbeszédpanelen kattintson az egyéni hatókörre.
- 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.
- 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.,
- az ellenőrzés hatókörének megadása párbeszédpanelen válassza az egyéni hatókör lehetőséget.
- 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
- kattintson a Hozzáadás egy új hatókör meghatározásához.
- 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
- 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.
- 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.
- 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.
- 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:
- válassza az elemzés > kód ellenőrzése lehetőséget.
- 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
- 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.
- 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.
- 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.
- ha kész, kattintson az OK gombra.
Vélemény, hozzászólás?