förbättra din kod med luddkontroller

posted in: Articles | 0

förutom att se till att din app uppfyller sina funktionella krav genom att bygga tester är det viktigt att du också ser till att din kod inte har några strukturella problem genom att köra koden genomlint. Lint-verktyget hjälper till att hitta dåligt strukturerad kod som kan påverka tillförlitligheten och effektiviteten hos dina Android-appar och göra din kod svårare att behålla.

till exempel, om dina XML-resursfiler innehåller oanvända namnrymder, tar det upp utrymme och incursunnecessary bearbetning., Andra strukturella problem, t.ex. användning av föråldrade element eller API-anropsom inte stöds av mål-API-versionerna, kan leda till att koden inte körs korrekt.Lint kan hjälpa dig att städa upp dessa problem.

för att ytterligare förbättra linting prestanda, bör du också lägga till anteckningar till din kod.

översikt

Android Studio tillhandahåller ett kodsökningsverktyg som heter lintsom kan hjälpa dig att identifiera och korrigera problem med den strukturella kvaliteten på din kodutan att du måste köra appen eller skriva testfall., Varje problem som upptäcks av verktyget rapporteras med ett beskrivningsmeddelande och en allvarlighetsgrad, så att du snabbt kan prioriterakritiska förbättringar som måste göras. Du kan också sänka svårighetsgraden av ett problem för attignore problem som inte är relevanta för ditt projekt, eller höja svårighetsgraden för attmarkera specifika problem.

lint-verktyget kontrollerar dina Android-projektkällfiler för potentiella fel och optimeringsförbättringar för korrekthet, säkerhet, prestanda, användbarhet, tillgänglighet och internationalisering., När du använder Android Studio körs konfigurerade ludd-och IDE-inspektioner när du bygger din app. Du kan dock manuellt köra inspektioner eller köra ludd från kommandoraden.

Obs! När din kod sammanställs i Android Studio kör additionalIntelliJ code inspections tostreamline code review.

Figur 1 visar hur lint-verktyget behandlar programkällfilerna.

Figur 1., Kod scanning arbetsflöde med lint tool

program källfiler källfilerna består av filer som utgör din Android-projekt, inklusive Java, Kotlin, andXML filer, ikoner och ProGuard konfigurationsfiler. Denlint.xmlfil en konfigurationsfil som du kan använda för att ange eventuella luddkontroller som du villundantag och för att anpassa problem svårighetsgrad. Den lint verktyg en statisk kod scanning verktyg som du kan köra på din Android-projekt antingen från kommandoraden eller inAndroid Studio (SE manuellt köra inspektioner)., Linttool kontrollerar strukturella kod problem som kan påverka kvaliteten och prestanda för yourAndroid ansökan. Det rekommenderas starkt att du korrigerar eventuella fel som ludd upptäckterinnan du publicerar din ansökan. Resultat av luddkontroll du kan visa resultaten från ludd antingen i konsolen eller i fönstret inspektionsresultat i Android Studio. Se manuellt köra inspektioner.,

kör lint från kommandoraden

Om du använder Android Studio eller Gradle kan du använda Gradle wrapper för att åberopa uppgiften lint för ditt projekt genom att ange ett av följande kommandon från rotkatalogen i ditt projekt:

  • på Windows:
    gradlew lint
  • på Linux eller Mac:
    ./gradlew lint

Du bör se utdata som liknar följande:

När lint-verktyget slutför sina kontroller ger det sökvägar till XML-och HTML-versionerna av lintrapporten., Du kan sedan navigera till HTML-rapporten och öppna den i din webbläsare, som visas i Figur 2.

Figur 2. Exempel på HTML-lintrapport

om ditt projekt innehåller byggvarianter, och du istället vill köra uppgiftenlint för endast en specifik byggvariant, måste du kapitalisera variantnamnet och prefixa det medlint.

gradlew lintDebug

Om du vill veta mer om att köra Gradle-uppgifter från kommandoraden läser du Bygg din App från kommandoraden.,

kör ludd med det fristående verktyget

