Rapport d'accident avec Crashlytics

Sous Android, il est très probable que votre application se bloque même après l'avoir testée manuellement et automatiquement. Cela peut être dû à des facteurs tels que l'incompatibilité avec différents niveaux d'API, les tailles d'écran, la mémoire du téléphone, la disponibilité du capteur matériel et la personnalisation des fournisseurs en fonction de leurs périphériques. Crashlytics vous aidera à diagnostiquer ces problèmes.

Les accidents rendent vos utilisateurs tristes et en colère. Ils pourraient même vouloir désinstaller l'application si cela se produit souvent. Donnez ensuite un mauvais avis à votre application, donnez des commentaires négatifs sur le Play Store, puis installez l'application de votre concurrent! Dans ce marché d'applications déjà saturé et concurrentiel, satisfaire vos utilisateurs est essentiel au succès de votre application..

Il est tout à fait impossible que votre application ne subisse pas de plantage, mais il est très important de le réduire au minimum. Pendant le développement et les tests, vous n'avez peut-être pas rencontré d'incident particulier, mais en production, lorsque vos utilisateurs l'utilisent activement, vous constaterez des incidents. Il est essentiel d’utiliser une solution de reporting des incidents robuste et puissante pour collecter des informations sur les plantages de votre application et vous permettre de mieux comprendre comment vous pouvez résoudre le problème et satisfaire vos utilisateurs.. 

Dans ce didacticiel, je vais vous montrer comment utiliser Crashlytics, une solution de génération de rapports de crash gratuite, puissante et légère, qui fait partie de l'ensemble d'outils de développement Fabric récemment acquis par Google. Nous allons créer une application simple qui se bloque lorsqu'un bouton est cliqué, afin que nous puissions avoir un aperçu du crash avec Crashlytics. 

1. Pourquoi utiliser Crashlytics?

Voici quelques raisons pour lesquelles vous voudrez peut-être l'utiliser: 

  • Facile à mettre en place
  • Nombre illimité d'applications, d'utilisateurs et d'accidents 
  • Alertes en temps réel
  • Rapport d'accident en temps réel
  • Analyse approfondie des accidents
  • Suivi des exceptions
  • Facile à partager le rapport de crash
  • Distribution d'applications bêta
  • Une application mobile gratuite pour surveiller votre application lors de vos déplacements et recevoir des alertes en temps réel pour les problèmes critiques
  • Libre!

2. Créer un projet Android Studio

Tout d’abord, lancez Android Studio et créez un nouveau projet "CrashlyticsTutorial"avec une activité vide appelée Activité principale.

3. Installation de Fabric Plugin

Vous devez d'abord avoir un compte sur Fabric pour intégrer Crashlytics à votre application. Alors remplissez les informations requises et un email de confirmation vous sera envoyé. 

Vous pouvez choisir d'intégrer Fabric à votre projet en téléchargeant le plugin Android Studio, qui modifiera automatiquement les fichiers nécessaires à l'intégration, ou en modifiant manuellement votre build.gradle fichier. Pour ce tutoriel, nous allons utiliser le moyen le plus simple, à savoir le plugin. 

Après avoir cliqué sur le lien de confirmation, vous serez guidé pour installer le plugin:

Étape 1

Sélectionnez Android comme plate-forme. 

Étape 2

Pour les utilisateurs de Mac: sélectionnez Préférences…  du Studio Android / IntelliJ menu. Utilisateurs Windows et Linux: sélectionnez Réglages du Fichier menu. 

Étape 3

Sélectionner Plugins, clique le Parcourir les dépôts bouton et recherchez "Fabric for Android".

Étape 4

Clique le Installer plugin bouton pour télécharger et installer le plugin. 

4. Intégration de Crashlytics

Étape 1

Pour commencer l'intégration de Crashlytics dans votre projet Android Studio, entrez vos informations d'identification pour vous connecter.. 

Étape 2

Sélectionnez le projet Android CrashlyticsTutorial et cliquez sur le Suivant bouton. 

Étape 3

Fabric répertoriera toutes les organisations que vous avez enregistrées. Sélectionnez donc l'organisation à laquelle vous souhaitez associer l'application, puis cliquez sur l'icône correspondante. Suivant bouton.

Étape 4

Fabric va ensuite lister tous ses kits. Comme il s’agit d’un tutoriel sur Crashlytics, sélectionnez Crashlytics et cliquez sur le Suivant bouton. 

Étape 5

Clique le Installer bouton. 

Tissu veut apporter des modifications à votre construire.graduer, MainActivity.java et AndroidManifest.xml des dossiers,alors cliquez sur le Appliquer bouton pour que les changements se produisent.  

