Zlepšit svůj kód s hadříkem kontroly

posted in: Articles | 0

kromě zajištění vaší aplikace splňuje funkční požadavky tím, že staví testy, it ‚ simportant, že vám také zajistí váš kód nemá žádné strukturální problémy se spuštěním kódu throughlint. Nástroj lint pomáhá najít špatně strukturovaný kód, který může ovlivnit spolehlivost a efektivitu vašich aplikací pro Android a ztěžovat údržbu kódu.

například pokud vaše soubory zdrojů XML obsahují nepoužité jmenné prostory, zabírá to místo a vzniká zbytečné zpracování., Další strukturální problémy, jako je použití zastaralých prvků nebo volání API, které nejsou podporovány cílovými verzemi API, mohou vést k správnému spuštění kódu.Lint vám může pomoci tyto problémy vyčistit.

Chcete-li dále zlepšit výkon linting, měli byste taképřidat poznámky k kódu.

Přehled

Android Studio poskytuje kód skenování nástroj s názvem lintthat vám může pomoci identifikovat a opravit problémy se strukturální kvalitu vašeho codewithout byste museli spustit aplikaci, nebo psát testovací případy., Každý problém zjištěný nástrojem je hlášen s popisovou zprávou a úrovní závažnosti, takže můžete rychle upřednostnitkritické zlepšení, které je třeba provést. Také můžete snížit úroveň závažnosti problémuignorovat problémy, které nejsou relevantní pro váš projekt, nebo zvýšit úroveň závažnostivysvětlit specifické problémy.

nástroj lint kontroluje vaše zdrojové soubory projektu Android pro potenciální chyby a vylepšení Optimalizace pro správnost, bezpečnost, výkon, použitelnost, přístupnost a internacionalizaci., Při použití aplikace Android Studio běží nakonfigurované kontroly vláken a IDE vždy, když vytvoříte aplikaci. Můžete však ručně spustit kontroly nebo spustit vlákna z příkazového řádku.

Poznámka: Je-li váš kód sestaven v Android Studio, additionalIntelliJ kontroly kódu spustit tostreamline code review.

Obrázek 1 ukazuje, jak nástroj lint zpracovává zdrojové soubory aplikace.

Obrázek 1., Kód skenovací workflow s nepouští vlákna nástroj

Aplikace zdrojové soubory zdrojové soubory se skládají ze souborů, které tvoří váš Android projektu, včetně Java, Kotlin, andXML soubory, ikony, a ProGuard konfigurační soubory.lint.xmlsoubor konfiguračního souboru, který můžete použít k zadání jakýchkoli kontrol na vlákna, které chcete použít, a přizpůsobení úrovní závažnosti problémů. Nástroj lint statický kód skenování nástroj, který můžete spustit na vašem projektu Android buď z příkazového řádku nebo inAndroid Studio (viz ručně spustit kontroly)., Linttool kontroluje strukturální problémy s kódem, které by mohly ovlivnit kvalitu a výkon aplikace yourAndroid. Důrazně doporučujeme opravit chyby, které detekuje lintpřed publikováním aplikace. Výsledky kontroly vláken můžete zobrazit výsledky z vláken buď v konzole nebo v okně výsledků inspekce v Android Studio. Viz ručně spustit kontroly.,

Spustit lint z příkazového řádku

Pokud jste pomocí Android Studio nebo Gradle, můžete použít Gradle obal vyvolat lint úkol pro váš projekt zadáním jednoho z následujících příkazů z kořenového adresáře vašeho projektu:

  • Na Windows:
    gradlew lint
  • Na Linuxu nebo Mac:
    ./gradlew lint

Byste měli vidět výstup podobný následujícímu:

Když nepouští vlákna nástroj dokončí své kontroly, poskytuje cesty k XML a HTML verze lint zpráva., Poté můžete přejít na zprávu HTML a otevřít ji ve svém prohlížeči, jak je znázorněno na obrázku 2.

Obrázek 2. Ukázka kódu HTML vlákna hlásit

Pokud váš projekt zahrnuje vybudování varianty, a vy místo toho chcete spustit lint úkol pouze pro konkrétní build variantu, musíte využít variantní název a prefix s lint.

gradlew lintDebug

Chcete-li se dozvědět více o spuštění úloh Gradle z příkazového řádku, přečtěte si sestavte si aplikaci z příkazového řádku.,

