Android应用添加bug跟踪系统

     Android应用开发过程中,我们可以通过try-catch块来捕获check异常,并进行相应的处理.但是uncheck异常通常出现在应用运行时,比如OOM(outof memory),应用异常退出会有相应的调用堆栈通过logcat输出,通过堆栈的信息,我们可以在下一个版本中修复这个bug,改善应用的稳定性。Google从android2.2开始支持向应用开发者发送包含有错误堆栈信息的邮件,但这仅限于发布到GooglePlay 市场中的应用.而我们可能基于某些原因,不想将其发布在market中或这是一个企业级私有的应用(比如我目前开发的)。那么我们能不能找到一种方法来实现这个功能呢?带着这样的疑问,我搜索得到并对比了以下三个方式.


1. android-remote-stacktrace

    下载地址 : https://code.google.com/p/android-remote-stacktrace

    但是发现其上传网站无法打开,于是就在github上找到了它的改良版

   下载地址:https://github.com/Pretz/improved-android-remote-stacktrace

   下载源代码后仔细阅读,注意实现思路为为当前线程设置一个自定义的UncaughtExcepetionHandler,在发生这个异常时(比如OOM),先把stack trace 保存在包名目录下的文    件夹中.在调用系统默认的 UncaughtExceptionHandler, 下次打开应用后,会将目录下的所有文件发送到指定的服务器.然后删除本地文件(通过测试,发现即使发送不成功,也    会删除本地文件。注意作者将这个删除方法放到了finally块里面)而且这个项目几乎两年没有更新了。于是乎我有发现了一个新的开源项目


2. ACRA(ApplicationCrash Reports for Android)

    下载地址: https://github.com/ACRA/acra

     明白之前一个项目的实现思路后,很容易的想到这个项目也应该使用类似的方法。通过阅读文档,发现这个框架具有以下优势:

    1. 上传报告使用加密通信

    2. 可设置多种上传方式

             1. Google docs spreadsheet (Google已经关闭服务)

             2. 自己搭建的服务器,作者同时提供一个开源的web后端(https://github.com/ACRA/acralyzer)

             3. 第三方服务器(例如下面介绍的bugsense)

    3. 报告的内容可以包含各种可配置的信息(平台版本,自定义log)

    4. 项目依然在改良中,有较多忠实的用户及后续特性的添加

    具体使用方法请移步: https://github.com/ACRA/acra/wiki/BasicSetup我想作者已经图文并茂很清楚地说明了


3. BugSense(https://www.bugsense.com)

    使用第三方服务商的服务.用户只需注册一个帐号,即可获得每月500条免费的错误报告,通过打开邮件提醒,可以发送相应的错误报告到邮箱.统计的图表方式多样,参见下图

    

      关于使用方式也比较简单,只需要两行代码. 参见 https://www.bugsense.com/docs/android

你可能感兴趣的:(Android)