一、什么是ACRA
ACRA全称: Application Crash Report for Android.
顾名思义, ACRA是一个优秀的Android异常日志收集的开源框架. 利用他可以轻松的实现Android APP 异常日志的收集.
下载地址: https://github.com/ACRA/acra
二、优点
A.异常报告的几种提交方式:
- 静默提交(默认)
- 土司提醒
- 状态栏+对话框提醒
- 对话框提醒( since 4.3.0b1)
B.可以在报告随意添加自己的内容
C.应用未崩溃的情况下, 也可以发送报告
D.如果没有网络,异常日志会暂时保存,连接网络后再发送
E.可以同 自托管报告接收脚本 一起使用
F.使用除静默提交外的任何一种提交方式, 系统自带的”强制关闭”对话框将不再弹出, 并且不会在要求发送异常报告.
G.允许发送报告到多种终端:
- Google Docs spreadsheet(废弃)
- 服务器的HTTP POST脚本
- 各种终端
- 通过实现自己的report sender可以向更多的终端发送报告
- 通过右键发送
三、使用步骤
1.将ACRA的jar包添加到工程中
2.建立一个Application的子类,这里以BaseApplication为例
注意要在AndroidMainfest.xml的Application节点中配置name属性, 还要给APP添加网络权限
<application
android:name="BaseApplication"
<uses-permission android:name="android.permission.INTERNET"></uses-permission>
3.在BaseApplication中添加如下代码:
import org.acra.*;
import org.acra.annotation.*;
@ReportsCrashes(
formKey = "", // This is required for backward compatibility but not used
formUri = "http://www.backendofyourchoice.com/reportpath"
)
public class MyApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
// 初始化ACRA
ACRA.init(this);
}
}
4.大功告成,异常日志已经可以提交到你的服务器了,很简单,有木有!
当然,如果你想配置更完美的ACRA,那么请继续往下看…
四、更多配置
1.报告提交方式的配置
- 上面讲的是静默提交方式的配置,我们再来说说其他几种方式
- 土司提醒:
@ReportsCrashes(formKey="dGVacG0ydVHnaNHjRjVTUTEtb3FPWGc6MQ",
mode = ReportingInteractionMode.TOAST,
forceCloseDialogAfterToast = false, // optional, default false
resToastText = R.string.crash_toast_text)
public class MyApplication extends Application {
...
在strings.xml中配置土司弹出的内容
<string name="crash_toast_text">Ooooops ! I crashed, but a report has been sent to my developer to help f