Îmbunătățiți-vă Codul cu verificări de scame

posted in: Articles | 0

pe lângă asigurarea faptului că aplicația dvs. îndeplinește cerințele sale funcționale prin construirea testelor, este important să vă asigurați, de asemenea, că codul dvs. nu are probleme structurale rulând codul prinlint. Instrumentul scame vă ajută să găsiți un cod slab structurat, care poate impactafiabilitatea și eficiența aplicațiilor dvs.

de exemplu, dacă fișierele de resurse XML conțin spații de nume neutilizate, acest lucru ocupă spațiu și suportă procesarea inutilă., Alte probleme structurale, cum ar fi utilizarea elementelor depreciate sau a apelurilor API care nu sunt acceptate de versiunile API țintă, ar putea duce la eșecul rulării corecte a codului.Scame vă poate ajuta să curețe aceste probleme.

pentru a îmbunătăți în continuare performanța linting, ar trebui, de asemeneaadăugați adnotări la codul dvs.Android Studio oferă un instrument de scanare cod numit lintcare vă poate ajuta să identificați și să corectați problemele cu calitatea structurală a codului dvs. fără a fi nevoie să executați aplicația sau să scrieți cazuri de testare., Fiecare problemă detectată de instrument este raportată cu un mesaj de descriere și un nivel de severitate, astfel încât să puteți prioritiza rapid îmbunătățirile critice care trebuie făcute. De asemenea, puteți reduce nivelul de severitate al unei probleme pentru a semnaliza problemele care nu sunt relevante pentru proiectul dvs. sau puteți ridica nivelul de severitate pentru a evidenția problemele specifice.instrumentul lint verifică fișierele sursă ale proiectului Android pentru posibile erori și îmbunătățiri de optimizare pentru corectitudine, securitate, performanță, utilizare, accesibilitate și internaționalizare., Când utilizați Android Studio, inspecțiile lint și IDE configurate rulează ori de câte ori vă construiți aplicația. Cu toate acestea, puteți rula manual inspecții sau rula scame din linia de comandă.

Notă: atunci Când codul este compilat în Android Studio, additionalIntelliJ cod inspecții rula tostreamline de revizuire a codului.figura 1 arată modul în care instrumentul scame procesează fișierele sursă ale aplicației.

Figura 1., Cod de scanare flux de lucru cu instrumentul scame

fișiere sursă aplicație fișierele sursă constau din fișiere care alcătuiesc proiectul Android, inclusiv Java, Kotlin, andXML fișiere, icoane, și ProGuard fișiere de configurare.lint.xmlfișier Un fișier de configurare pe care le puteți folosi pentru a specifica orice scame controalele pe care doriți toexclude și pentru a personaliza problema niveluri de severitate. Instrumentul scame un instrument static de scanare a codului pe care îl puteți rula pe proiectul dvs., Verificările linttool pentru probleme de cod structurale care ar putea afecta calitatea și performanța aplicației yourAndroid. Este recomandat să corectați erorile pe care scamele le detecteazăînainte de publicarea aplicației. Rezultatele verificării scame puteți vizualiza rezultatele din scame fie în consolă, fie în fereastra rezultatelor inspecției din Android Studio. Consultați rularea manuală a inspecțiilor.,

Run scame de la linia de comanda

Dacă sunteți folosind Android Studio sau Gradle, puteți utiliza Gradle înveliș de a invoca lint sarcina pentru proiectul dumneavoastră prin introducerea una din următoarele comenzi din directorul rădăcină al proiectului:

  • Pe Windows:
    gradlew lint
  • Pe Linux sau Mac:
    ./gradlew lint

ar trebui să vezi ceva asemănător cu următorul:

atunci Când scame instrument completeaza controalelor sale, acesta oferă căi pentru XML și HTML versiuni de scame raport., Puteți naviga apoi la raportul HTML și deschideți-l în browser-ul dvs., așa cum se arată în Figura 2.

Figura 2. Exemplu de cod HTML scame raport

în Cazul în care proiectul include construi variante, iar tu, în schimb, doriți să rulați lint sarcina doar pentru un anumit build variantă, trebuie să valorifice varianta numele și prefixul lint.

gradlew lintDebug

pentru a afla mai multe despre rularea sarcinilor Gradle din linia de comandă, citiți construiți aplicația din linia de comandă.,

