Î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.
Iată câteva motive pentru care ați putea dori să o utilizați:
În primul rând, lansați Android Studio și creați un nou proiect "CrashlyticsTutorial"cu o activitate goală numită Activitate principala
.
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:
Selectați Android ca platformă.
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.
Selectați Plugin-uri, apasă pe Răsfoiți depozitele , și căutați "Fabric pentru Android".
Apasă pe Instalare plugin pentru a descărca și instala pluginul.
Pentru a începe integrarea Crashlytics în proiectul dvs. Android Studio, introduceți-vă datele de conectare pentru a vă conecta.
Selectați proiectul Android CrashlyticsTutorial și faceți clic pe Următor → buton.
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.
Fabric va lista apoi toate kiturile sale. Deoarece acesta este un tutorial Crashlytics, selectați Crashlytics și faceți clic pe Următor → buton.
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.
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.
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.
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.
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");
Rulați aplicația și faceți clic pe butonul de avarie acum.
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.
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.
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.
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");
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.
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.
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);
Crashlytics este foarte puternică și utilă pentru raportarea eficientă a accidentelor. În acest tutorial, ați aflat:
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.