Om du inte använder Android Studio eller Gradle kan du använda det fristående luddverktyget när du har installerat Android SDK-verktygen från SDK-hanteraren. Du kan sedan hitta lintverktyget i katalogen android_sdk/tools/.

för att köra ludd mot en lista med filer i en projektkatalog, använd följande kommando:

lint <project directory>

Du kan till exempel utfärda följande kommando för att skanna filerna under katalogenmyproject och dess underkataloger., I issue IDMissingPrefixanges att lint endast ska söka efter XML-attribut som saknar Android namespace-prefixet.

lint --check MissingPrefix myproject 

för att se hela listan med flaggor och kommandoradsargument som stöds av verktyget, Använd följande kommando:

lint --help

följande exempel visar konsolutgången när lint-kommandot körs mot ett projekt kallat jordbävning.,

utmatningen ovan listar fyra varningar och inga fel: tre varningar (ManifestOrder,UsesMinSdkAttributes, ochUnusedResources) I projektetsAndroidManifest.xml – fil och en varning (IconMissingDensityFolder) IPreferences.xml layoutfil.

konfigurera lint för att undertrycka varningar

som standard när du kör en lintsökning kontrollerar verktyget för alla problem som lint stöder. Du kan också begränsa problemen för lint för att kontrollera och tilldela svårighetsgraden för dessa problem., Du kan till exempel undertrycka luddkontroll för specifika problem som inte är relevanta för ditt projekt och du kan konfigurera ludd för att rapportera icke-kritiska problem på en lägre nivå.

Du kan konfigurera luddkontroll för olika nivåer:

  • globalt (hela projektet)
  • projektmodul
  • produktionsmodul
  • testmodul
  • öppna filer
  • klasshierarki
  • versionskontrollsystem (VCS) omfattningar

konfigurera ludd i Android Studio

det inbyggda luddverktyget kan användas för att kontrollerar din kod medan du använderandroid Studio., Du kan visa varningar och fel på två sätt:

  • som popup-text i kodredigeraren. När lint hittar ett problem lyfter det framden problematiska koden i gult, eller för allvarligare problem, understryker den koden i rött.
  • I fönstret ludd inspektionsresultat när du klickar på Analysera> inspektera kod.Se manuellt köra inspektioner.

konfigurera luddfilen

Du kan ange dina luddkontrollinställningar i filenlint.xml. Om du skapar den här filen manuellt, placera den i rotkatalogen i ditt Android-projekt.,

lint.xml filen består av en omslutande<lint> överordnad tagg sominnehåller ett eller flera barn<issue> element. Lint definierar ett uniktid attributvärde för varje<issue>.

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

Du kan ändra problemets allvarlighetsgrad eller inaktivera luddkontroll för problemet genom att ställa in stränghetsattributet i<issue> – taggen.,

Tips: för en fullständig lista över ludd-stödda problem och deras motsvarande problem-id: N, kör kommandotlint --list.

prov ludd.xml-fil

följande exempel visar innehållet i en lint.xml – fil.

konfigurera luddkontroll för Java -, Kotlin-och XML-källfiler

Du kan inaktivera ludd från att kontrollera dina Java -, Kotlin-och XML-källfiler.

Tips: Du kan hantera funktionen för lintkontroll för Java -, Kotlin-eller XML-källfiler i dialogrutan standardinställningar., Välj Arkiv> Övriga inställningar> standardinställningar och välj sedan redaktör> inspektioner i den vänstra rutan i dialogrutan standardinställningar.

konfigurera luddkontroll i Java eller Kotlin

för att inaktivera luddkontroll specifikt för en klass eller metod i ditt Android-projekt,Lägg till@SuppressLint – anteckningen till den koden.

följande exempel visar hur du kan stänga av luddkontroll för NewApi – problemet i onCreate – metoden., Lint-verktyget fortsätter att söka efter NewApi – problemet i andra metoder i den här klassen.,

följande exempel visar hur du stänger av luddkontroll för ParserError – problemet i klassen FeedProvider:

