BugTags 讓Bug無所遁形,記錄集成BugTags之路

首先咱們先來看兩個圖,在我的app發生崩潰,app重啓之後,我們會收到郵件提醒.點進去查看bug詳情


怎麼樣,機型,錯誤日誌,運行截圖統統都有了,瞬間感覺自己萌萌噠啊

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章