Snake's Home

acralyzer监控你的App

本文发布在 搭建自己的 crash 监控系统

开发一个手机应用有如此多的限制,比如硬件限制(CPU,内存,电池等等)。如果你的代码不是足够合理,那就准备迎接世界上最严重的问题吧:Crash。根据研究所示:

应用崩溃是手机app用户抱怨最多的额问题

更严重的:

如果一个应用连续崩溃3次,大概一半的用户会卸载这个应用

崩溃追踪系统,让开发者能够从用户的设备上收集到每一个导致崩溃的细节,专门用来解决这种应用崩溃问题。目前最流行的2个流行崩溃追踪系统是 Crashlytics 和 Parse Crash Reporting,这两个服务都是免费的,开发者可以免费集成他们到你的app。当应用奔溃,整个跟踪报告就会发送到他们的后端,开发者可以及时快捷的修复这些严重的问题,这样,你就可以在很短的时间内奉上一个“无Crash”的应用。

然而,这些服务的提供商会收集这些数据,对于对用户隐私敏感的公司还是有些顾虑的。

那么。。。是否有那种允许我们在自己服务器部署的崩溃追踪系统?当然有!!并且会非常容易创建,下面有请Application Crash Reporting on Android (ACRA) 一个允许Android应用自动发送崩溃报告到自己服务器的库。

[翻译]如何安装ACRA

How to setup ACRA

git地址

以上都是在ubuntu上安装的步骤,我在Mac上实现了安装。

1. 安装couchdb数据库

1
Brew install couchdb

安装完成后,用如下指令来检验是否成功

1
2
3
4
5
6
➜  ~  couchdb
Apache CouchDB 1.6.1 (LogLevel=info) is starting.
Apache CouchDB has started. Time to relax.
[info] [<0.32.0>] Apache CouchDB has started on http://127.0.0.1:5984/
[info] [<0.108.0>] 127.0.0.1 - - GET / 200
[info] [<0.102.0>] 127.0.0.1 - - GET /favicon.ico 200

在浏览器中敲上 http://127.0.0.1:5984
你得到如此信息:

1
{"couchdb":"Welcome","uuid":"eba00733b63aab8847a954c2df76f432","version":"1.6.1","vendor":{"name":"Homebrew","version":"1.6.1_4"}}

恭喜你,数据库安装成功了。

2. 配置couchdb数据库

1
2
3
4
➜  ~  which couchdb
/usr/local/bin/couchdb
➜  ~  cd /usr/local/bin
➜  ~  subl couch-config

读读这个文件,大致知道文件都在啥位置

1
2
3
4
5
6
7
8
9
10
	staticdir="/usr/local/Cellar/couchdb/1.6.1_4/share/couchdb"
erlanglibdir="/usr/local/Cellar/couchdb/1.6.1_4/lib/couchdb/erlang/lib"
couchversion="1.6.1"
dbdir="/usr/local/var/lib/couchdb"
viewdir="/usr/local/var/lib/couchdb"
confdir="/usr/local/etc/couchdb"
urifile="/usr/local/var/run/couchdb/couch.uri"
logdir="/usr/local/var/log/couchdb"
erlangversion="18"
erlangbin="/usr/local/opt/erlang/bin/erl"

得到有用的信息:

1
confdir="/usr/local/etc/couchdb"

编辑/usr/local/etc/couchdb/local.ini 文件来允许我们通过外部IP来访问CouchDB(默认只能通关127.0.0.1来访问)。只需要把下面两行的注释去掉即可。

1
2
3
subl local.ini
;port = 5984
;bind_address = 127.0.0.1

然后修改为:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
port = 5984
bind_address = 0.0.0.0
```


在这个文件里,你还应该添加一个用户名/密码来作为管理员账户,找到这一行(一般是在文件末尾):

[admins]

在它的下一行添加一个 username=password形式的内容。例如:


``` bash
admin= 12345

; changing this.
[admins]
admin = 123456

不用担心在这里写明文密码会不会有问题,一旦CouchDB重启后,你的密码会被自动哈希加密,并且是不可读的
保存文件,通过下面的语句来重启CouchDB:

1
2
3
4
~  couchdb
Apache CouchDB 1.6.1 (LogLevel=info) is starting.
Apache CouchDB has started. Time to relax.
[info] [<0.32.0>] Apache CouchDB has started on http://0.0.0.0:5984/

现在,你就可以通过浏览器来访问CouchDB了,网页服务被称为Futon—CouchDB的界面后端。通过以下地址来打开浏览器:
http://localhost:5984/_utils/

多了两数据库。

CouchDB

3. 配置couchdb本地数据库

首先,你需要通过之前设定的管理员账户来登录系统

否则,后面的操作会出现如下错误:

1
2
[error] [<0.408.0>] httpd 500 error response:
 {"error":"unauthorized","reason":"unauthorized to access or create database acra-myapp"}

现在我们要安装一个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

然后点击Replicate,等待它完成。

成功后出现如下界面

acro-storage

然后使用类似的方法安装Acralyzer:

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

to Local Database: acralyzer

如果你上面做的都对的话,你会发现系统里多了2个数据库—-acra-myapp 和 acralyzer.

dbs

离成功很近了,下一步,我们要创建用户,打开浏览器,转到这个网址:

http://localhost:5984/acralyzer/_design/acralyzer/index.html

进入 Admin 页并点击 Users,

users

空间不能放太多照片,请移步以下链接。

本文发表在 Testerhome