rulați lint folosind instrumentul independent

dacă nu utilizați Android Studio sau Gradle, puteți utiliza instrumentul independent lint după ce instalați instrumentele SDK Android din Managerul SDK. Puteți localiza apoi instrumentul scame în directorul android_sdk/tools/.

Pentru a rula scame cu o listă de fișiere într-un director de proiect, utilizați următoarea comandă:

lint <project directory>

De exemplu, puteți emite următoarea comandă pentru a scana fișierele de submyproject director și subdirectoarele sale., ID-ul problemei MissingPrefix spune scame să scaneze numai atributele XML care lipsesc prefixul spațiului de nume Android.

lint --check MissingPrefix myproject 

Pentru a vedea lista completă de steaguri și argumente în linia de comandă suportate de către instrument, utilizați următoarele comenzi:

lint --help

următorul exemplu arată consola de ieșire atunci când scame comanda se execută împotriva aproject numit Cutremur.,

ieșire de mai sus enumeră patru avertismente și erori: trei avertismente (ManifestOrder, UsesMinSdkAttributes și UnusedResources) din proiect e AndroidManifest.xml fișier, și unul de avertizare (IconMissingDensityFolder) în Preferences.xml layout fișierul.

configurați scame pentru a suprima avertismentele

în mod implicit când executați o Scanare scame, instrumentul verifică toate problemele pe care le acceptă scame. De asemenea, puteți restricționa problemele de scame pentru a verifica și atribui nivelul de severitate pentru aceste probleme., De exemplu, puteți suprima verificarea scame pentru probleme specifice care nu sunt relevante pentru proiectul dvs. și puteți configura scame pentru a raporta probleme non-critice la un nivel mai scăzut de severitate.

puteți configura scame de verificare pentru diferite niveluri:

  • la nivel Global (întregul proiect)
  • modul de Proiect
  • modul de Producție
  • Test module
  • fișiere Deschise
  • ierarhie de Clase
  • Sistem de Control al Versiunii (VCS) domenii

Configurare scame în Android Studio

built-in scame instrument verifică codul tău în timp ce tu ești usingAndroid Studio., Puteți vizualiza avertismente și erori în două moduri:

  • ca text pop-up în Editorul de cod. Când scame găsește o problemă, evidențiazăcodul problematic în galben sau pentru probleme mai grave, subliniază codul în roșu.
  • în fereastra rezultatelor inspecției scame după ce faceți clic pe analizați > inspectați Codul.Consultați rularea manuală a inspecțiilor.

configurați fișierul lint

puteți specifica preferințele dvs. de verificare a scamelor în fișierul lint.xml. Dacă creați manual acest fișier, plasați-l în directorul rădăcină al proiectului dvs.,

lint.xml fișier este format dintr-un anexând <lint> părinte tag thatcontains unul sau mai mulți copii <issue> elemente. Scame definește un unic id valoarea atributului pentru fiecare <issue>.

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

puteți schimba o problemă este nivelul de severitate sau dezactiva scame de verificare pentru problema de setare severitatea atribut în <issue> tag-ul.,

sfat: pentru o listă completă de probleme acceptate de scame și ID-urile lor de problemă corespunzătoare, executați comanda lint --list.

scame de probă.fișierul xml

următorul exemplu arată conținutul unui fișier lint.xml.

configurați verificarea scame pentru fișierele sursă Java, Kotlin și XML

puteți dezactiva scame de la verificarea fișierelor sursă Java, Kotlin și XML.

Sfat: Puteți gestiona funcția de verificare a scamelor pentru fișierele sursă Java, Kotlin sau XML în dialogul preferințelor implicite., Selectați Fișierul > Alte Setări > Setări Implicite, apoi, în panoul din stânga Implicit de dialog Preferințe, selectați Editor > Inspecții.

Configurarea verificării scame în Java sau Kotlin

pentru a dezactiva verificarea scame în mod specific pentru o clasă sau o metodă din proiectul Android,Adăugați adnotarea @SuppressLint la codul respectiv.

următorul exemplu arată cum puteți dezactiva scame de verificare pentru NewApiproblema în onCreate metoda., Instrumentul scame continuă să verifice problema NewApi în alte metode din această clasă.,

