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.
Voici quelques raisons pour lesquelles vous voudrez peut-être l'utiliser:
Tout d’abord, lancez Android Studio et créez un nouveau projet "CrashlyticsTutorial"avec une activité vide appelée Activité principale
.
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:
Sélectionnez Android comme plate-forme.
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.
Sélectionner Plugins, clique le Parcourir les dépôts bouton et recherchez "Fabric for Android".
Clique le Installer plugin bouton pour télécharger et installer le plugin.
Pour commencer l'intégration de Crashlytics dans votre projet Android Studio, entrez vos informations d'identification pour vous connecter..
Sélectionnez le projet Android CrashlyticsTutorial et cliquez sur le Suivant bouton.
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.
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.
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.
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..
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..
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..
Ici se trouve le Activité principale
fichier de mise en page:
crashNow ()
MéthodeModifier 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");
Exécutez l'application et cliquez sur le bouton crash maintenant.
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..
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.
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..
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");
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.
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..
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);
Crashlytics est très puissant et utile pour signaler efficacement les accidents. Dans ce tutoriel, vous avez appris:
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..