Étape 6

Générez et exécutez votre application afin que nous puissions nous assurer que tout est configuré correctement. Si votre application a été configurée avec succès, vous recevrez un email instantanément à l'adresse email que vous avez utilisée pour vous inscrire à Fabric.. 

5. Affichage du tableau de bord

Maintenant que Crashlytics a été intégré avec succès à notre projet, visitez le tableau de bord principal pour voir notre application: CrashlyticsTutorial

En cliquant sur un projet, vous ouvrez le tableau de bord Crashlytics, qui répertorie les problèmes rencontrés. Jusqu'ici nous n'en avons aucun; plus tard, nous reverrons ce tableau de bord lorsque nous aurons délibérément créé un crash. 

Dans le tableau de bord du projet Crashlytics, vous obtenez un aperçu général des accidents. Vous pouvez filtrer les pannes par version d'application, événement, jour, statut (ouvert, fermé ou complet), périphérique, système d'exploitation ou activité de l'utilisateur (bien que le kit Answers doit être activé pour utiliser cette fonctionnalité). Vous pouvez également voir le nombre total de collisions, de fatals, d'utilisateurs affectés, etc.. 

Le kit de réponses vous fournit des statistiques en temps réel sur l'utilisation de votre application, notamment le nombre d'utilisateurs actifs, la durée de la session, le score de stabilité et la rétention.. 

6. Créer délibérément un crash

Comprendre la différence entre les accidents et les problèmes