för att undertrycka kontroll av alla luddproblem i filen, använd nyckelordet all, så här:

Kotlin

@SuppressLint("all")

Java

@SuppressLint("all")

konfigurera luddkontroll i XML

Du kan använda attributet tools:ignore för att inaktivera luddkontroll för specifika delar av dina XML-filer., Lägg följande namnrymdsvärde i filen lint.xml så att luddverktyget känner igen attributet:

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

följande exempel visar hur du kan stänga av luddkontroll för problemetUnusedResources I elementet <LinearLayout> I en xmllayout-fil. Attributetignore ärvs av de barnelement i parentelementet där attributet deklareras. I det här exemplet är lint-kontrollen också inaktiverad för thechild<TextView> – elementet.,

om du vill inaktivera fler än ett problem anger du vilka problem som ska inaktiveras i en kommaseparerad sträng. Exempel:

tools:ignore="NewApi,StringFormatInvalid"

för att undertrycka kontroll av alla lint-problem i XML-elementet, använd nyckelordet all så här:

tools:ignore="all"

konfigurera lint-alternativ med Gradle

Android-plugin för Gradle låter dig konfigurera vissa lint-alternativ,till exempel vilka kontroller som ska köras eller användas.Ignorera, med hjälp av lintOptions {} – blocket i din modulnivå build.gradle – filen., Följande kodavsnitt visar några av de egenskaper du kan konfigurera:

Skapa varningar baslinje

Du kan ta en ögonblicksbild av projektets aktuella uppsättning varningar och sedan använda ögonblicksbilden som baslinje för framtida inspektions körningar så att endast nya problem rapporteras. Med den ursprungliga ögonblicksbilden kan du börja använda lint för att misslyckas med att bygga utan att behöva gå tillbaka och ta itu med alla befintliga problem först.

ändra projektetsbuild.gradle fil så här för att skapa en ögonblicksbild.,

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

När du först lägger till den här raden skapas filenlint-baseline.xml för att etablera din baslinje. Från och med då läser verktygen bara filen för att bestämma baslinjen. Om du vill skapa en ny baslinje, ta bort filen manuellt och kör ludd igen för att återskapa den.

kör sedan lint från ide (analysera > inspektera kod) eller från kommandoraden enligt följande. Utgången skriver ut platsen för filenlint-baseline.xml. Filplatsen för din inställning kan skilja sig från vad som visas här.,

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

körlint registrerar alla aktuella problem i filenlint-baseline.xml. Uppsättningen aktuella problem kallas baslinjen, och du kan kontrollera filen lint-baseline.xml I versionskontroll om du vill dela den med andra.

anpassa baslinjen

om du vill lägga till vissa typer av problem i baslinjen, men inte alla av dem, kan du ange vilka problem som ska läggas till genom att redigera projektets build.gradle enligt följande.,

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

När du har skapat baslinjen, om du lägger till några nya varningar i kodbasen, listar lint bara de nyligen införda buggarna.

Baslinjevarning

När baslinjerna är i kraft får du en informativ varning som berättar att en eller flera frågor filtrerades ut eftersom de redan var listade i baslinjen. Anledningen till dettavarning är att hjälpa dig att komma ihåg att du har konfigurerat en baslinje, för helst skulle du vilja fixa alla problem någon gång.,

den här informationsvarningen berättar inte bara det exakta antalet fel och varningar som varfiltrerade ut, det håller också reda på problem som inte rapporteras längre. Denna information låter dig veta om du faktiskt har åtgärdat problem, så du kan eventuellt återskapa baslinjen för att förhindrafelet från att komma tillbaka oupptäckt.

Obs! baslinjer är aktiverade när du kör inspektioner i batch-läge i IDE, men de är ignoreradeför in-editor kontroller som körs i bakgrunden när du redigerar en fil., Anledningen är att baslinjerna är avsedda för det fall där en kodbas har ett stort antal befintliga varningar, men du vill fixa problem lokalt medan du trycker på koden.

manuellt köra inspektioner

Du kan manuellt köra konfigurerade ludd och andra IDE-inspektioner genom att välja analysera> inspektera kod. Resultaten av inspektionen visas i fönstret inspektionsresultat.,

Ställ in inspektionsomfång och profil

Välj de filer du vill analysera (inspektionsomfång) och deinspektioner du vill köra (inspektionsprofil) enligt följande:

  1. i Android-vyn öppnar du ditt projekt och väljer projektet, en mapp eller en fil som du vill analysera.
  2. I menyraden väljer du analysera> inspektera kod.
  3. granska inställningarna i dialogrutan Ange Inspektionsomfång.

    Figur 3., Granska inställningarna för inspektionsomfång

    kombinationen av alternativ som visas i dialogrutan Ange Inspektionsomfång varierar beroende på om du har valt ett projekt, en mapp eller en fil. Du kan ändra vad du ska inspektera genom att välja en av de andra radioknapparna. Sespecify inspection scope dialog för en beskrivning av alla möjliga fält i dialogrutan Ange Inspektionsomfång.

    • när du väljer ett projekt, en fil eller en katalog visas sökvägen till projektet, filen eller katalogen du valde i dialogrutan Ange Inspektionsområde.,
    • när du väljer mer än ett projekt, en fil eller en katalog visas en markerad radioknapp för valda filer i dialogrutan Ange Inspektionsområde.
  4. under Inspektionsprofil, behåll standardprofilen (projekt standard).
  5. Klicka på OK för att köra inspektionen. Figur 4 visar ludd och andra IDE-inspektionsresultat från kontrollkoden run:

    Figur 4. Välj ett problem för att se dess upplösning

  6. i den vänstra rutan trädvyn, visa inspektionsresultaten genom att expandera och välja felkategorier, typer och problem.,

    den högra rutan visar inspektionsrapporten för den valda felkategorin, typen eller problemet och anger felets namn och plats. I förekommande fall visar inspektionsrapporten annan information, t.ex. ett problem synopsis, som hjälper dig att rätta till problemet.

  7. i den vänstra rutan trädvyn, högerklicka på en kategori, typ eller Fråga för att visa snabbmenyn.

    beroende på sammanhanget kan du göra alla eller några av följande: Hoppa till källa, utesluta och inkludera valda objekt, undertrycka problem, Redigera Inställningar, Hantera inspektionsvarningar och omdirigera en inspektion.,

För beskrivningar av vänstersidiga Verktygsradknappar, snabbmenyobjekt och inspektionsrapportfält, se fönstret Inspektionsverktyg.

använd ett anpassat omfång

Du kan använda ett av de anpassade omfång som finns i Android Studio enligt följande:

  1. i dialogrutan Ange Inspektionsomfång klickar du på anpassat omfång.
  2. Klicka på rullgardinsmenyn Anpassad räckvidd för att visa dina alternativ.

    Figur 5. Välj det anpassade omfång du vill använda

    • projektfiler: alla filer i det aktuella projektet.,
    • Projektproduktionsfiler: endast produktionsfilerna i det aktuella projektet.
    • projekt testfiler: endast testfilerna i det aktuella projektet. Se testtyper och plats.
    • öppna filer: endast de filer du har öppna i det aktuella projektet.
    • modul <din-modul>: endast filerna i motsvarande modulmapp i ditt nuvarande projekt.
    • aktuell fil: endast den aktuella filen i ditt nuvarande projekt. Visas när du har valt en fil eller mapp.,
    • klasshierarki: när du väljer den här och klickar på OK visas en dialogruta med alla klasser i det aktuella projektet. Använd fältet Sök efter namn i dialogrutan för att filtrera och välj de klasser som ska inspekteras. Om du inte filtrerar klasslistan inspekterar kodinspektionen alla klasser.
  3. Klicka på OK.

skapa ett anpassat omfång

