ACRA La chasse aux bugs est ouverte ! @KevinGaudin  - 14 avril 2011
Au programme <ul><ul><li>J'ai fini mon appli ! Et maintenant ? </li></ul></ul><ul><ul><li>ACRA, c'est quoi ? </li></ul></u...
J'ai fini mon appli ! Et maintenant ?   1/2 <ul><li>Grand Public </li></ul><ul><li>Hop ! Sur le market ! </li></ul>Entrepr...
J'ai fini mon appli ! Et maintenant ?   2/2 <ul><li>Grand Public </li></ul><ul><ul><li>Pas de réponse possible aux comment...
ACRA, c'est quoi ? <ul><ul><li>Un UncaughtExceptionHandler... </li></ul></ul><ul><ul><li>... qui envoie ses rapports vers ...
Ajouter ACRA, c'est simple ! <ul><ul><li>importer un csv dans GoogleDoc et lui associer un formulaire </li></ul></ul><ul><...
Détail des fonctionnalités 1/3 <ul><ul><li>3 modes d'interaction: </li></ul></ul><ul><ul><ul><li>SILENT : invisible </li><...
Détail des fonctionnalités 2/3 <ul><ul><li> Envoi des rapports vers votre propre script serveur (http/https) </li></ul></...
Détail des fonctionnalités 3/3 <ul><li>Les limites: </li></ul><ul><ul><li>Ne gère que les exceptions, pas les ANR </li></u...
Et pour (très) bientôt... <ul><ul><li>Envoi vers script perso: </li></ul></ul><ul><ul><ul><li>Noms de paramètres plus clai...
Quand utiliser ACRA ? <ul><ul><li>En Dev... pas forcément utile </li></ul></ul><ul><ul><li>En recette/beta : permet de réc...
Et après ? <ul><ul><li>Focus sur l'exploitation des rapports. Quelques idées : </li></ul></ul><ul><ul><ul><li>Analyses via...
Liens <ul><ul><li>Projet (downloads, wiki, source, issues...) :  http://acra.googlecode.com </li></ul></ul><ul><ul><li>For...
Merci ! <ul><ul><li>Emmanuel Astier - UncaughtExceptionHandler initial http://androidblogger.blogspot.com/ </li></ul></ul>...
Prochain SlideShare
Chargement dans…5
×

ACRA - Présentation PAUG Avril 2011

1 858 vues

Publié le

ACRA est une librairie open source, légère, facile à mettre en oeuvre et très configurable permettant aux développeurs android de recevoir des rapports d'erreur de leurs applications dans un spreadsheet GoogleDocs.

Publié dans : Technologie
1 commentaire
1 j’aime
Statistiques
Remarques
  • La vidéo de la présentation est disponible sur Youtube:
    <br /><object type="application/x-shockwave-flash" data="http://www.youtube.com/v/QvytAa_1qts?fs=1&amp;hl=fr_FR&amp;rel=0" width="350" height="288"><param name="movie" value="http://www.youtube.com/v/QvytAa_1qts?fs=1&amp;hl=fr_FR&amp;rel=0"></param><embed src="http://www.youtube.com/v/QvytAa_1qts?fs=1&amp;hl=fr_FR&amp;rel=0" width="350" height="288" type="application/x-shockwave-flash"></embed></object>
       Répondre 
    Voulez-vous vraiment ?  Oui  Non
    Votre message apparaîtra ici
Aucun téléchargement
Vues
Nombre de vues
1 858
Sur SlideShare
0
Issues des intégrations
0
Intégrations
228
Actions
Partages
0
Téléchargements
4
Commentaires
1
J’aime
1
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

ACRA - Présentation PAUG Avril 2011

  1. 1. ACRA La chasse aux bugs est ouverte ! @KevinGaudin - 14 avril 2011
  2. 2. Au programme <ul><ul><li>J'ai fini mon appli ! Et maintenant ? </li></ul></ul><ul><ul><li>ACRA, c'est quoi ? </li></ul></ul><ul><ul><li>Ajouter ACRA c'est simple ! </li></ul></ul><ul><ul><li>Détail des fonctionnalités </li></ul></ul><ul><ul><li>Et pour (très) bientôt... </li></ul></ul><ul><ul><li>Quand utiliser ACRA ? </li></ul></ul><ul><ul><li>Et après ? </li></ul></ul><ul><li>     + Vos questions ! </li></ul>
  3. 3. J'ai fini mon appli ! Et maintenant ?   1/2 <ul><li>Grand Public </li></ul><ul><li>Hop ! Sur le market ! </li></ul>Entreprise Hop ! J'envoie aux utilisateurs ! Et... bah j'attends un retour... Quand un jour:
  4. 4. J'ai fini mon appli ! Et maintenant ?   2/2 <ul><li>Grand Public </li></ul><ul><ul><li>Pas de réponse possible aux commentaires </li></ul></ul><ul><ul><li>L'Android Market propose des rapports... </li></ul></ul><ul><ul><ul><li>seulement pour certains terminaux à partir de 2.1 </li></ul></ul></ul><ul><ul><ul><li>très peu de détails sur le contexte </li></ul></ul></ul><ul><li>Entreprise </li></ul><ul><ul><li>Demander aux utilisateurs une méthode pour reproduire l'erreur </li></ul></ul><ul><ul><li>Pour les plus geeks d'entre eux... leur faire installer un collecteur de logs (ex: ALogCat) et envoyer les traces d'exécution  </li></ul></ul>Ou alors... Développer un UncaughtExceptionHandler + script serveur pour recevoir des rapports Il existe des exemples sur StackOverflow .
  5. 5. ACRA, c'est quoi ? <ul><ul><li>Un UncaughtExceptionHandler... </li></ul></ul><ul><ul><li>... qui envoie ses rapports vers un Formulaire GoogleDoc ! </li></ul></ul><ul><ul><li>FACILE à mettre en oeuvre et TRES configurable </li></ul></ul><ul><ul><li>Un projet open source (ASL2), hébergé sur GoogleCode => http://acra.googlecode.com </li></ul></ul><ul><ul><li>Première version en avril 2010 </li></ul></ul><ul><ul><li>Version stable courante : 3.1.1 </li></ul></ul><ul><ul><li>Téléchargements > 10/j </li></ul></ul><ul><ul><li>1 développeur principal + quelques contributions ponctuelles </li></ul></ul>
  6. 6. Ajouter ACRA, c'est simple ! <ul><ul><li>importer un csv dans GoogleDoc et lui associer un formulaire </li></ul></ul><ul><ul><li>ajouter le .jar d'acra dans le projet </li></ul></ul><ul><ul><li>ajouter une annotation dans une classe héritant d'Application + un appel à ACRA.init(this) </li></ul></ul>import org . acra .*; import org . acra . annotation .*; @ReportsCrashes ( formKey = &quot;dGVacG0ydVHnaNHjRjVTUTEtb3FPWG&quot; ) public class MyApplication extends Application {      @Override      public void onCreate () {         ACRA . init ( this );         super . onCreate ();     } } Demo 4.   Manifest: déclarer la classe application + permission internet
  7. 7. Détail des fonctionnalités 1/3 <ul><ul><li>3 modes d'interaction: </li></ul></ul><ul><ul><ul><li>SILENT : invisible </li></ul></ul></ul><ul><ul><ul><li>TOAST : message &quot;discret&quot; </li></ul></ul></ul><ul><ul><ul><li>NOTIFICATION : notification + dialog </li></ul></ul></ul>@ReportsCrashes ( formKey = &quot;dGVacG0ydVHnaNHjRjVTUTEtb3FPWGc6MQ&quot; ,     mode = ReportingInteractionMode . NOTIFICATION ,     resNotifTickerText = R . string . crash_notif_ticker_text ,     resNotifTitle = R . string . crash_notif_title ,     resNotifText = R . string . crash_notif_text ,     resNotifIcon = android . R . drawable . stat_notify_error , // optional     resDialogText = R . string . crash_dialog_text ,     resDialogIcon = android . R . drawable . ic_dialog_info , //optional     resDialogTitle = R . string . crash_dialog_title , // optional     resDialogCommentPrompt = R . string . crash_dialog_comment_prompt , //optional     resDialogOkToast = R . string . crash_dialog_ok_toast // optional     )
  8. 8. Détail des fonctionnalités 2/3 <ul><ul><li> Envoi des rapports vers votre propre script serveur (http/https) </li></ul></ul><ul><ul><li>Ajout de traces spécifiques ErrorReporter.getInstance().putCustomData(&quot;myVariable&quot;, myVariable); </li></ul></ul><ul><ul><li>SharedPreferences pour activer/désactiver ACRA </li></ul></ul><ul><ul><li>Envoi de rapports &quot;manuels&quot; ErrorReporter.getInstance().handleException(caughtException); </li></ul></ul><ul><ul><li>Envoi de rapports discrets ErrorReporter.getInstance().handleSilentException(caughtException); </li></ul></ul>
  9. 9. Détail des fonctionnalités 3/3 <ul><li>Les limites: </li></ul><ul><ul><li>Ne gère que les exceptions, pas les ANR </li></ul></ul><ul><ul><li>Limite de capacité des Google Spreadsheets: </li></ul></ul><ul><ul><ul><li>400 000 cells </li></ul></ul></ul><ul><ul><ul><li>= + de 14 000 rapports </li></ul></ul></ul><ul><ul><li>Incapacité à fournir un CrashDialog direct </li></ul></ul>
  10. 10. Et pour (très) bientôt... <ul><ul><li>Envoi vers script perso: </li></ul></ul><ul><ul><ul><li>Noms de paramètres plus clairs </li></ul></ul></ul><ul><ul><ul><li>Support Authentification HTTP Basic  </li></ul></ul></ul><ul><ul><li>Envoi par e-mail (via intent): </li></ul></ul><ul><ul><ul><li>Permet de se débarrasser de la permission internet </li></ul></ul></ul><ul><ul><ul><li>Contenu du rapport paramétrable  </li></ul></ul></ul><ul><ul><li>API pour coder votre propre ReportSender </li></ul></ul><ul><ul><li>Encore plus de données envoyées </li></ul></ul><ul><ul><ul><li>Logcat (normal, events, radio) </li></ul></ul></ul><ul><ul><ul><li>MemInfo, SystemAvailableFeatures, PackageStats, Environment, DropBoxManager, Settings </li></ul></ul></ul><ul><ul><ul><li>Adresse e-mail de l'utilisateur (saisie via dialog ou SharedPreference) </li></ul></ul></ul><ul><ul><ul><li>Unique Id </li></ul></ul></ul><ul><ul><li>Intégration Maven (merci Pierre-Yves !) </li></ul></ul>
  11. 11. Quand utiliser ACRA ? <ul><ul><li>En Dev... pas forcément utile </li></ul></ul><ul><ul><li>En recette/beta : permet de récupérer TOUTES les traces des crashs constatés par les recetteurs/testeurs </li></ul></ul><ul><ul><li>En production : être informé au plus tôt des bugs et défauts de compatibilité </li></ul></ul><ul><ul><ul><li>sauf si application TRES populaire ? </li></ul></ul></ul>
  12. 12. Et après ? <ul><ul><li>Focus sur l'exploitation des rapports. Quelques idées : </li></ul></ul><ul><ul><ul><li>Analyses via Google Visualization API (voir premiers travaux par Jan Berkel ) </li></ul></ul></ul><ul><ul><ul><li>Aide au diagnostic (meilleure visualisation des rapports, lien direct vers le code, regroupement de rapports similaires...) </li></ul></ul></ul><ul><ul><ul><li>Intégration bugtrackers </li></ul></ul></ul><ul><ul><ul><li>... </li></ul></ul></ul>
  13. 13. Liens <ul><ul><li>Projet (downloads, wiki, source, issues...) : http://acra.googlecode.com </li></ul></ul><ul><ul><li>Forum :  http://groups.google.com/group/acra-discuss </li></ul></ul><ul><ul><li>Twitter : </li></ul></ul><ul><ul><ul><li>@kevingaudin </li></ul></ul></ul><ul><ul><ul><li>@CrashReports </li></ul></ul></ul>
  14. 14. Merci ! <ul><ul><li>Emmanuel Astier - UncaughtExceptionHandler initial http://androidblogger.blogspot.com/ </li></ul></ul><ul><ul><li>Pierre-Yves Ricau - Mavenizator </li></ul></ul><ul><ul><li>Jan Berkel - Analyses via GVT </li></ul></ul><ul><ul><li>PAUG </li></ul></ul><ul><ul><li>VOUS ! </li></ul></ul>

×