La différence entre les incidents et les problèmes réside dans le fait que Crashlytics combine des incidents similaires (des lignes de code particulières qui semblent déclencher le même type d'accident). Par exemple, si vous avez signalé 100 000 accidents, ceux-ci peuvent être attribués à seulement 60 problèmes..

Créons délibérément un blocage et affichons le problème enregistré dans le tableau de bord.. 

Créer une mise en page

Ici se trouve le Activité principale fichier de mise en page:

  

le crashNow () Méthode

Modifier le Activité principale classe pour allumer le crashNow () méthode, qui déclenchera une exception RuntimeException lorsque l'utilisateur cliquera sur le bouton. 

package com.chikeandroid.crashlyticstutorial; importer android.os.Bundle; importer android.support.v7.app.AppCompatActivity; importer android.view.View; importer android.widget.Button; importer com.crashlytics.android.Crashlytics; importer io.fabric.sdk.android.Fabric; Classe publique MainActivity étend AppCompatActivity private Button mCrashNowButton; @Override protected void onCreate (Bundle savedInstanceState) super.onCreate (savedInstanceState); Fabric.with (this, nouveau Crashlytics ()); setContentView (R.layout.activity_main); mCrashNowButton = (Bouton) findViewById (R.id.btn_crash_now); mCrashNowButton.setOnClickListener (new View.OnClickListener () @Override public void onClick (Affichage de la vue) crashNow (););  private void crashNow () lève une nouvelle RuntimeException ("Ceci est un crash"); 

crash!

Exécutez l'application et cliquez sur le bouton crash maintenant. 

7. Revisiter le tableau de bord

Après le crash, consultez le tableau de bord pour voir le problème qui a été consigné instantanément. Vous recevrez également une notification par courrier électronique de Fabric concernant le blocage. Jusqu'ici, dans le tableau de bord, nous avons maintenant un problème, un incident et un utilisateur affecté. Vous pouvez rechercher un problème spécifique avec le nom de fichier, le nom de la méthode, le numéro de ligne ou les notes de publication (terme unique uniquement)..

Lorsque vous cliquez sur un problème, une page s'ouvre et vous obtenez un rapport détaillé sur le blocage. La page regroupe tous les plantages survenus. 

Les éléments clés de cette interface utilisateur sont les suivants:

1

Le nom du projet et du package, y compris le numéro de la ligne où l'incident s'est produit

2

Filtre des accidents récents

3

Le nombre total d'accidents

4

Le nombre total d'utilisateurs affectés par le crash

5

Basculer pour marquer le problème fermé ou ouvert

6

Graphique du nombre d'accidents par jour

7

Bouton pour partager le problème via Twitter ou avec les membres de votre équipe

8

Le pourcentage d'appareils bloqués avec la proximité activée

9

Le pourcentage d'accidents survenus pendant la mise au point de l'application 

dix

Le pourcentage d'appareils en panne qui ont été enracinés

11

Ventilation des noms de modèle des périphériques bloqués

12

Panne du système d'exploitation des appareils en panne

13

Téléchargez la trace de pile d'exceptions sous forme de fichier .txt

14

Une vue extensible pour la trace de la pile

15

Afficher les détails de chaque rapport d'accident individuel.

Sur cette page, vous pouvez également afficher des notes et rédiger des notes sur chaque incident..

8. Autres caractéristiques de Crashlytics

Application mobile Fabric

Fabric propose également une application mobile gratuite disponible sur le Google Play Store. Avec l'application mobile, vous recevez une notification push instantanée chaque fois qu'un crash critique se produit, ainsi que des données permettant de mieux comprendre le problème: panne des périphériques et des plateformes affectés, trace de la pile complète, nombre d'utilisateurs affectés, affectés , notes saisies à propos d’un problème et possibilité de partager le problème avec les membres de l’équipe. Toutes ces données sont mises à jour en temps réel.  

Enregistrer les exceptions capturées

Crashlytics vous permet également de consigner les exceptions interceptées dans une capture bloquer en utilisant Crashlytics.logException (Exception).

try myMethodThatThrows ();  catch (exception e) Crashlytics.logException (e); // gérez votre exception ici! 

Toutes les exceptions consignées apparaîtront comme des problèmes «non fatals» dans le tableau de bord Fabric. Crashlytics traite les exceptions sur un fil d'arrière-plan dédié. Par conséquent, la journalisation d'une exception ne bloquera pas l'interface utilisateur de l'application et l'impact sur les performances de votre application sera faible.. 

Enregistrement personnalisé

Lorsque vous enregistrez une exception, vous pouvez créer un message de journal personnalisé associé à vos données d'incident. Il sera affiché dans le tableau de bord Crashlytics lors de cet incident particulier.. 

Crashlytics.log (int priority, balise String, String msg);

En plus de figurer dans votre rapport, il sera également ajouté à LogCat d'Android. Pour éviter cela, utilisez plutôt:

Crashlytics.log (Message de chaîne);

Comme dans l'exemple ci-dessous:

void privé crashNow () Crashlytics.log ("Mon message de journal"); jette new RuntimeException ("Ceci est un crash"); 

Identifier de manière unique les utilisateurs

Pour identifier de manière unique l'utilisateur final de votre application dans le tableau de bord pour faciliter le débogage, Crashlytics dispose des méthodes suivantes: 

Crashlytics.setUserIdentifier ("12345"); Crashlytics.setUserEmail ("[email protected]"); Crashlytics.setUserName ("Test User");

Utilisation Crashlytics.setUserIdentifier pour fournir un numéro d'identification, un jeton ou une valeur hachée qui identifie de manière unique l'utilisateur final de votre application sans divulguer ni transmettre ses informations personnelles.

Distribution bêta 

Si vous souhaitez distribuer votre application en version bêta à un ensemble d'utilisateurs à des fins de test et obtenir des commentaires avant de finalement publier votre application au grand public, Crashlytics dispose d'un outil gratuit très utile appelé Bêta. Je n'entrerai pas dans les détails ici, mais consultez la documentation officielle pour plus d'informations.. 

Désactiver Crashlytics pour les versions de débogage

Vous pouvez désactiver Crashlytics pour les versions de débogage, ce qui accélérera votre processus de création de débogage.. 

Tout d'abord, ajoutez ceci à votre build.gradle fichier:

buildTypes … debug // Désactive la génération d'ID de construction de structure pour les constructions de débogage ext.enableCrashlytics = false

Ensuite, désactivez le kit Crashlytics à l'exécution.

… @Override protected void onCreate (Bundle savedInstanceState) super.onCreate (savedInstanceState); // Configurer Crashlytics, désactivé pour les versions de débogage Crashlytics crashlyticsKit = new Crashlytics.Builder () .core (new CrashlyticsCore.Builder (). Disabled (BuildConfig.DEBUG) .build ()) .build (); Fabric.with (this, crashlyticsKit); setContentView (R.layout.activity_main); 

Conclusion

Crashlytics est très puissant et utile pour signaler efficacement les accidents. Dans ce tutoriel, vous avez appris:

  • comment intégrer Crashlytics dans votre projet Android
  • comment le tableau de bord Crashlytics peut vous donner un aperçu d'un problème
  • comment enregistrer les exceptions interceptées
  • comment écrire des journaux personnalisés
  • comment identifier de manière unique vos utilisateurs pour un débogage facile
  • comment désactiver Crashlytics pour les versions de débogage

Pour en savoir plus sur Crashlytics, vous pouvez vous reporter à sa documentation officielle. Vous pouvez également consulter certains de nos autres tutoriels sur les services basés sur le cloud pour le développement Android..