När du vill inspektera ett urval av filer och kataloger som inte omfattas av någon av de tillgängliga anpassade omfånget kan du skapa ett anpassat omfång.,

  1. i dialogrutan Ange Inspektionsomfång väljer du anpassat omfång.
  2. Klicka på de tre punkterna efter rullgardinsmenyn Anpassad räckvidd.

    Figur 6. Ange dialogrutan Inspektionsomfång

    dialogrutan omfattningar visas.

    Figur 7. Skapa ett anpassat omfång

  3. Klicka på Lägg till för att definiera ett nytt omfång.
  4. i den resulterande rullgardinsmenyn Lägg till omfattning väljer du Lokal.

    både lokala och delade omfattningar används inom projektet för funktionen inspektera kod., En delad omfattning kan också användas med andra projektfunktioner som har ett tillämpningsområde fält. När du till exempel klickar på Redigera Inställningar för att ändra inställningarna för Sökanvändningar har den resulterande dialogrutan ett Omfångsfält där du kan välja ett delat omfång.

    figur 8. Välj ett delat omfång i dialogrutan Sök användningar

  5. ge omfånget ett namn och klicka på OK.

    den högra rutan i Scopes-dialogrutan fylls med alternativ som gör att du kan definiera det egna tillämpningsområdet.

  6. i rullgardinsmenyn väljer du Projekt.,

    en lista över tillgängliga projekt visas.

    Obs! Du kan skapa det anpassade utrymmet för projekt eller paket. Stegen är samma Hur som helst.

  7. expandera projektmapparna, välj vad du vill lägga till i det anpassade tillämpningsområdet och klicka på en av knapparna till höger.

    Figur 9. Definiera ett anpassat tillämpningsområde

    • inkludera: inkludera den här mappen och dess filer, men inkludera inte någon av dess undermappar.
    • inkludera rekursivt: inkludera den här mappen och alla dess filer och undermappar och deras filer.,
    • Uteslut: Uteslut den här mappen och dess filer, men utesluter inte någon av dess undermappar.
    • Uteslut rekursivt: Uteslut THS-mappen och alla dess filer och undermappar och deras filer.

    Figur 10 visar att huvudmappen är inkluderad och att java-mappen ingår rekursivt. Den blå indikerar delvis inkluderade mappar och den gröna indikerar rekursivt inkluderade mappar och filer.

    Figur 10., Exempelmönster för ett anpassat tillämpningsområde

    • Om du väljer java-mappen och klickar på Uteslut rekursivt, försvinner den gröna markeringen i java-mappen och alla mappar och filer under den.
    • Om du istället väljer den gröna markerade huvudaktiviteten.java-fil och klicka på Uteslut, MainActivity.java är inte längre grönt markerat men allt annat under java-mappen är grönt markerat.
  8. Klicka på OK. Det anpassade omfånget visas längst ned i rullgardinsmenyn.,

granska och redigera inspektionsprofiler

Android Studio kommer med ett urval av ludd och andra inspektionsprofiler som uppdateras genomandroid uppdateringar. Du kan använda dessa profiler som är eller redigera deras namn, beskrivningar, svårighetsgrader och omfattningar. Du kan också aktivera och inaktivera hela grupper av profiler eller enskilda profilerinom en grupp.

för att komma åt dialogrutan inspektioner:

  1. Välj analysera> inspektera kod.
  2. Klicka på mer i dialogrutan Ange omfattning under Inspektionsprofil.,

    dialogrutan inspektioner visas med en lista över de inspektioner som stöds och derascriptions.

    Figur 11. Inspektioner som stöds och deras beskrivningar

  3. välj rullgardinsmenyn profil för att växla mellan standardinspektioner (Android Studio) och Projektinspektioner (det aktiva projektet). Mer information finns i dialogrutan IntelliJSpecify Inspection Scope.
  4. i Inspektionsdialogrutan i den vänstra rutan väljer du en profilkategori på toppnivå eller utökar en grupp och väljer en specifik profil., När du väljer en profilkategori kan du redigera alla inspektioner i den kategorin som en enda inspektion.
  5. välj rullgardinsmenyn hantera för att kopiera, byta namn på, lägga till beskrivningar till, Exportera och importera inspektioner.
  6. när du är klar klickar du på OK.

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *