I tillegg til å sikre din app oppfyller sine funksjonelle krav ved å bygge tester, det’simportant at du også sikre at koden har ingen strukturelle problemer ved å kjøre koden throughlint. Lo-verktøyet hjelper deg med å finne dårlig strukturert kode som kan påvirke thereliability og effektiviteten av din Android-apper, og gjøre koden vanskeligere å opprettholde.
For eksempel, hvis din XML-ressurs-filer inneholder ubrukte navnerom, dette tar opp plass og incursunnecessary behandling., Andre strukturelle problemer, som for eksempel bruk av utdatert elementer eller API callsthat er ikke støttes av mål-API-versjoner, kan føre til at koden ikke å kjøre riktig.Lo kan hjelpe deg å rydde opp i disse problemene.
for Å ytterligere forbedre linting ytelse, bør du alsoadd kommentarer til koden din.
Oversikt
Android-Studio gir en kode skanning verktøy kalt lintthat kan hjelpe deg med å identifisere og korrigere problemer med den strukturelle kvaliteten på codewithout at du trenger å utføre app eller skrive test tilfeller., Hvert problem oppdaget av verktøyet isreported med en beskrivelse melding og en alvorlighetsgrad, slik at du raskt kan prioritere thecritical forbedringer som må gjøres. Også, kan du redusere alvorlighetsgraden av et problem toignore problemer som ikke er relevante for prosjektet, eller øke alvorlighetsgraden tohighlight spesifikke problemer.
lo-verktøyet sjekker din Android prosjekt som kilde filer for potensielle feil og optimalisering forbedringer for nøyaktighet, sikkerhet, ytelse, brukervennlighet, tilgjengelighet, og internasjonalisering., Når du bruker Android Studio, konfigurert lo og IDE-inspeksjoner kjøre når du bygger din app. Imidlertid, kan du kjøre inspeksjoner eller kjøre lo fra kommandolinjen.
Merk: Når koden er samlet i Android Studio, additionalIntelliJ kode inspeksjoner kjøre tostreamline kode gjennomgang.
Figur 1 viser hvordan lo-verktøy som behandler søknaden kilde filer.
Figur 1., Kode skanning arbeidsflyt med lo-verktøy
Program kilde filer kildefilene bestå av filer som gjør opp din Android-prosjektet, inkludert Java, Kotlin, andXML filer, ikoner, og ProGuard konfigurasjonsfiler.lint.xml
fil fra En konfigurasjonsfil som du kan bruke til å angi en lo som sjekker at du vil toexclude og for å tilpasse problem alvorlighetsgrad. Lo-verktøyet En statisk kode skanner verktøy som du kan kjøre på Android-prosjekt-enten fra kommandolinjen eller inAndroid Studio (se Manuelt kjøre inspeksjoner)., Den linttool sjekker for strukturelle etiske problemer som kan påvirke kvaliteten og ytelsen til yourAndroid programmet. Det er sterkt anbefalt at du korrigere eventuelle feil som lo detectsbefore publisering din søknad. Resultatene av lo sjekker Du kan også vise resultatene fra lo enten i konsollen eller på Inspeksjon Resultater med vindu i Android-Studio. Se Manuelt kjøre inspeksjoner.,
Kjør lo fra kommandolinjen
Hvis du bruker Android Studio eller Gradle, kan du bruke Gradle-wrapper for å påkalle lint
oppgave for prosjektet ved å legge inn en av følgende kommandoer fra rotkatalogen på prosjektet ditt:
- På Windows:
gradlew lint
- På Linux eller Mac:
./gradlew lint
Du bør se utgang som ligner på følgende:
Når lo-verktøyet fullfører sin undersøkelse, det gir stier til XML og HTML-versjoner av lo-rapporten., Du kan deretter navigere til HTML-rapporten, og åpne den i nettleseren din, som vist i figur 2.
Figur 2. Eksempel på HTML-lo rapport
Hvis prosjektet omfatter bygge-varianter, og du i stedet ønsker å kjøre lint
oppgave for bare en bestemt bygge variant, må du kapitalisere variant navn og prefiks det med lint
.
gradlew lintDebug
for Å lære mer om å kjøre Gradle oppgaver fra kommando-linjen, lese Bygge Din App fra kommandolinjen.,
Kjør lo ved hjelp av den frittstående verktøy
Hvis du ikke bruker Android Studio eller Gradle, kan du bruke den frittstående lo verktøyet når du har installert Android SDK Verktøy fra SDK Manager. Du kan deretter finne lo-verktøyet i android_sdk/tools/
– katalogen.
for Å kjøre lo, mot en liste over filene i et prosjekt katalogen, bruker du følgende kommando:
lint <project directory>
For eksempel, kan du sende inn følgende kommando for å skanne filene undermyproject
mappe og dens undermapper., Problemet ID MissingPrefix
forteller lo å bare skanner for XML-attributter som mangler Android namespace prefix.
lint --check MissingPrefix myproject
for Å se den fulle listen av flagg og kommandolinje-argumenter som støttes av verktøyet, kan du bruke thefollowing kommando:
lint --help
følgende eksempel viser konsollen utgang når lo-kommandoen kjøres mot aproject som kalles Jordskjelv.,
output ovenfor viser fire advarsler og ingen feil: tre advarsler (ManifestOrder
, UsesMinSdkAttributes
, og UnusedResources
) i prosjektet AndroidManifest.xml
fil, og en advarsel (IconMissingDensityFolder
) i Preferences.xml
oppsett-filen.
Konfigurer lo til å undertrykke advarsler
som standard når du kjører en lo skanning verktøyet sjekker for alle saker som lo støtter. Du kan også begrense problemer for lo å sjekke og angi alvorlighetsgraden for disse problemene., For eksempel, du kan undertrykke lo sjekker for spesifikke problemer thatare ikke er relevante for prosjektet, og du kan konfigurere lo til rapporten, ikke-kritiske problemer på en lowerseverity nivå.
Du kan konfigurere lo kontrollere for ulike nivåer:
- Globalt (hele prosjektet)
- Prosjekt modulen
- Produksjon-modulen
- Test modulen
- Åpne filer
- Klasse hierarki
- versjonskontrollsystem (VCS) scopes
Konfigurer lo i Android Studio
Den innebygde lo-verktøyet kontrollerer koden din mens du er usingAndroid Studio., Du kan vise advarsler og feil på to måter:
- Som popup-tekst i Kode-Editoren. Når lo finner et problem, det highlightsthe problematisk kode i gult, eller for mer alvorlige problemer, det understreker koden i rødt.
- I lo-Inspeksjon Resultater vinduet når du klikker Analysere > Inspisere Koden.Se Manuelt kjøre inspeksjoner.
Konfigurer lo-fil
Du kan angi lo kontrollere preferanser i lint.xml
– filen. Hvis youare å opprette denne filen manuelt, kan du plassere det i rotkatalogen på din Android-prosjekt.,
lint.xml
fil består av et vedlagt <lint>
overordnet kode thatcontains ett eller flere barn <issue>
– elementer. Lo definerer en unik id
attributt-verdi for hver <issue>
.
<?xml version="1.0" encoding="UTF-8"?> <lint> <!-- list of issues to configure --></lint>
Du kan endre et problem er alvorlighetsgrad eller deaktivere lo sjekke om problemet ved å angi alvorlighetsgraden attributtet i <issue>
– tag-en.,
Tips: For en full liste av lo-støttet problemer og deres tilsvarende problem-Id, kan du kjøre lint --list
– kommandoen.
Eksempel lo.xml-fil
følgende eksempel viser innholdet i en lint.xml
– filen.
Konfigurer lo sjekker for Java, Kotlin, og XML-kilde filer
Du kan deaktivere lo fra sjekke din Java, Kotlin, og XML-kilde filer.
Tips: Du kan administrere lo kontrollere at funksjonen for Java, Kotlin, eller XML-kilde filer i Standard Innstillinger-dialogboksen., Velg Fil > Andre Innstillinger > Standard Innstillinger, og klikk i den venstre ruten på Standard Innstillinger i dialogboksen, velg Editor > Inspeksjoner.
Konfigurere lo kontroll i Java eller Kotlin
for Å deaktivere lo sjekke spesielt for en klasse eller metode i Android-prosjektet,legge til @SuppressLint
kommentar til denne koden.
følgende eksempel viser hvordan du kan slå av lo-kontroll for NewApi
problemet i onCreate
metode., Lo-verktøyet fortsetter å se etter NewApi
problemet i andre metoder i denne klassen.,
følgende eksempel viser hvordan du kan deaktivere lo sjekker for ParserError
problemet i FeedProvider
class:
for Å undertrykke sjekker for alle lo problemer i filen, kan du bruke all
søkeord,som dette:
Kotlin
@SuppressLint("all")
Java
@SuppressLint("all")
Konfigurere lo kontroll i XML
Du kan bruke tools:ignore
attributtet for å deaktivere lo sjekker for bestemte deler av XML-filer., Legg følgende navnerom verdi i lint.xml
fil, slik lo-verktøyet gjenkjenner attributt:
namespace xmlns:tools="http://schemas.android.com/tools"
følgende eksempel viser hvordan du kan slå av lo-kontroll forUnusedResources
problemet i <LinearLayout>
– element av en XMLlayout fil. ignore
attributtet er arvet av barn elementer av parentelement der attributtet er deklarert. I dette eksemplet, lo-sjekk er også deaktivert for thechild <TextView>
– element.,
for Å deaktivere mer enn ett problem, liste problemene for å deaktivere i en kommadelt streng. Forexample:
tools:ignore="NewApi,StringFormatInvalid"
for Å undertrykke sjekker for alle lo problemer i XML-element, kan du bruke all
søkeord,som dette:
tools:ignore="all"
Konfigurer lo valg med Gradle
Android-plugin-modulen for Gradle tillater deg å konfigurere enkelte lo valg, for eksempel som sjekker for å kjøre eller ignorere, bruk av lintOptions {}
blokker i din modul-nivå build.gradle
– filen., Følgende kodebit viser deg noen av de egenskapene du kan konfigurere:
Opprett advarsler baseline
Du kan ta et bilde av ditt prosjekt gjeldende sett av advarsler, og deretter bruke snapshot som en baseline for fremtidig inspeksjon kjører, slik at bare nye problemer som er rapportert. Baseline-snapshot kan du begynne å bruke klut til å mislykkes bygge uten å måtte gå tilbake og ta for seg alle eksisterende problemer først.
for Å lage en baseline snapshot, endre ditt prosjekt build.gradle
– filen som følger.,
android { lintOptions { baseline file("lint-baseline.xml") }}
Når du først legge til denne linjen, lint-baseline.xml
fil som er opprettet for å establishyour baseline. Fra da av, verktøy bare for å lese filen for å bestemme baseline. Hvis du wantto opprette en ny baseline, manuelt slette filen og kjøre lo igjen for å gjenskape det.
Så, kjør lo-fra IDE (Analysere > Inspisere Koden) eller fra kommandolinjen som følger. Utdata skrives ut plasseringen av lint-baseline.xml
– filen. Filen stedet for din konfigurasjon kan være forskjellig fra det som er vist her.,
$ ./gradlew lintDebug...Wrote XML report to file:///app/lint-baseline.xmlCreated baseline file /app/lint-baseline.xml
å Kjøre lint
registrerer alle problemer i thecurrent lint-baseline.xml
– filen. Sett av aktuelle problemstillinger er kalt baseline, og du kan kontrollere lint-baseline.xml
fil i versjonen kontroll hvis du vil dele det med andre.
Tilpass baseline
Hvis du ønsker å legge til noen problem typer til referansebanen, men ikke alle av dem, kan du angi de saker for å legge til, ved å redigere prosjektet er build.gradle
, som følger.,
android { lintOptions { check 'NewApi', 'HandlerLeak' baseline file("lint-baseline.xml") }}
Etter at du har opprettet baseline, hvis du legger til nye advarsler til codebase, lo lister onlythe nylig introduserte bugs.
Baseline advarsel
Når grunnlinjene er i kraft, får du en informativ advarsel som forteller deg at en eller moreissues ble filtrert ut fordi de allerede var oppført i baseline. Grunnen til thiswarning er å hjelpe deg å huske at du har konfigurert en baseline, fordi en ideell, youwould ønsker å løse alle problemer på enkelte punkt.,
Denne informative advarsel ikke bare fortelle deg nøyaktig antall feil og advarsler som werefiltered ut, det holder også styr på problemer som rapporteres ikke lenger. Denne beskjed letsyou vite om du faktisk har problemer som er løst, så kan du eventuelt re-opprette baseline til preventthe feil fra å komme tilbake uoppdaget.
Merk:Grunnlinjene er aktivert når du kjører inspeksjoner i batch-modus i IDE, men de er ignoredfor i-redaktør sjekker som kjører i bakgrunnen når du redigerer en fil., Grunnen til isthat grunnlinjene er beregnet for tilfeller der en codebase har et enormt antall av eksisterende advarsler,men du ikke ønsker å løse problemene lokalt, mens du trykker inn koden.
Manuelt kjøre inspeksjoner
Du kan manuelt kjøre konfigurert lo og andre IDE inspeksjoner ved å velge Analysere > Inspisere Koden. Resultatene av inspeksjonen vises i kontrollen vinduet.,
Angi inspeksjon omfang og profil
Velg filene du ønsker å analysere (inspeksjon omfang) og theinspections du ønsker å kjøre (inspeksjon profile), som følger:
- I Android vise, åpne prosjektet, og velg prosjekt, en mappe eller en fil som du ønsker å analysere.
- – menyen, velg Analysere > Inspisere Koden.
- I Angi Inspeksjon Omfang dialog, gå gjennom innstillingene.
Figur 3., Gjennom inspeksjon omfang innstillinger
kombinasjonen av alternativene som vises i boksen Angi Inspeksjon Omfang dialog varierer avhengig av om du har valgt et prosjekt, en mappe eller en fil. Du kan endre hva som skal inspisere ved å velge en av de andre radio-knapper. SeeSpecify inspeksjon omfang dialogboksen for en beskrivelse av alle mulige felt på Angi Inspeksjon Omfang dialog.
- Når du velger ett prosjekt, en fil eller en katalog, Angi Inspeksjon Omfang dialogboksen viser banen til Prosjektet, Fil eller Mappe du har valgt.,
- Når du velger mer enn ett prosjekt, en fil eller en katalog, Angi Inspeksjon Omfang dialogboksen viser en kontrollert radio-knappen for bestemte filer.
- Under Inspeksjonen profil, holde den standard profilen (Project Standard).
- Klikk OK for å kjøre inspeksjon. Figur 4 viser lo og andre IDE-inspeksjon resultater fra Inspisere Koden kjøre:
Figur 4. Velg et problem for å se dens oppløsning
- I den venstre ruten trevisningen, og vise inspeksjon resultater ved å utvide og velge feil kategorier, typer og problemer.,
Den høyre ruten viser inspeksjonsrapport for den valgte feil kategori, type, eller problemet, og gir den navnet og plasseringen av feil. Der det er aktuelt, inspeksjon rapporten viser annen informasjon, for eksempel et problem synopsis for å hjelpe deg å løse problemet.
- I den venstre ruten trevisningen, høyre-klikker på en kategori, type, eller problemet for å vise kontekstmenyen.
Avhengig av konteksten, kan du gjøre alt eller noe av følgende: gå til kilden, ekskludere og inkludere valgte elementer, undertrykke problemer, redigere innstillinger, administrere inspeksjon varsler, og kjører en inspeksjon.,
hvis du vil ha beskrivelser av venstre-knappene på Verktøylinjen, kontekst menyelementer og inspeksjon rapport felt, kan du se Inspeksjon Verktøyet Vinduet.
Bruk en tilpasset omfanget
Du kan bruke en av de tilpassede scopes gitt i Android Studio, som følger:
- I Angi Inspeksjon Omfang dialogboksen, klikker du Egendefinert nivå.
- Klikk Egendefinert område drop-down listen til å vise valg.
Figur 5. Velg egendefinert område du ønsker å bruke
- Prosjekt Filer: Alle filene i den aktuelle prosjektet.,
- Prosjekt Produksjon Filer: Bare produksjon av filene i den nåværende prosjekt.
- Prosjekt Test Filer: Bare teste filer i det aktuelle prosjektet. Se Test typer og plassering.
- Åpne Filer: Bare filene du har åpnet i det aktuelle prosjektet.
- Modulen <dine-modulen>: Bare de filene som er i tilsvarende modul mappe i din nåværende prosjekt.
- Gjeldende Fil: Bare den aktuelle filen i gjeldende prosjekt. Vises når du har en fil eller mappe er valgt.,
- Klasse Hierarki: Når du velger dette, og klikker OK, vises en dialogboks med alle klassene i det aktuelle prosjektet. Bruke Søk på Navn-feltet i dialogboksen for å filtrere og velge ut klasser for å inspisere. Hvis du ikke filtrere klasser liste, kode inspeksjon inspiserer alle klasser.
- Klikk på OK.
Opprett et egendefinert område
Når du ønsker å kontrollere et utvalg av filer og kataloger som ikke er dekket av noen av de tilgjengelige egendefinerte scopes, kan du opprette et egendefinert område.,
- I Angi Inspeksjon Omfang dialogboksen, velg Egendefinert område.
- Klikk på de tre prikkene etter Tilpasset Omfanget drop-down listen.
Figur 6. Angi Inspeksjon Omfang dialog
Det Scopes dialogboksen vises.
Figur 7. Opprette et egendefinert område
- Klikk på Legg til for å angi en ny omfang.
- I den resulterende Legge til Omfang rullegardinlisten, velg Lokalt.
Både lokale og felles scopes er brukt i prosjektet for å Inspisere Koden for funksjonen., En Felles omfang kan også brukes med andre prosjekt som har som har et omfang feltet. For eksempel, når du klikker på Rediger Innstillinger hvis du vil endre innstillingene for å Finne Bruksområder, dialogen har et Omfang felt der du kan velge en felles omfang.
Figur 8. Velg en delt omfang fra Finn Bruksområder dialog –
– >
- Gi omfang et navn, og klikk OK.
Den høyre ruten i den Scopes dialogboksen fyller ut med alternativer som gjør det mulig for deg å angi egendefinerte omfang.
- Fra drop-down listen, velger du Prosjektet.,
En liste over tilgjengelige prosjekter vises.
Merk: Du kan opprette egendefinerte rom for prosjekter eller pakker. Fremgangsmåten er den samme uansett.
- Utvide prosjektet mapper, velger du hva du vil legge til egendefinerte omfang, og klikker på en av knappene på høyre side.
Figur 9. Definere et tilpasset omfanget
- ta med: ta med denne mappen og filene, men må ikke inneholde noen av dens undermapper.
- Inkluder Undermapper: Inkludere denne mappen og alle dens filer og undermapper og filer.,
- Utelat: Ekskludere denne mappen og filene, men ikke ekskluderer noen av dens undermapper.
- Utelat Undermapper: Ekskludere denne mappen og alle dens filer og undermapper og filer.
Figur 10 viser at den viktigste mappen er inkludert, og at java-mappen, inkludert undermapper. Den blå indikerer delvis inkludert mapper og grønt indikerer inkluderte mapper med undermapper og filer.
Figur 10., Eksempel mønster for en tilpasset omfanget
- Hvis du velger java-mappen, og klikk på Utelat Undermapper, den grønne markeringen går unna på java-mappen, og alle mapper og filer i den.
- Hvis du i stedet velger den grønne MainActivity.java-filen og klikk på Utelat, MainActivity.java, er ikke lenger i grønne, men alt annet under java-mappen er grønne.
- Klikk på OK. Tilpasset omfanget vises nederst i drop-down listen.,
se gjennom og rediger inspeksjon profiler
Android-Studio kommer med et utvalg av lo og andre inspeksjon profiler som er oppdatert throughAndroid oppdateringer. Du kan bruke disse profilene som er eller redigere sine navn, beskrivelser, alvorlighetsgrad, andscopes. Du kan også aktivere og deaktivere hele grupper av profiler eller individuelle profileswithin en gruppe.
for Å få tilgang til Inspeksjoner dialogboksen:
- Velg Analysere > Inspisere Koden.
- I Angi Omfang dialogen under Inspeksjon Profil, klikk på Mer.,
Den Inspeksjoner dialogboks med en liste over støttede inspeksjoner og theirdescriptions.
Figur 11. Støttet tilsyn og deres beskrivelser
- Velg Profilen drop-down listen til å veksle mellom Standard (Android Studio) og Prosjekt-Standard (den aktive prosjekt) inspeksjoner. For mer informasjon, se denne IntelliJSpecify Inspeksjon Omfang Dialog side.
- I Inspeksjoner dialogen i den venstre ruten, velger du en topp-nivå profil kategori, eller utvide en gruppe og velge en bestemt profil., Når du velger en profil kategori, kan du redigere alle inspeksjoner i den kategorien som en enkel inspeksjon.
- Velg Administrer drop-down listen til å kopiere, endre navn, legge til beskrivelser, eksportere og importere inspeksjoner.
- Når du er ferdig, klikker du OK.
Legg igjen en kommentar