1. 程式人生 > >Android開發之——搭建本地Crashing跟蹤系統ACRA

Android開發之——搭建本地Crashing跟蹤系統ACRA

前言

開發的手機應用,受諸多條件的限制如:硬體、系統升級、網路等綜合因素的影響,極有可能產生異常,如何有效的收集異常資訊反饋給程式開發人員,便於及時有效的解決BUG,便成為了首要問題。

值得慶賀的是國內一些大廠已經提供了SDK供開發者免費試用,如友盟統計,騰訊Bugly等;本文要講述的是Github上普遍試用的異常蒐集工具ACRA.

準備

  1. Ubuntu 16.04(搭建服務端)
  2. Android Studio(開發客戶端)
  3. couchdb

ACRA

環境搭建

伺服器搭建

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也提供自定義功能,使用者可根據需要自行定義。