Android开发之——搭建本地Crashing跟踪系统ACRA

前言

开发的手机应用,受诸多条件的限制如:硬件、系统升级、网络等综合因素的影响,极有可能产生异常,如何有效的收集异常信息反馈给程序开发人员,便于及时有效的解决BUG,便成为了首要问题。

值得庆贺的是国内一些大厂已经提供了SDK供开发者免费试用,如友盟统计,腾讯Bugly等;本文要讲述的是Github上普遍试用的异常搜集工具ACRA.

准备

  1. Ubuntu 16.04(搭建服务端)
  2. Android Studio(开发客户端)
  3. couchdb

ACRA

  1. ACRA移动端:https://github.com/ACRA/acra
  2. acralyzer:https://github.com/ACRA/acralyzer

环境搭建

服务器搭建

Ubuntu上安装Acralyzer

  1. 打开终端,输入如下命令,安装couchdb

     sudo apt-get install couchdb   
    

  2. 安装curl工具

     sudo apt-get install curl
    

  3. 使用如下指令来验证是否安装成功

     curl http://127.0.0.1:5984
    

  4. 出现如下信息说明安装成功

     {"couchdb":"Welcome","uuid":"f8c3466d228d317565161fa2e9b29e05","version":"1.6.0","vendor":{"version":"15.10","name":"Ubuntu"}}
    
  5. 修改/etc/couchdb/local.ini文件的访问权限

     sudo chmod 777 local.ini
    

  6. 打开/etc/couchdb/local.ini查看文件信息(未修改前)

  7. 为便于通过外部IP来访问CouchDB,修改local.ini信息

     修改前      
         
         ;port = 5984
         ;bind_address = 127.0.0.1
     修改后     
    
         port = 5984
         bind_address = 0.0.0.0
    

  8. 通过下面的语句来重启CouchDB

     curl -X POST http://localhost:5984/_restart -H"Content-Type: application/json"
    

  9. 查看本地ip地址

     ip add
    

  10. 重启Couchb服务 ‘

    sudo /ect/init.d/couchdb start
    

  11. 可以通过浏览器来访问CouchDB

    http://<YOUR_SERVER_IP>:5984/_utils       
     
    

  12. 点击如图所示,进行Replicator(复制器)设置

  13. 安装一个acro-storage(Acralyzer的存储端)

    在replicator页面,并填写表单的from Remote Database和from Remote Database类似如下所示:
    from Remote Database: http://get.acralyzer.com/distrib-acra-storage
    to Local Database: acra-myapp 
    

  14. Acralyzer存储器安装完成后如下所示

  15. 数据库信息如下(新增acra-myapp)

  16. 同理安装Acralyzer

    from Remote Database: http://get.acralyzer.com/distrib-acralyzer
    to Local Database: acralyzer
    

  17. Acralyzer安装完成后如下所示

  18. 经过上述操作后系统里数据库如下

  19. 打开浏览器,输入如下网址访问Acralyzer主页

    http://<YOUR_SERVER_IP>:5984/acralyzer/_design/acralyzer/index.html
    

  20. 进入 Admin 页并点击 Users

  21. 新建用户,填写用户名和密码后,点击创建,会生成用户信息

    注: 此处的信息后面创建客户端时会用到   
    

  22. 保护acra-myapp里的数据,可以设定仅开放权限给管理员或者某些用户

    依次进入acra-myapp,然后点击Securities。 填写Members段里的Roles字段。如下所示:
    


  23. 之后可以通过类似下面这样的网页来访问操作面板

    http://<YOUR_SERVER_IP>:5984/acralyzer/_design/acralyzer/index.html
    

客户端搭建

  1. 创建AcraSample应用,在build.gradle中添加依赖

  2. 自定义Application类,并添加注释

     注:AcraCore是固定配置   
         AcraHttpSender中填写服务端创建时的User信息   
         AcraDialog填写异常时弹出Dialog填写信息   
         AcraToast异常时吐司异常信息   
         AcraMailSender异常时发送邮件   
         AcraNotification异常时发送通知  
    

  3. 在AndroidManifest.xml中添加网络权限

     uses-permission android:name="android.permission.INTERNET"
    

异常测试

  1. 添加异常测试类型(本部分测试空指针、数组角标、ANR、类型转换)

  2. 运行到手机中

  3. 测试异常

     注:异常时弹出对话框,用户可添加异常反馈   
    

  4. 异常报告

  5. 异常详情

总结

本文主要讲述了通过ACRA在本地搭建服务端和移动端的过程、异常问题的测试、异常报告的分享,当然ACRA也提供自定义功能,用户可根据需要自行定义。