In Android, c'è un'alta probabilità di arresto anomalo dell'app anche dopo averlo testato manualmente e automaticamente. Ciò può essere dovuto a fattori quali l'incompatibilità con i diversi livelli API, le dimensioni dello schermo, la memoria del telefono, la disponibilità del sensore hardware e la personalizzazione dei fornitori in base ai propri dispositivi. Crashlytics ti aiuterà a diagnosticare questi problemi.
Arresti anomali rendono i tuoi utenti tristi e arrabbiati. Potrebbero anche voler disinstallare l'app se questo accade spesso. Quindi dai alla tua app una recensione negativa, dai un feedback negativo al Play Store e poi installa l'app della tua concorrente! In questo mercato di app già affollato e competitivo, rendere felici i tuoi utenti è vitale per il successo della tua app.
È abbastanza impossibile per la tua app non avere arresti anomali, ma mantenere i crash al minimo è molto importante. Durante lo sviluppo e i test, potresti non aver riscontrato un particolare arresto anomalo, ma in produzione quando gli utenti lo stanno utilizzando attivamente inizierai a vedere arresti anomali. L'utilizzo di una robusta e potente soluzione di segnalazione degli arresti anomali è essenziale per raccogliere informazioni sui crash della tua app e per darti un'idea di come puoi risolvere il problema per far felici i tuoi utenti.
In questo tutorial, ti mostrerò come utilizzare Crashlytics, una soluzione di reporting sugli incidenti gratuita e potente ma leggera, che fa parte del set di strumenti per sviluppatori di Fabric che sono stati recentemente acquisiti da Google. Creeremo una semplice app che si arresta in modo anomalo quando si fa clic su un pulsante, in modo che possiamo ottenere informazioni sull'arresto anomalo con Crashlytics.
Ecco alcuni motivi per cui potresti volerlo utilizzare:
Innanzitutto, avvia Android Studio e crea un nuovo progetto "CrashlyticsTutorial"con un'attività vuota chiamata Attività principale
.
Devi prima avere un account su Fabric per integrare Crashlytics nella tua app. Quindi, inserisci i dettagli richiesti e ti verrà inviata un'email di conferma.
Puoi scegliere di integrare Fabric con il tuo progetto sia scaricando il plug-in di Android Studio, che modificherà automaticamente i file necessari per l'integrazione, sia modificando manualmente il tuo build.gradle file. Per questo tutorial, useremo il modo più semplice, che è con il plugin.
Dopo aver fatto clic sul link di conferma, verrai guidato a installare il plug-in:
Seleziona Android come piattaforma.
Per utenti Mac: selezionare Preferenze ... dal Studio Android / IntelliJ menu. Utenti Windows e Linux: selezionare impostazioni dal File menu.
Selezionare plugin, clicca il Sfoglia i repository pulsante e cerca "Fabric for Android".
Clicca il Installare pulsante del plugin per scaricare e installare il plug-in.
Per iniziare l'integrazione di Crashlytics nel tuo progetto Android Studio, inserisci le tue credenziali per accedere.
Seleziona il progetto Android CrashlyticsTutorial e fare clic su Il prossimo pulsante.
Fabric elencherà tutte le organizzazioni che hai registrato, quindi seleziona l'organizzazione con cui vuoi associare l'app e fai clic su Il prossimo pulsante.
Fabric elencherà quindi tutti i suoi kit. Poiché questo è un tutorial su Crashlytics, seleziona Crashlytics e fare clic su Il prossimo pulsante.
Clicca il Installare pulsante.
Fabric vuole apportare modifiche al tuo costruire.Gradle, MainActivity.java e AndroidManifest.xml File,quindi clicca il Applicare pulsante per le modifiche che si verificano.
Costruisci ed esegui la tua applicazione in modo che possiamo essere sicuri che tutto sia configurato correttamente. Se la tua app è stata configurata correttamente, riceverai un'email inviata immediatamente all'indirizzo email che hai utilizzato per registrarti con Fabric.
Ora che Crashlytics è stato integrato con successo con il nostro progetto, visita la dashboard principale per vedere la nostra app: CrashlyticsTutorial.
Cliccando su un progetto si aprirà la dashboard Crashlytics, che elencherà i problemi riscontrati. Finora non ne abbiamo; in seguito, rivisiteremo questo dashboard quando abbiamo deliberatamente creato un arresto anomalo.
All'interno del dashboard Crashlytics del progetto, ottieni una panoramica generale degli arresti anomali. È possibile filtrare gli arresti anomali in base a versioni di app, eventi, giorni, stato (aperto, chiuso o tutto), dispositivo, sistema operativo o attività dell'utente (sebbene il kit di risposte debba essere abilitato per utilizzare questa funzione). Puoi anche vedere il numero totale di arresti anomali, non fatali, utenti interessati e altro ancora.
Il kit Answers fornisce statistiche in tempo reale su come viene utilizzata la tua app, tra cui numeri utente attivi, durata della sessione, valutazione della stabilità e conservazione.
La differenza tra crash e problemi è che Crashlytics combina crash simili in problemi (particolari righe di codice che sembrano attivare lo stesso tipo di crash). Ad esempio, se sono stati segnalati 100.000 arresti anomali, questi potrebbero essere attribuibili a soli 60 numeri.
Creiamo deliberatamente un arresto anomalo e visualizza il problema registrato nel dashboard.
Ecco il Attività principale
file di layout:
crashNow ()
MetodoModifica il Attività principale
classe per accendere il crashNow ()
metodo, che attiverà una RuntimeException quando si fa clic sul pulsante.
pacchetto com.chikeandroid.crashlyticstutorial; importare android.os.Bundle; import android.support.v7.app.AppCompatActivity; importa android.view.View; importa android.widget.Button; import com.crashlytics.android.Crashlytics; import io.fabric.sdk.android.Fabric; public class MainActivity estende AppCompatActivity private Button mCrashNowButton; @Override protected void onCreate (Bundle savedInstanceState) super.onCreate (savedInstanceState); Fabric.with (questo, nuovo Crashlytics ()); setContentView (R.layout.activity_main); mCrashNowButton = (Button) findViewById (R.id.btn_crash_now); mCrashNowButton.setOnClickListener (new View.OnClickListener () @Override public void onClick (Visualizza vista) crashNow ();); private void crashNow () throw new RuntimeException ("Questo è un crash");
Esegui l'app e fai clic sul pulsante Arresta ora.
Dopo il crash riuscito, rivisita il dashboard per vedere il problema che è stato registrato immediatamente. Riceverai anche una notifica via email da parte di Fabric in merito all'incidente. Finora nel dashboard abbiamo un problema, un incidente e un utente interessato. È possibile cercare un problema specifico con il nome del file, il nome del metodo, il numero di riga o le note di rilascio (solo per un singolo termine).
Quando fai clic su un problema, apre una pagina in cui ottieni un rapporto approfondito sull'arresto anomalo. La pagina aggrega tutti i crash che si sono verificati.
Le parti chiave di questa interfaccia utente sono le seguenti:
1 | Il nome del progetto e del pacchetto, incluso il numero di riga in cui si è verificato l'arresto anomalo |
2 | Filtro arresti anomali recenti |
3 | Il numero totale di arresti anomali |
4 | Il numero totale di utenti interessati dall'arresto anomalo |
5 | Attiva / disattiva per contrassegnare il problema chiuso o aperto |
6 | Grafico del numero di arresti al giorno |
7 | Pulsante per condividere il problema tramite Twitter o con i membri del tuo team |
8 | La percentuale di dispositivi arrestati con prossimità attivata |
9 | La percentuale di arresti anomali che si sono verificati quando l'app era a fuoco |
10 | La percentuale di dispositivi arrestati che sono stati rootati |
11 | Ripartizione dei nomi dei modelli dei dispositivi arrestati |
12 | Ripartizione del sistema operativo dei dispositivi arrestati |
13 | Scarica la traccia dello stack delle eccezioni come file .txt |
14 | Una vista espandibile per la traccia dello stack |
15 | Visualizza i dettagli di ogni singolo rapporto sul crash. |
In questa pagina, puoi anche visualizzare note e scrivere note su ogni crash.
Fabric ha anche un'app mobile gratuita disponibile su Google Play Store. Con l'app mobile, ricevi una notifica push istantanea ogni volta che si verifica un arresto critico, oltre a alcuni dati che danno una panoramica del problema: una rottura dei dispositivi e delle piattaforme interessati, l'intera traccia dello stack, il numero di utenti interessati, chi è interessato , note inserite su un problema e un'opzione per condividere il problema con i membri del team. Tutti questi dati sono aggiornati in tempo reale.
Crashlytics ti consente anche di registrare le eccezioni catturate in a catturare
bloccare usando Crashlytics.logException (Exception)
.
prova myMethodThatThrows (); catch (Exception e) Crashlytics.logException (e); // gestisci la tua eccezione qui!
Tutte le eccezioni registrate appariranno come problemi "non fatali" nel dashboard di Fabric. Crashlytics elabora le eccezioni su un thread in background dedicato, pertanto la registrazione di un'eccezione non bloccherà l'interfaccia utente dell'app e l'impatto sulle prestazioni della tua app sarà ridotto.
Quando si registra un'eccezione, è possibile creare un messaggio di registro personalizzato associato ai dati di arresto anomalo e verrà visualizzato sul cruscotto Crashlytics in quel particolare incidente.
Crashlytics.log (int priority, String tag, String msg);
Oltre a comparire nel tuo rapporto, verrà aggiunto anche al logCat di Android. Per evitare che ciò accada, usa invece:
Crashlytics.log (String message);
Come nell'esempio qui sotto:
private void crashNow () Crashlytics.log ("My log message"); lanciare una nuova RuntimeException ("Questo è un crash");
Per identificare in modo univoco l'utente finale dell'applicazione nella dashboard per un facile debug, Crashlytics ha i seguenti metodi:
Crashlytics.setUserIdentifier ( "12345"); Crashlytics.setUserEmail ( "[email protected]"); Crashlytics.setUserName ("Test User");
Uso Crashlytics.setUserIdentifier
fornire un numero identificativo, un token o valore hash che identifica in modo univoco l'utente finale della propria applicazione senza divulgare o trasmettere alcuna delle proprie informazioni personali.
Se vuoi distribuire la tua app beta a un gruppo di utenti per testare e ottenere feedback prima di rilasciare finalmente la tua app al pubblico, Crashlytics ha uno strumento gratuito molto utile chiamato Beta. Non entrerò qui, ma controlla i documenti ufficiali per maggiori informazioni.
È possibile disabilitare Crashlytics per i build di debug, il che velocizzerà il processo di compilazione del debug.
Innanzitutto, aggiungi questo al tuo build.gradle file:
buildTypes ... debug // Disabilita la generazione dell'ID build del fabric per le build di debug ext.enableCrashlytics = false
Quindi, disabilitare il kit Crashlytics in fase di runtime.
... @Override protected void onCreate (Bundle savedInstanceState) super.onCreate (savedInstanceState); // Imposta Crashlytics, disabilitato per build di debug Crashlytics crashlyticsKit = new Crashlytics.Builder () .core (new CrashlyticsCore.Builder (). Disabled (BuildConfig.DEBUG) .build ()) .build (); Fabric.with (this, crashlyticsKit); setContentView (R.layout.activity_main);
Crashlytics è molto potente e utile per un efficace reporting degli arresti anomali. In questo tutorial, hai imparato:
Per saperne di più su Crashlytics, puoi fare riferimento alla sua documentazione ufficiale. Puoi anche controllare alcuni dei nostri altri tutorial su servizi basati su cloud per lo sviluppo di Android.