Android開發之——搭建本地Crashing跟蹤系統ACRA
前言
開發的手機應用,受諸多條件的限制如:硬體、系統升級、網路等綜合因素的影響,極有可能產生異常,如何有效的收集異常資訊反饋給程式開發人員,便於及時有效的解決BUG,便成為了首要問題。
值得慶賀的是國內一些大廠已經提供了SDK供開發者免費試用,如友盟統計,騰訊Bugly等;本文要講述的是Github上普遍試用的異常蒐集工具ACRA.
準備
- Ubuntu 16.04(搭建服務端)
- Android Studio(開發客戶端)
- couchdb
ACRA
環境搭建
伺服器搭建
Ubuntu上安裝Acralyzer
-
開啟終端,輸入如下命令,安裝couchdb
sudo apt-get install couchdb
-
安裝curl工具
sudo apt-get install curl
-
使用如下指令來驗證是否安裝成功
curl http://127.0.0.1:5984
-
出現如下資訊說明安裝成功
{"couchdb":"Welcome","uuid":"f8c3466d228d317565161fa2e9b29e05","version":"1.6.0","vendor":{"version":"15.10","name":"Ubuntu"}}
-
修改/etc/couchdb/local.ini檔案的訪問許可權
sudo chmod 777 local.ini
-
開啟/etc/couchdb/local.ini檢視檔案資訊(未修改前)
-
為便於通過外部IP來訪問CouchDB,修改local.ini資訊
修改前 ;port = 5984 ;bind_address = 127.0.0.1 修改後 port = 5984 bind_address = 0.0.0.0
-
通過下面的語句來重啟CouchDB
curl -X POST http://localhost:5984/_restart -H"Content-Type: application/json"
-
檢視本地ip地址
ip add
-
重啟Couchb服務 ‘
sudo /ect/init.d/couchdb start
-
可以通過瀏覽器來訪問CouchDB
http://<YOUR_SERVER_IP>:5984/_utils
-
安裝一個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
-
Acralyzer儲存器安裝完成後如下所示
-
資料庫資訊如下(新增acra-myapp)
-
同理安裝Acralyzer
from Remote Database: http://get.acralyzer.com/distrib-acralyzer to Local Database: acralyzer
-
Acralyzer安裝完成後如下所示
-
經過上述操作後系統裡資料庫如下
-
開啟瀏覽器,輸入如下網址訪問Acralyzer主頁
http://<YOUR_SERVER_IP>:5984/acralyzer/_design/acralyzer/index.html
-
進入 Admin 頁並點選 Users
-
新建使用者,填寫使用者名稱和密碼後,點選建立,會生成使用者資訊
注: 此處的資訊後面建立客戶端時會用到
-
保護acra-myapp裡的資料,可以設定僅開放許可權給管理員或者某些使用者
依次進入acra-myapp,然後點選Securities。 填寫Members段裡的Roles欄位。如下所示:
-
之後可以通過類似下面這樣的網頁來訪問操作面板
http://<YOUR_SERVER_IP>:5984/acralyzer/_design/acralyzer/index.html
客戶端搭建
-
建立AcraSample應用,在build.gradle中新增依賴
-
自定義Application類,並添加註釋
注:AcraCore是固定配置 AcraHttpSender中填寫服務端建立時的User資訊 AcraDialog填寫異常時彈出Dialog填寫資訊 AcraToast異常時吐司異常資訊 AcraMailSender異常時傳送郵件 AcraNotification異常時傳送通知
-
在AndroidManifest.xml中新增網路許可權
uses-permission android:name="android.permission.INTERNET"
異常測試
總結
本文主要講述了通過ACRA在本地搭建服務端和移動端的過程、異常問題的測試、異常報告的分享,當然ACRA也提供自定義功能,使用者可根據需要自行定義。