următorul exemplu arată cum să dezactivați scame de verificare pentru ParserErrorproblema în FeedProvider clasa:

Pentru a suprima verificarea pentru toate scamele probleme în fișier, utilizați all cuvinte cheie,astfel:

Kotlin

@SuppressLint("all")

Java

@SuppressLint("all")

Configurarea scame verificarea în XML

puteți folosi tools:ignore atribut pentru a dezactiva scame de verificare pentru sectoare specifice de fișiere XML., Pune următoarele nume de valoare în lint.xml dosar și scame instrument recunoaște atribut:

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

următorul exemplu arată cum puteți dezactiva scame de verificare pentruUnusedResources problema în <LinearLayout> element de o XMLlayout fișier. ignore atribut este moștenită de copii elemente de parentelement în care atributul este declarat. În acest exemplu, verificarea scame este, de asemenea, dezactivată pentrucopil <TextView> element.,

pentru a dezactiva mai multe probleme, enumerați problemele de dezactivat într-un șir separat prin virgulă. De exemplu:

tools:ignore="NewApi,StringFormatInvalid"

Pentru a suprima verificarea pentru toate scamele probleme în XML element, utilizați all cuvinte cheie,astfel:

tools:ignore="all"

Configurare scame opțiuni cu Gradle

Android plugin pentru Gradle vă permite să configurați anumite scame opțiuni, cum ar fi care verifică pentru a rula sau de a ignora, folosind lintOptions {} bloc în modul de nivel build.gradle fișier., Următorul fragment de cod vă arată câteva dintre proprietățile pe care le puteți configura:

creați avertismente de bază

puteți face un instantaneu al setului curent de avertismente al proiectului dvs. și apoi utilizați instantaneul ca bază pentru viitoarele inspecții, astfel încât să fie raportate numai probleme noi. Imaginea de bază vă permite să începeți să utilizați scame pentru a eșua construirea fără a fi nevoie să vă întoarceți și să abordați mai întâi toate problemele existente.

pentru a crea un instantaneu de bază, modificați fișierul build.gradle al proiectului după cum urmează.,

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

atunci Când adăugați pentru prima dată pe această linie, lint-baseline.xml fișier este creat pentru a establishyour de bază. De atunci, instrumentele citesc doar fișierul pentru a determina linia de bază. Dacă dorițipentru a crea o nouă linie de bază, ștergeți manual fișierul și rulați din nou scame pentru a-l recrea.

apoi, executați scame din IDE (analizați > inspectați codul) sau din linia de comandă după cum urmează. Ieșirea imprimă locația fișierului lint-baseline.xml. Locația fișierului pentru configurarea dvs. poate fi diferită de cea afișată aici.,

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

Execută lint înregistrează toate problemele curente în lint-baseline.xml fișier. Setul de probleme curente se numește linia de bază și puteți verifica fișierul lint-baseline.xml în controlul versiunii dacă doriți să îl partajați cu alții.

Personalizați linia de bază

Dacă doriți să adăugați unele tipuri de probleme la linia de bază, dar nu toate, puteți specifica problemele de adăugat editând build.gradle, după cum urmează.,

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

după ce creați linia de bază, dacă adăugați avertismente noi la baza de cod, listează doar scamele nou introduse. când liniile de bază sunt în vigoare, veți obține un avertisment informațional care vă spune că una sau mai multe probleme au fost filtrate, deoarece acestea au fost deja enumerate în linia de bază. Motivul pentru thiswarning este de a ajuta să vă amintiți că ați configurat o valoare de referință, pentru că în mod ideal, ai vrea să rezolvi toate problemele la un moment dat.,

acest avertisment informațional nu numai că vă spune numărul exact de erori și avertismente care werefiltrate, de asemenea, ține evidența problemelor care nu mai sunt raportate. Aceste informații vă permit să știți dacă ați rezolvat probleme, astfel încât să puteți crea opțional linia de bază pentru a preveni revenirea erorii nedetectate.

notă: liniile de bază sunt activate atunci când executați inspecții în modul lot în IDE, dar sunt ignorate pentru verificările din editor care se execută în fundal atunci când editați un fișier., Motivul estecă liniile de bază sunt destinate cazului în care o bază de cod are un număr masiv de avertismente existente,dar doriți să remediați problemele la nivel local în timp ce atingeți codul.

rulați manual inspecțiile

