BugTags 让Bug无所遁形,记录集成BugTags之路

首先咱们先来看两个图,在我的app发生崩溃,app重启之后,我们会收到邮件提醒.点进去查看bug详情

BugTags 让Bug无所遁形,记录集成BugTags之路_第1张图片BugTags 让Bug无所遁形,记录集成BugTags之路_第2张图片

怎么样,机型,错误日志,运行截图统统都有了,瞬间感觉自己萌萌哒啊

ok,那就简单说一下集成步骤吧

想使用这个SDk肯定也是需要注册,注册链接https://www.bugtags.com/

注册好账户之后,我们可以创建一个应用,名字随意,系统选择android

完成之后,我们就拿到了app_key,和app_secret

打开Android Studio,创建一个新的项目

在项目的build.gradle文件中修改成

buildscript {
    repositories {
        jcenter()
        mavenCentral()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:2.0.0-beta6'

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
        classpath 'com.bugtags.library:bugtags-gradle:latest.integration'
    }
}

allprojects {
    repositories {
        jcenter()
        mavenCentral()
    }
}


然后在我们的app里面的build.gradle文件中添加依赖和插件

apply plugin: 'com.bugtags.library.plugin'

//mapping upload
bugtags {
    appKey 'APP_KEY'  //your appKey
    appSecret 'APP_SECRET'    //your appSecret,admin can access in setting page
}

dependencies {
    compile 'com.bugtags.library:bugtags-lib:latest.integration'
}

一般写程序都会抽象出来一个BaseActivity 用来比较方便的管理所有的Activity,这次也不例外,编辑我们的BaseActivity添加几个回调(或者在所有的activity中添加这些回调)

 @Override
    protected void onResume() {
        super.onResume();
        //callback 1
        Bugtags.onResume(this);
    }

    @Override
    protected void onPause() {
        super.onPause();
        //callback 2
        Bugtags.onPause(this);
    }

    @Override
    public boolean dispatchTouchEvent(MotionEvent event) {
        //callback 3
        Bugtags.onDispatchTouchEvent(this, event);
        return super.dispatchTouchEvent(event);
    }

创建一个Application类,进行Sdk的初始化(最后不要忘记在配置文件中注册该类)
public class MyApp extends Application {
    @Override
    public void onCreate() {
        super.onCreate();
        initSdk();
    }

    private void initSdk() {
        BugtagsOptions.Builder builder = new BugtagsOptions.Builder();
        builder.trackingCrashLog(true);
        builder.trackingConsoleLog(true);
//      Bugtags.BTGInvocationEventBubble,在app中显示圆形小球
//      Bugtags.BTGInvocationEventNone,在app中不显示圆形小球
//      Bugtags.BTGInvocationEventShake,通过摇一摇让圆形小球显示出来
//      Bugtags.start("2d2314cb6ead8eea5647644da412fd5d", this, Bugtags.BTGInvocationEventNone);//这样在联机debug中不会上报异常
        Bugtags.start("2d2314cb6ead8eea5647644da412fd5d", this, Bugtags.BTGInvocationEventNone, builder.build());//联机debug中上报异常
    }
}


初始化的时候就有点讲究了,第一个参数是我们的app_key,第二个参数当前的application了,第三个参数是我们决定bugtags的行为是直接显示在app上呢,还是隐藏,亦或着通过摇一摇显示出小圆球界面呢,第三个参数定义我们sdk具体的行为,是否捕获日志什么,位置什么的

关于第四个参数比较有意思的一点是,当我们不去定义他的时候,如果我们的程序是debug编译的.那么崩溃之后他不会上传崩溃信息,如果要在debug下也是要捕获异常的.就要像我上面那样做一样

最后,最重要的一点是不要忘记给我们的app添加访问网络的权限,不然就算捕获到了异常日志也是不能提交上来的

sdk github地址https://github.com/bugtags/Bugtags-Android

源码地址:https://github.com/imgod1/BugTagsTest

你可能感兴趣的:(android)