[翻译]如何安装ACRA-一个Android应用Crash跟踪系统—在你自己的服务器上
How to setup ACRA, an Android Application Crash Tracking system, on your own host 原文地址:
开发一个手机应用有如此多的限制,比如硬件限制(CPU,内存,电池等等)。如果你的代码不是足够合理,那就准备迎接世界上最严重的问题吧:Crash。根据研究所示:
应用崩溃是手机app用户抱怨最多的额问题
更严重的:
如果一个应用连续崩溃3次,大概一半的用户会卸载这个应用
崩溃追踪系统,让开发者能够从用户的设备上收集到每一个导致崩溃的细节,专门用来解决这种应用崩溃问题。目前最流行的2个流行崩溃追踪系统是 Crashlytics 和 Parse Crash Reporting,这两个服务都是免费的,开发者可以免费集成他们到你的app。当应用奔溃,整个跟踪报告就会发送到他们的后端,开发者可以及时快捷的修复这些严重的问题,这样,你就可以在很短的时间内奉上一个“无Crash”的应用。
然而,这些服务的提供商会收集这些数据,对于对用户隐私敏感的公司还是有些顾虑的。
那么。。。是否有那种允许我们在自己服务器部署的崩溃追踪系统?当然有!!并且会非常容易创建,下面有请Application Crash Reporting on Android (ACRA) 一个允许Android应用自动发送崩溃报告到自己服务器的库。
开始!
创建服务器
服务器端是客户端的一个先决条件。 因此,让我们从服务器端开始。
ACRA是精心设计的,是相当受欢迎的(ACRA是针对客户端应用的,服务端可以自己搭建)。 它允许开发者开发自己的服务器系统,我们找到网上有很多种ACRA服务端。我建议选择–也是最好的—Acralyzer,Acralyzer也是ACRA团队开发的,Acralyzer工作在Apache CouchDB之上,所以除了CouchDB之外,没有必要安装任何额外的软件。
Acralyzer是一个全功能的后端崩溃跟踪系统。 从不同设备反馈回的同一堆栈跟踪报告会被归类为一个问题。如果你已经修复了某个问题,你可以通过简单的点击一下来关闭这个问题。同时它也是实时工作的。 这个系统我找到的唯一一个缺点就是他的界面有点复杂,但是无所谓啦,本来就是为开发者设计的嘛 =P。
安装很简单,下面是一个如何在Ubuntu上安装Acralyzer的完整的指导。
首先从安装couchdb开始,打开终端,输入如下命令:
apt-get install couchdb
使用如下指令来验证是否安装成功
curl http://127.0.0.1:5984
如果安装成功,会返回如下信息
{“couchdb”:”Welcome”,”version”:”1.2.0″}
编辑/etc/couchdb/local.ini 文件来允许我们通过外部IP来访问CouchDB(默认只能通关127.0.0.1来访问)。只需要把下面两行的注释去掉即可。
;port = 5984;bind_address = 127.0.0.1
然后修改为:
port = 5984bind_address = 0.0.0.0
在这个文件里,,你还应该添加一个用户名/密码来作为管理员账户,找到这一行(一般是在文件末尾):
[admins]
在它的下一行添加一个 username=password形式的内容。例如:
nuuneoi = 12345
不用担心在这里写明文密码会不会有问题,一旦CouchDB重启后,你的密码会被自动哈希加密,并且是不可读的
保存文件,通过下面的语句来重启CouchDB:
curl -//localhost:5984/_restart -H”Content-Type: application/json”
现在,你就可以通过浏览器来访问CouchDB了,网页服务被称为Futon—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-storageto Local Database: acra-myapp
然后点击Replicate,等待它完成。
然后使用类似的方法安装Acralyzer:
from Remote Database: http://get.acralyzer.com/distrib-acralyzerto Local Database: acralyzer
还是点击Replicate来安装
如果你上面做的都对的话,你会发现系统里多了2个数据库—-acra-myapp 和 acralyzer.
离成功很近了,下一步,我们要创建用户,打开浏览器,转到这个网址:
进入 Admin 页并点击 Users
填写一个任意的用户名和密码(不一定非得是之前的那个管理员账户),点击Create User。然后会看到如下信息:
把这些信息都拷贝保存在文档里,我们会在后面的客户端里用到
最后一件事就是保护acra-myapp里的数据,可以设定仅开放权限给管理员或者某些用户,你可以进入acra-myapp,然后点击Securities。 填写Members段里的Roles字段。如下所示:
[“reader”]
搞定!
之后,你就可以通过类似下面这样的网页来访问操作面板:
http://<YOUR_SERVER_IP>:5984/acralyzer/_design/acralyzer/index.html请注意:arco-myapp是为一个应用创建的,如果你要为另外一个应用创建一个后端系统。那么重复上面的步骤,复制一个acro-storage,不过需要把本地的数据库改为*acra-<your_app_name>* 。 注意名字是以*acra-*开头的。
如果系统里不止一个app。Acralyzer的操作面板里会呈现一个下拉列表,让你选择哪一个应用来查看问题报告,有空可以自己试试。
在客户端安装ACRA
在手机客户端安装ACRA非常容易,首先需要在build.gradle中添加一个(dependency)依赖(使用Android Studio):
compile ‘ch.acra:acra:4.6.1’
同步你的gradle文件,然后创建一个自定义的Application类—不要忘记在AndroidManifest.xml中定义它。(我认为每个Android开发者都会怎么做的),
每一件事都要用多方面的角度来看它