腾讯Bugly异常监控集成

来源:互联网 发布:java 获取月份第一天 编辑:程序博客网 时间:2024/05/17 06:48

腾讯Bugly异常监控集成

本文对bugly的集成及使用做简单的整理及说明

集成Bugly SDK

在Module的build.gradle文件中添加依赖和属性配置:

dependencies {    compile 'com.tencent.bugly:crashreport:latest.release' //其中latest.release指代最新版本号,也可以指定明确的版本号,例如2.1.5}

在AndroidManifest.xml中添加权限:

<uses-permission android:name="android.permission.READ_PHONE_STATE" /><uses-permission android:name="android.permission.INTERNET" /><uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /><uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /><uses-permission android:name="android.permission.READ_LOGS" />

避免混淆Bugly,在Proguard混淆文件中增加一行配置:

-dontwarn com.tencent.bugly.**-keep public class com.tencent.bugly.**{*;}

配置符号表

在项目的buid.gradle文件的dependencies(buildscript部分)中添加:
classpath ‘com.tencent.bugly:symtabfileuploader:1.3.9’
其中1.3.9为插件版本号
在module的buid.gradle文件的顶部添加:

  apply plugin: 'bugly'      bugly {          appId = '<App ID>'          appKey = '<App Key>'      }

除了appId和appKey之外,还可以设置其他属性,属性列表如下:
属性 值 说明
appId String App ID
appKey String App Key
execute boolean 插件开关
upload boolean 上传开关
outputDir String 符号表文件输出路径
/build.gradle文件如下:

buildscript {        repositories {            jcenter()        }        dependencies {            ...            classpath 'com.tencent.bugly:symtabfileuploader:1.3.9'        }    }}

其中”1.3.9”为Bugly插件版本号,更新插件只需要修改这个版本号并Rebuild一下工程即可。
//build.gradle文件如下:

  apply plugin: 'bugly'    ...    bugly {         appId = '900000000'        appKey = 'abcdefghijklmn'    }

项目应用了Bugly插件之后,Gradle会新建出一个“uploadReleaseSymtabFile”的任务,该任 务被“assembleRelease”任务依赖,即在Release编译时执行。

最简单的初始化

获取APP ID并将以下代码复制到项目Application类onCreate()中,Bugly会为自动检测环境并完成配置:
CrashReport.initCrashReport(getApplicationContext(), “注册时申请的APPID”, false);
为了保证运营数据的准确性,建议不要在异步线程初始化Bugly。
第三个参数为SDK调试模式开关,调试模式的行为特性如下:
● 输出详细的Bugly SDK的Log;
● 每一条Crash都会被立即上报;
● 自定义日志将会在Logcat中输出。
建议在测试阶段建议设置成true,发布时设置为false。

现在可以制造一个Crash,来体验Bugly的能力了。在初始化Bugly的之后,调用Bugly测Java Crash接口。
CrashReport.testJavaCrash();

一些常用配置

设置用户ID

bugly提供了用户ID记录接口,能精确定位到某个用户的异常。 例:网游用户登录后,通过该接口记录用户ID,在页面上可以精确定位到每个用户发生Crash的情况。
CrashReport.setUserId(“9527”); //本次启动后的异常日志用户ID都将是9527

自定义日志功能

提供了自定义Log的接口,用于记录一些开发者关心的调试日志,可以更全面地反应App异常时的前后文环境。使用方式与android.util.Log一致。用户传入TAG和日志内容。该日志将在Logcat输出,并在发生异常时上报。有如下接口:
BuglyLog.v(tag, log)
BuglyLog.d(tag, log)
BuglyLog.i(tag, log)
BuglyLog.w(tag, log)
BuglyLog.e(tag, log)
注意:
1)使用BuglyLog接口时,为了减少磁盘IO次数,我们会先将日志缓存在内存中。当缓存大于一定阈值(默认10K),会将它持久化至文件。您可以通过setCache(int byteSize)接口设置缓存大小,范围为0-30K。例:
BuglyLog.setCache(12 * 1024) //将Cache设置为12K
2)如果没有使用BuglyLog接口,且初始化Bugly时isDebug参数设置为false,该Log功能将不会有新的资源占用;
3)为了方便开发者调试,当初始化Bugly的isDebug参数为true时,异常日志同时还会记录Bugly本身的日志。请在App发布时将其设置为false;
4)上报Log最大30K;

设置标签

自定义标签,用于标明App的某个“场景”。在发生Crash时会显示该Crash所在的“场景”,以最后设置的标签为准,标签id需大于0。例:当用户进入界面A时,打上9527的标签:
CrashReport.setUserSceneTag(context, 9527); // 上报后的Crash会显示该标签
注意:打标签之前,需要在Bugly产品页配置中添加标签,取得标签ID后在代码中上报。

设置自定义Map参数

自定义Map参数可以保存发生Crash时的一些自定义的环境信息。在发生Crash时会随着异常信息一起上报并在页面展示。
CrashReport.putUserData(context, “userkey”, “uservalue”);
注意:最多可以有9对自定义的key-value(超过则添加失败),key限长50字节、value限长200字节,过长截断。

上传错误信息

CrashReport.postCatchedException(new Exception(“..”));

1 0
原创粉丝点击