puteți rula manual scame configurate și alte inspecții IDE selectând analizați > inspectați Codul. Rezultatele inspecției apar în fereastra rezultatelor inspecției.,

Setați domeniul de aplicare inspecție și profil

Selectați fișierele pe care doriți să o analizați (domeniul de aplicare inspecție) și theinspections doriți să rulați (inspecția de profil), după cum urmează:

  1. În Android vedere, deschideți proiectul dvs. și selectați proiectul, un folder sau un fișier pe care doriți să o analizați.
  2. din bara de meniu, selectați analizați > inspectați Codul.
  3. în dialogul specificați domeniul de inspecție, examinați setările.

    Figura 3., Examinați setările domeniului de inspecție

    combinația de opțiuni care apar în dialogul specificați domeniul de inspecție variază în funcție de dacă ați selectat un proiect, un dosar sau un fișier. Puteți schimba ce să inspectați selectând unul dintre celelalte butoane radio. Dialogul seespecify inspection scope pentru o descriere a tuturor câmpurilor posibile din dialogul specificați domeniul de inspecție.

    • când selectați un proiect, fișier sau director, dialogul specificați domeniul de inspecție afișează calea către Proiectul, fișierul sau directorul selectat.,
    • când selectați mai multe proiecte, fișiere sau directoare, dialogul specificați domeniul de inspecție afișează un buton radio verificat pentru fișierele selectate.
  4. sub Profil de inspecție, păstrați profilul implicit (implicit proiect).
  5. Faceți clic pe OK pentru a rula inspecția. Figura 4 prezintă scame și alte IDE rezultatele inspecției din Inspecta Codul run:

    Figura 4. Selectați o problemă pentru a vedea rezoluția acesteia

  6. în vizualizarea arborelui panoului din stânga, vizualizați rezultatele inspecției extinzând și selectând categorii de erori, tipuri și probleme.,

    panoul din dreapta afișează raportul de inspecție pentru categoria de eroare, tipul sau problema selectată și furnizează numele și locația erorii. Dacă este cazul, raportul de inspecție afișează alte informații, cum ar fi un rezumat al problemei, pentru a vă ajuta să corectați problema.

  7. în vizualizarea arborelui panoului din stânga, faceți clic dreapta pe o categorie, tip sau problemă pentru a afișa meniul contextual.

    în funcție de context, puteți face toate sau unele dintre următoarele: săriți la sursă, excludeți și includeți elementele selectate, suprimați problemele, Editați setările, Gestionați alertele de inspecție și rulați din nou o inspecție.,

pentru descrieri ale butoanelor barei de instrumente din stânga, ale elementelor din meniul contextual și ale câmpurilor raportului de inspecție, consultați fereastra instrumentului de inspecție.

utilizați un domeniu personalizat

puteți utiliza unul dintre domeniile personalizate furnizate în Android Studio, după cum urmează:

  1. În fereastra de dialog specificați domeniul de inspecție, faceți clic pe domeniu personalizat.
  2. Faceți clic pe lista derulantă domeniu personalizat pentru a afișa opțiunile.

    Figura 5. Selectați domeniul personalizat pe care doriți să îl utilizați

    • Fișiere proiect: toate fișierele din proiectul curent.,
    • fișiere de producție de proiect: numai fișierele de producție din proiectul curent.
    • fișiere de testare proiect: numai fișierele de testare din proiectul curent. A se vedea tipurile de testare și locația.
    • deschideți fișiere: numai fișierele pe care le-ați deschis în proiectul curent.
    • Modulul <ta-modulul>: Numai fișierele în modul corespunzător dosarul în proiectul curent.
    • fișierul curent: numai fișierul curent din proiectul dvs. curent. Apare atunci când aveți un fișier sau un folder selectat.,
    • ierarhia claselor: când o selectați pe aceasta și faceți clic pe OK, apare un dialog cu toate clasele din proiectul curent. Utilizați câmpul Căutare după nume din dialogul pentru a filtra și selecta clasele de inspectat. Dacă nu filtrați lista de clase, code inspection inspectează toate clasele.
  3. Faceți clic pe OK.

creare domeniu personalizat