spusťte lint pomocí samostatného nástroje

Pokud nepoužíváte Android Studio nebo Gradle, můžete použít samostatný nástroj lint po instalaci nástrojů Android SDK od správce SDK. Poté můžete najít nástroj lint v adresáři android_sdk/tools/.

spustit lint proti seznamu souborů v adresáři projektu, použijte následující příkaz:

lint <project directory>

například, můžete se vydat následující příkaz skenovat soubory vmyproject adresář a jeho podadresáře., ID problému MissingPrefixříká lint pouze skenování atributů XML, které chybí předpona jmenného prostoru Android.

lint --check MissingPrefix myproject 

Chcete-li vidět kompletní seznam vlajek a argumenty příkazového řádku podporovány nástrojem, použijte následující příkaz:

lint --help

následující příklad ukazuje výstup na konzoli, když nepouští vlákna příkaz spuštěn proti projektu nazvaný Zemětřesení.,

výstup výše uvádí čtyři varování a ne chyby: tři varování (ManifestOrder UsesMinSdkAttributes UnusedResources) v projektu AndroidManifest.xml soubor, a jedno varování (IconMissingDensityFolder) v Preferences.xml layout file.

nakonfigurujte lint tak, aby ve výchozím nastavení potlačoval varování

při spuštění skenování vláken nástroj zkontroluje všechny problémy, které lint podporuje. Můžete také omezit problémy pro lint ke kontrole a přiřazení úrovně závažnosti pro tyto problémy., Můžete například potlačit kontrolu vláken pro konkrétní problémy, které nejsou pro váš projekt relevantní, a můžete nakonfigurovat lint tak, aby hlásil nekritické problémy na nižší úrovni.

můžete nakonfigurovat vlákna kontrole na různých úrovních:

  • po celém Světě (celý projekt)
  • Projekt modul
  • modul Výroba
  • Testovací modul
  • Otevřené soubory
  • Třída hierarchie
  • Version Control System (VCS) obory

Konfigurovat vlákna v Android Studio

vestavěný kalhotky nástroj kontroly kódu, když jste usingAndroid Studio., Varování a chyby můžete zobrazit dvěma způsoby:

  • jako vyskakovací text v editoru kódu. Když lint najde problém, zvýrazníproblematický kód žlutě nebo pro závažnější problémy zdůrazňuje kód červeně.
  • v okně výsledků kontroly lint po kliknutí na analyzovat > zkontrolujte kód.Viz ručně spustit kontroly.

nakonfigurujte soubor lint

předvolby kontroly vláken můžete zadat v souboru lint.xml. Pokud jste tento soubor vytvořili ručně, umístěte jej do kořenového adresáře vašeho projektu Android.,

lint.xml soubor se skládá z obvodových <lint> nadřazený tag obsahuje jedno nebo více dětí <issue> prvky. Lint definuje jedinečnou hodnotu atributu id pro každou<issue>.

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

můžete změnit problém je úroveň závažnosti nebo zakázat vlákna přezkušování pro vydání stanovením závažnosti atribut v <issue> tag.,

Tip: pro úplný seznam problémů podporovaných Lintem a jejich odpovídajících ID vydání spusťte příkaz lint --list.

vzorek vlákna.soubor xml

následující příklad ukazuje obsah souboru lint.xml.

konfigurovat kontrolu vláken pro zdrojové soubory Java, Kotlin a XML

můžete zakázat lint z kontroly zdrojových souborů Java, Kotlin a XML.

Tip: V dialogovém okně výchozí předvolby můžete spravovat funkci kontroly vláken pro zdrojové soubory Java, Kotlin nebo XML., Zvolte Soubor > Další Nastavení > Výchozí Nastavení, a pak v levém podokně Výchozí Předvolby dialogové okno, vyberte Editor > Inspekce.

Konfigurace nečistoty kontrola v Java nebo Kotlin

zakázat vlákna kontrolu speciálně pro třídy nebo metody v váš Android projektu,přidejte @SuppressLint anotace na tento kód.

následující příklad ukazuje, jak lze vypnout nečistoty kontrola NewApionCreate metoda., Nástroj lint nadále kontroluje problém NewApi v jiných metodách této třídy.,

následující příklad ukazuje, jak vypnout nečistoty kontrola ParserErrorFeedProvider třídy:

potlačit kontrolu pro všechny vlákna otázky v souboru, použijte all klíčové slovo,jako je tento:

Kotlin

@SuppressLint("all")

Java

@SuppressLint("all")

Konfigurace nečistoty kontrola v XML

můžete použít tools:ignore atribut zakázat nečistoty kontrola pro specifické části XML soubory., Vložte následující hodnotu oboru názvů v lint.xml souboru tak, nepouští vlákna nástroj rozpozná atribut:

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

následující příklad ukazuje, jak lze vypnout nečistoty kontrolaUnusedResources <LinearLayout> prvek XMLlayout souboru. Atribut ignore je zděděn dětskými prvky parentelementu, ve kterém je atribut deklarován. V tomto příkladu je kontrola vláken také zakázána pro prvek <TextView>.,

Chcete-li zakázat více než jeden problém, uveďte problémy, které chcete zakázat, v řetězci odděleném čárkami. Například:

tools:ignore="NewApi,StringFormatInvalid"

potlačit kontrolu pro všechny vlákna otázky v XML element, použijte all klíčové slovo,jako je tento:

tools:ignore="all"

Konfigurovat lint možnosti s Gradle

Android plugin pro Gradle umožňuje konfigurovat některá vlákna možností, jako která kontroluje spustit, nebo ignorovat, pomocí lintOptions {} blok v úrovni modulu build.gradle soubor., Následující fragment kódu ukazuje některé vlastnosti můžete konfigurovat:

Vytvořit varování, základní

můžete Si vzít snímek vašeho projektu je aktuální nastavení výstrah, a pak použít snímek jako základ pro budoucí inspekce běží tak, že jen nové problémy jsou hlášeny. Základní snímek vám umožní začít používat vlákna k selhání sestavení, aniž byste se museli vrátit a nejprve řešit všechny existující problémy.

Chcete-li vytvořit základní snímek, upravte souborbuild.gradle následujícím způsobem.,

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

při prvním přidání tohoto řádku je vytvořen soubor lint-baseline.xml, aby se stanovilvaše základní linie. Od té doby nástroje přečtou soubor pouze pro určení základní linie. Chcete-li vytvořit novou základní linii, ručně odstraňte soubor a znovu jej spusťte.

poté spusťte lint z IDE (analyzujte> zkontrolujte kód) nebo z příkazového řádku následujícím způsobem. Výstup vytiskne umístění souboru lint-baseline.xml. Umístění souboru pro vaše nastavení se může lišit od toho, co je zde zobrazeno.,

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

Běh lint záznamy všechny aktuální problémy v lint-baseline.xml soubor. Sada aktuálních problémů se nazývá základní linie a můžete zkontrolovat soubor lint-baseline.xml do správy verzí, pokud jej chcete sdílet s ostatními.

Upravit výchozí

Pokud chcete přidat nějaký problém typy základní, ale ne všechny z nich, můžete zadat otázky, přidejte úpravou vašeho projektu build.gradle takto.,

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

Po vytvoření základní linie, pokud přidáte nějaké nové varování codebase, nepouští vlákna seznamy pouze nově zavedené chyby.

Základní varování

Když se linií jsou v podstatě, dostanete informační upozornění, která vám řekne, že jeden nebo moreissues byly odfiltrovány, protože byly již uvedeny v základní. Důvodem tohotopozornění je pomoci vám zapamatovat si, že jste nakonfigurovali základní linii, protože v ideálním případě byste chtěli v určitém okamžiku vyřešit všechny problémy.,

toto informační varování vám nejen sděluje přesný počet chyb a varování, které bylyfiltrovány, ale také sleduje problémy, které již nejsou hlášeny. Tyto informace takové je jejich mínění pokud jste skutečně opraveny problémy, takže si můžete volitelně re-vytvořit základ pro preventthe chyba od příchodu zpět nepozorovaně.

Poznámka: základní linie jsou povoleny při spuštění inspekcí v dávkovém režimu v IDE, ale jsou ignoroványpro kontroly v editoru, které běží na pozadí při úpravách souboru., Důvodem je, že základní linie jsou určeny pro případ, kdy kódová základna má obrovské množství existujících varování, ale chcete opravit problémy lokálně, když se dotknete kódu.

ručně spustit kontroly

můžete ručně spustit nakonfigurované vlákna a další kontroly IDE výběrem analyzovat > zkontrolujte kód. Výsledky kontroly se zobrazí v okně výsledky inspekce.,

Nastavení kontroly rozsah a profil

Vyberte soubory, které chcete analyzovat (kontrola rozsahu) a theinspections chcete spustit (kontrolní profil), takto:

  1. V Android zobrazit, otevřete projekt a vyberte projekt, složku nebo soubor, který chcete analyzovat.
  2. z panelu nabídek vyberte analyzovat > zkontrolujte kód.
  3. v dialogovém okně určit rozsah kontroly zkontrolujte nastavení.

    obrázek 3., Recenze inspekce rozsah nastavení

    kombinace možností, které se objeví v Určit Kontrolní Působnosti dialogové okno se liší v závislosti na tom, zda jste vybrali projekt, složku nebo soubor. Můžete změnit, co zkontrolovat výběrem jednoho z dalších rádiových tlačítek. Seespecify inspection scope dialog pro popis všech možných polí v dialogovém okně zadat inspekční rozsah.

    • Když vyberete jeden projekt, soubor nebo adresář, dialogové okno určit rozsah kontroly zobrazí cestu k vybranému projektu, souboru nebo adresáři.,
    • Když vyberete více než jeden projekt, soubor nebo adresář, dialogové okno určit rozsah kontroly zobrazí kontrolované tlačítko rádia pro vybrané soubory.
  4. v rámci profilu inspekce ponechte výchozí profil (výchozí nastavení projektu).
  5. klepnutím na tlačítko OK spustíte kontrolu. Obrázek 4 ukazuje vlákna a další výsledky kontroly IDE z běhu kontrolního kódu:

    obrázek 4. Vyberte problém, abyste viděli jeho rozlišení

  6. v levém podokně stromové zobrazení, zobrazte výsledky inspekce rozšířením a výběrem kategorií chyb, typů a problémů.,

    v pravém podokně se zobrazí kontrolní hlášení pro vybranou kategorii chyb, typ nebo problém a zobrazí název a umístění chyby. Případně inspekční zprávy se zobrazí další informace, jako je například problém, synopse, aby vám pomůže opravit problém.

  7. v levém podokně stromové zobrazení klepněte pravým tlačítkem myši na kategorii, typ nebo problém pro zobrazení kontextové nabídky.

    v Závislosti na kontextu, můžete dělat všechny nebo některé z následujících: skok na zdroj, vyloučit a zahrnout vybrané položky, potlačit problémy, upravovat nastavení, spravovat inspekční záznamy, a znovu spusťte kontrolu.,

popisy tlačítek na levé straně panelu nástrojů, položek kontextové nabídky a polí inspekční zprávy naleznete v okně Nástroje pro kontrolu.

Použít vlastní rozsah

můžete použít jeden z vlastní obory dispozici v Android Studio, takto:

  1. Do pole Zadejte Kontrolní Působnosti dialogové okno, klepněte na tlačítko Vlastní rozsah.
  2. kliknutím na rozevírací seznam vlastního rozsahu zobrazíte své možnosti.

    obrázek 5. Vyberte vlastní rozsah, který chcete použít

    • soubory projektu: všechny soubory v aktuálním projektu.,
    • soubory produkce projektu: pouze výrobní soubory v aktuálním projektu.
    • testovací soubory projektu: pouze testovací soubory v aktuálním projektu. Viz typy testů a umístění.
    • otevřít soubory: pouze soubory, které jste otevřeli v aktuálním projektu.
    • Module <your-module>: pouze soubory v příslušné složce modulu v aktuálním projektu.
    • aktuální soubor: pouze aktuální soubor v aktuálním projektu. Zobrazí se, když máte vybraný soubor nebo složku.,
    • hierarchie třídy: když vyberete tento a kliknete na OK, zobrazí se dialog se všemi třídami v aktuálním projektu. Pomocí pole Hledat podle názvu v dialogovém okně filtrujte a vyberte třídy, které chcete zkontrolovat. Pokud nechcete filtrovat seznam tříd, kontrola kódu kontroluje všechny třídy.
  3. klikněte na OK.

vytvořte vlastní rozsah

Pokud chcete zkontrolovat výběr souborů a adresářů, na které se nevztahuje žádný z aktuálně dostupných vlastních rozsahů, můžete vytvořit vlastní rozsah.,

  1. v dialogovém okně zadat rozsah kontroly vyberte Vlastní rozsah.
  2. klikněte na tři tečky po rozevíracím seznamu Vlastní rozsah.

    obrázek 6. Zadejte dialog rozsah kontroly

    zobrazí se dialogové okno rozsahy.

    Obrázek 7. Vytvořte vlastní rozsah

  3. klikněte na Přidat pro definování nového rozsahu.
  4. ve výsledném rozevíracím seznamu přidat Rozsah vyberte místní.

    místní i sdílené rozsahy se používají v rámci projektu pro funkci Inspect Code., Sdílený rozsah lze také použít s dalšími funkcemi projektu, které mají pole působnosti. Například, když kliknete na Upravit nastavení pro změnu nastavení pro najít použití, výsledný dialog má pole působnosti, kde si můžete vybrat Sdílený rozsah.

    Obrázek 8. Vyberte sdílený rozsah z Najít Usages dialog

  5. dát rozsah název a klepněte na tlačítko OK.

    pravé podokno dialogového okna Scopes vyplňuje možnosti, které vám umožní definovat vlastní rozsah.

  6. z rozevíracího seznamu vyberte Projekt.,

    zobrazí se seznam dostupných projektů.

    Poznámka: můžete vytvořit vlastní prostor pro projekty nebo balíčky. Kroky jsou stejné v obou směrech.

  7. rozbalte složky projektu, vyberte, co chcete přidat do vlastního rozsahu, a klikněte na jedno z tlačítek vpravo.

    obrázek 9. Definujte vlastní rozsah

    • zahrnout: zahrnout tuto složku a její soubory, ale nezahrnujte žádné z jejích podsložek.
    • zahrnout rekurzivně: zahrnout tuto složku a všechny její soubory a podsložky a jejich soubory.,
    • vyloučit: vyloučit tuto složku a její soubory, ale nevylučujte žádné z jejích podsložek.
    • vyloučit rekurzivně: vyloučit složku ths a všechny její soubory a podsložky a jejich soubory.

    obrázek 10 ukazuje, že hlavní složka je zahrnuta a že složka java je zahrnuta rekurzivně. Modrá označuje částečně zahrnuté složky a zelená označuje rekurzivně zahrnuté složky a soubory.

    obrázek 10., Příklad vzor pro vlastní rozsah

    • Pokud vyberete složku java a kliknete na tlačítko Vyloučit rekurzivně, zelené zvýraznění zmizí ve složce java a ve všech složkách a souborech pod ní.
    • pokud místo toho vyberete zelenou zvýrazněnou MainActivity.java soubor a klepněte na tlačítko Vyloučit, MainActivity.java již není zvýrazněna zeleně, ale vše ostatní ve složce java je zeleně zvýrazněno.
  8. klikněte na OK. Vlastní rozsah se zobrazí v dolní části rozevíracího seznamu.,

zkontrolovat a upravit kontrolní profily

Android Studio přichází s výběrem žmolků a jiných kontrolních profilů, které jsou aktualizovány throughAndroid aktualizace. Tyto profily můžete použít tak, jak jsou, nebo upravit jejich jména, popisy, závažnosti, andscopes. Můžete také aktivovat a deaktivovat celé skupiny profilů nebo jednotlivé profilyve skupině.

pro přístup k dialogu kontroly:

  1. Vyberte analyzovat > zkontrolujte kód.
  2. v dialogovém okně zadat rozsah pod profil inspekce klikněte na tlačítko Více.,

    zobrazí se dialogové okno inspekce se seznamem podporovaných kontrol a jejich popisů.

    obrázek 11. Podporované kontroly a jejich popisy

  3. Vyberte rozevírací seznam profilu pro přepínání mezi výchozí (Android Studio) a výchozí Projekt (aktivní projekt) inspekce. Další informace naleznete v tomto dialogovém okně Intellijspecify Inspection Scope.
  4. v dialogovém okně kontroly v levém podokně vyberte kategorii profilu nejvyšší úrovně nebo rozbalte skupinu a vyberte konkrétní profil., Když vyberete kategorii profilu, můžete upravit všechny kontroly v této kategorii jako jednu kontrolu.
  5. vyberte rozbalovací seznam Správa pro kopírování, přejmenování, přidání popisů, export a import inspekcí.
  6. Až budete hotovi, klikněte na OK.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *