Crash Reporting cu Crashlytics

În Android, există o mare probabilitate ca aplicația dvs. să se prăbușească chiar și după ce ați testat-o ​​manual și automat. Acest lucru se datorează unor factori precum incompatibilitatea cu diferite niveluri API, dimensiunile ecranului, memoria telefonului, disponibilitatea senzorilor hardware și personalizarea furnizorilor pentru a se potrivi dispozitivelor lor individuale. Crashlytics vă va ajuta să diagnosticați aceste probleme.

Accidentele fac utilizatorii tristi si furiosi. S-ar putea chiar să doriți să dezinstalați aplicația dacă acest lucru se întâmplă frecvent. Apoi acordați aplicației dvs. o revizuire necorespunzătoare, dați feedback negativ despre magazinul de jocuri și apoi instalați aplicația concurentului dvs.! În această piață de aplicații deja aglomerată și competitivă, a face ca utilizatorii dvs. să fie fericiți este vital pentru succesul aplicației.

Este foarte imposibil ca aplicația dvs. să nu se blocheze, dar păstrarea la minimum a accidentelor este foarte importantă. În timpul dezvoltării și testării, s-ar putea să nu fi întâmpinat un accident special, dar în timpul producției atunci când utilizatorii dvs. o utilizează în mod activ, veți începe să vedeți căderi. Utilizarea unei soluții robuste și puternice de raportare a accidentelor este esențială pentru colectarea de informații despre prăbușirea aplicațiilor dvs. și pentru a vă oferi o imagine asupra modului în care puteți remedia problema pentru a vă menține fericiți utilizatorii. 

În acest tutorial, vă vom arăta cum să utilizați Crashlytics, o soluție de raportare gratuită și puternică, dar ușoară, care este inclusă în setul de instrumente Fabric dezvoltat recent de Google. Vom crea o aplicație simplă care se blochează când se face clic pe un buton, pentru a putea obține o perspectivă asupra accidentului cu Crashlytics. 

1. De ce să folosiți crashlytics?

Iată câteva motive pentru care ați putea dori să o utilizați: 

  • Ușor de configurat
  • Aplicații, utilizatori și prăbușiri nelimitate 
  • Alerte în timp real
  • Raportarea în timp real a accidentelor
  • Analiza accidentelor în profunzime
  • Urmărirea excepțiilor
  • Raport ușor de împărțire
  • Distribuirea aplicațiilor beta
  • O aplicație mobilă gratuită pentru a monitoriza aplicația în deplasare și pentru a obține alerte în timp real pentru probleme grave
  • Liber!

2. Creați un proiect Android Studio

În primul rând, lansați Android Studio și creați un nou proiect "CrashlyticsTutorial"cu o activitate goală numită Activitate principala.

3. Instalarea plug-in-ului Fabric

Mai întâi trebuie să aveți un cont la Fabric pentru a integra Crashlytics în aplicația dvs. Completați detaliile necesare și vă vom trimite un e-mail de confirmare. 

Puteți alege fie să integrați Fabric cu proiectul dvs. fie prin descărcarea pluginului Android Studio, care va modifica automat fișierele necesare integrării, fie prin modificarea manuală a build.gradle fişier. Pentru acest tutorial, vom folosi cea mai ușoară cale, care este cu plugin-ul. 

După ce faceți clic pe link-ul de confirmare, veți fi ghidat să instalați pluginul:

Pasul 1

Selectați Android ca platformă. 

Pasul 2

Pentru utilizatorii de Mac: selectați Preferințe ...  de la Android Studio / IntelliJ meniul. Utilizatori Windows și Linux: selectați Setări de la Fişier meniul. 

Pasul 3

Selectați Plugin-uri, apasă pe Răsfoiți depozitele , și căutați "Fabric pentru Android".

Pasul 4

Apasă pe Instalare plugin pentru a descărca și instala pluginul. 

4. Integrarea Crashlytics

Pasul 1

Pentru a începe integrarea Crashlytics în proiectul dvs. Android Studio, introduceți-vă datele de conectare pentru a vă conecta. 

Pasul 2

Selectați proiectul Android CrashlyticsTutorial și faceți clic pe Următor → buton. 

Pasul 3

Fabric va lista toate organizațiile pe care le-ați înregistrat, deci selectați organizația cu care doriți să asociați aplicația și faceți clic pe Următor → buton.

Pasul 4

Fabric va lista apoi toate kiturile sale. Deoarece acesta este un tutorial Crashlytics, selectați Crashlytics și faceți clic pe Următor → buton. 

Pasul 5

Apasă pe Instalare buton. 

Fabric vrea să facă schimbări în dvs. construi.gradle, MainActivity.java și AndroidManifest.xml fișiere,astfel încât faceți clic pe aplica pentru ca schimbările să se întâmple.  

Pasul 6

Construiți și executați aplicația dvs. pentru a vă asigura că totul este configurat corect. Dacă aplicația dvs. a fost configurată cu succes, veți primi un e-mail trimis instantaneu la adresa de e-mail pe care ați utilizat-o pentru a vă înscrie la Fabric. 

5. Vizualizarea tabloului de bord

Acum că Crashlytics a fost integrat cu succes în proiectul nostru, vizitați tabloul de bord principal pentru a vedea aplicația noastră: CrashlyticsTutorial

Dacă faceți clic pe un proiect, se va deschide tabloul de bord Crashlytics, care va lista problemele întâlnite. Până acum nu avem; mai târziu, vom revizui acest tablou de bord atunci când am creat în mod deliberat un accident. 

În interiorul tabloului de bord Crashlytics, veți obține o prezentare generală a accidentelor. Puteți filtra accidentele în funcție de versiuni, evenimente, zile, starea (deschisă, închisă sau totală), dispozitiv, sistem de operare sau activitate utilizator (deși kitul Răspunsuri trebuie să fie activat pentru a utiliza această funcție). De asemenea, puteți vedea numărul total de accidente, non-fatale, utilizatori afectați și multe altele. 

Setul Răspunsuri vă oferă statistici în timp real cu privire la modul în care este utilizată aplicația dvs., inclusiv numere active de utilizatori, lungimea sesiunii, evaluarea stabilității și reținerea. 

6. În mod deliberat Crearea unui accident

Înțelegerea diferenței dintre accidente și probleme

Diferența dintre accidente și probleme este că Crashlytics combină accidente similare în probleme (anumite linii de cod care par să declanșeze același tip de accident). De exemplu, dacă ați avut 100000 de accidente raportate, acestea pot fi atribuite doar 60 de probleme.

Să creați deliberat un accident și să vedeți problema înregistrată pe tabloul de bord. 

Creați un aspect

Iată-l Activitate principala layout file:

  

crashNow () Metodă

Modificați Activitate principala clasa de a declanșa crashNow () , care va declanșa un RuntimeException la apăsarea butonului. 

pachet com.chikeandroid.crashlyticstutorial; import android.os.Bundle; import șiroid.support.v7.app.AppCompatActivity; import șiroid.view.View; import șiroid.widget.Button; import com.crashlytics.android.Crashlytics; import io.fabric.sdk.android.Fabric; clasa publica MainActivity extinde AppCompatActivity butonul privat mCrashNowButton; @Override protejate void onCreate (Bundle savedInstanceState) super.onCreate (savedInstanceState); Fabric.with (aceasta, noua Crashlytics ()); setContentView (R.layout.activity_main); mCrashNowButton = (buton) findViewById (R.id.btn_crash_now); mCrashNowButton.setOnClickListener (noul View.OnClickListener () @Override public void onClick (Vizualizare vizualizare) crashNow (););  void privat crashNow () arunca noul RuntimeException ("Acesta este un accident"); 

crah!

Rulați aplicația și faceți clic pe butonul de avarie acum. 

7. Revizuirea tabloului de bord

După accidentul de succes, revedeți tabloul de bord pentru a vedea problema care a fost înregistrată instantaneu. De asemenea, veți primi o notificare prin e-mail de la Fabric despre accident. În tabloul de bord până acum, avem acum o problemă, un accident și un utilizator afectat. Puteți căuta o problemă specifică fie cu numele fișierului, cu numele metodei, cu numărul liniei, fie cu notele de emisiune (numai pentru un singur termen).

Când faceți clic pe o problemă, se deschide o pagină în care obțineți un raport detaliat despre accident. Pagina agregă toate accidentele care au avut loc. 

Părțile cheie ale acestui interfață sunt următoarele:

1

Numele proiectului și al pachetului, inclusiv numărul liniei în care sa produs accidentul

2

Filtru de blocări recente

3

Numărul total de accidente

4

Numărul total de utilizatori afectați de accident

5

Comutați pentru marcarea problemei închise sau deschise

6

Diagrama numărului de accidente pe zi

7

Buton pentru a partaja problema prin Twitter sau cu membrii echipei tale

8

Procentajul dispozitivelor blocate cu proximitate activată

9

Procentajul de accidente care au avut loc când aplicația era în focalizare 

10

Procentajul dispozitivelor prăbușite care au fost înrădăcinate

11

Defalcarea numelor de modele ale dispozitivelor prăbușite

12

Defalcarea OS a dispozitivelor blocate

13

Descărcați urmărirea stivei de excepție ca fișier .txt

14

O vizualizare extensibilă pentru urmărirea stivei

15

Vizualizați detaliile fiecărui raport individual de accidente.

Pe această pagină, puteți vizualiza și scrie note despre fiecare accident.

8. Alte caracteristici Crashlytics

Fabric Mobile App

Fabric are, de asemenea, o aplicație mobilă gratuită disponibilă în Magazin Google Play. Cu aplicația mobilă, primiți o notificare push push ori de câte ori apare o criză critică, precum și unele date care oferă o perspectivă asupra problemei: o defalcare a dispozitivelor și a platformelor afectate, urmărirea completă a stivei, numărul de utilizatori afectați care este afectat , notele despre o problemă și o opțiune de împărțire a problemei cu membrii echipei. Toate aceste date sunt actualizate în timp real.  

Au fost extrase excepțiile

Crashlytics vă permite, de asemenea, să înregistrați excepțiile prinse în captură blocarea folosind Crashlytics.logException (Excepție).

încercați myMethodThatThrows ();  captură (Excepție e) Crashlytics.logException (e); // gestionați excepția dvs. aici! 

Toate excepțiile înregistrate vor apărea ca probleme "non-fatale" în tabloul de bord Fabric. Crashlytics procesează excepții pe un fir de fund dedicat, prin urmare înregistrarea unei excepții nu va bloca interfața UI a aplicației, iar impactul asupra performanței aplicației dvs. va fi mic. 

Conectarea personalizată

Când înregistrați o excepție, puteți să creați un mesaj jurnal personalizat asociat cu datele dvs. de avarie și acesta va fi afișat pe tabloul de bord Crashlytics la acel accident special. 

Crashlytics.log (prioritate int, etichetă String, mesaj String);

Pe lângă faptul că apare în raport, va fi adăugat și la LogCat pentru Android. Pentru a preveni acest lucru, folosiți în schimb:

Crashlytics.log (mesaj String);

Ca și în exemplul de mai jos:

private void crashNow () Crashlytics.log ("Mesajul meu de jurnal"); arunca noul RuntimeException ("Acesta este un accident"); 

Identificați unii utilizatori

Pentru a identifica în mod unic utilizatorul final al aplicației dvs. în tabloul de bord pentru o depanare ușoară, Crashlytics are metodele de mai jos: 

Crashlytics.setUserIdentifier ( "12345"); Crashlytics.setUserEmail ( "[email protected]"); Crashlytics.setUserName ("Utilizator de test");

Utilizare Crashlytics.setUserIdentifier pentru a furniza un număr de identificare, un jeton sau o valoare hashed care identifică în mod unic utilizatorul final al aplicației dvs., fără a divulga sau transmite oricare dintre informațiile sale personale.

Distribuția Beta 

Dacă doriți să distribuiți aplicația dvs. beta unui anumit număr de utilizatori pentru testare și să obțineți feedback înainte de a vă lansa aplicația în public, Crashlytics are un instrument foarte util, numit Beta. Nu voi intra aici, dar verificați documentele oficiale pentru mai multe informații. 

Dezactivați Crashlytics pentru crearea de erori

Aveți posibilitatea să dezactivați Crashlytics pentru depanare, care va accelera procesul dvs. de depanare. 

Mai întâi, adăugați acest lucru la dvs. build.gradle fişier:

buildTypes ... debug // Dezactivați generarea ID-ului de construire a țesăturilor pentru depanarea construirii ext.enableCrashlytics = false

Apoi, dezactivați Crashlytics Kit în timpul rulării.

... @Override protejate void onCreate (Bundle savedInstanceState) super.onCreate (savedInstanceState); // Configurați Crashlytics, dezactivat pentru depanare Crashlytics crashlyticsKit = nou Crashlytics.Builder () .core (CrashlyticsCore.Builder () nou dezactivat (BuildConfig.DEBUG) .build ()) .build (); Fabric.with (acest lucru, crashlyticsKit); setContentView (R.layout.activity_main); 

Concluzie

Crashlytics este foarte puternică și utilă pentru raportarea eficientă a accidentelor. În acest tutorial, ați aflat:

  • cum să integrați Crashlytics în proiectul dvs. Android
  • modul în care tabloul de bord Crashlytics vă poate oferi o perspectivă asupra unei probleme
  • cum să înregistrați excepțiile prinse
  • cum să scrieți jurnale personalizate
  • cum să identificați în mod unic utilizatorii pentru depanare ușoară
  • cum să dezactivați Crashlytics pentru depanări

Pentru a afla mai multe despre Crashlytics, vă puteți referi la documentația oficială. De asemenea, puteți să consultați câteva dintre celelalte tutoriale ale noastre privind serviciile cloud pentru dezvoltare Android.

Cod