când doriți să inspectați o selecție de fișiere și directoare care nu sunt acoperite de niciunul dintre domeniile personalizate Disponibile în prezent, puteți crea un domeniu personalizat.,

  1. În fereastra de dialog specificați domeniul de inspecție, selectați domeniul de aplicare personalizat.
  2. Faceți clic pe cele trei puncte după lista derulantă Custom Scope.

    Figura 6. Specificați dialogul domeniu de inspecție

    apare dialogul domenii.

    Figura 7. Creați un domeniu personalizat

  3. Faceți clic pe Adăugare pentru a defini un domeniu nou.
  4. în lista derulantă Adăugare domeniu rezultat, selectați Local.

    atât domeniile locale, cât și cele partajate sunt utilizate în cadrul proiectului pentru caracteristica Inspect Code., Un domeniu de aplicare partajat poate fi utilizat și cu alte caracteristici ale proiectului care au un domeniu de aplicare. De exemplu, când faceți clic pe Editare setări pentru a modifica setările pentru utilizări de căutare, dialogul rezultat are un câmp de domeniu în care puteți selecta un domeniu partajat.

    figura 8. Selectați un domeniu partajat din dialogul găsiți utilizări

  5. dați domeniului un nume și faceți clic pe OK.

    panoul din dreapta al dialogului Scopes se populează cu opțiuni care vă permit să definiți domeniul personalizat.

  6. din lista derulantă, selectați proiect.,

    apare o listă de proiecte disponibile.Notă: Puteți crea domeniul personalizat pentru proiecte sau pachete. Pașii sunt la fel, fie un fel.

  7. extindeți folderele proiectului, Selectați ce doriți să adăugați la domeniul personalizat și faceți clic pe unul dintre butoanele din dreapta.

    Figura 9. Definiți un domeniu personalizat

    • Include: includeți acest folder și fișierele sale, dar nu includeți niciunul dintre subfolderele sale.
    • Include recursiv: Include acest folder și toate fișierele și subfolderele sale și fișierele lor.,
    • Exclude: excludeți acest folder și fișierele sale, dar nu excludeți niciunul dintre subfolderele sale.
    • Exclude recursiv: Exclude folderul ths și toate fișierele și subfolderele sale și fișierele lor.figura 10 arată că folderul principal este inclus și că folderul java este inclus recursiv. Albastrul indică folderele parțial incluse, iar verdele indică folderele și fișierele incluse recursiv.

      Figura 10., Exemplu de model pentru un domeniu personalizat

      • dacă selectați folderul java și faceți clic pe Exclude recursiv, evidențierea verde dispare în folderul java și în toate folderele și fișierele de sub el.
      • dacă selectați în schimb culoarea verde evidențiată Principalactivitate.fișier java și faceți clic pe Exclude, Principalactivitate.java nu mai este verde evidențiat, dar orice altceva din folderul java este evidențiat verde.
    • Faceți clic pe OK. Domeniul personalizat apare în partea de jos a listei derulante.,

examinați și editați profilurile de inspecție

Android Studio vine cu o selecție de scame și alte profiluri de inspecție care sunt actualizate prinactualizări Android. Puteți utiliza aceste profiluri ca atare sau le puteți edita numele, descrierile, severitățile, andscopes. De asemenea, puteți activa și dezactiva grupuri întregi de profiluri sau profiluri individualeîn cadrul unui grup.

pentru a accesa dialogul inspecțiilor:

  1. selectați analiza > inspectați Codul.
  2. în fereastra de dialog specificați domeniul de aplicare din Profilul de inspecție, faceți clic pe Mai multe.,

    dialogul inspecțiilor apare cu o listă a inspecțiilor acceptate și a descrierilor acestora.

    Figura 11. Inspecțiile acceptate și descrierile lor

  3. Selectați lista derulantă Profil pentru a comuta între inspecțiile implicite (Android Studio) și cele implicite ale proiectului (proiectul activ). Pentru mai multe informații, consultați această pagină de dialog IntelliJSpecify Inspection Scope.
  4. în dialogul inspecții din panoul din stânga, selectați o categorie de profil de nivel superior sau extindeți un grup și selectați un profil specific., Când selectați o categorie de profil, puteți edita toate inspecțiile din categoria respectivă ca o singură inspecție.Selectați lista derulantă gestionare pentru a copia, redenumi, adăuga descrieri, exporta și importa inspecții.
  5. când ați terminat, faceți clic pe OK.

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *