目录

Android质量跟踪,监控(bugly) SDK集成

[官方网站](http://bugly.qq.com/) :<http://bugly.qq.com/>

集成参考:[链接](http://bugly.qq.com/androidfast)

tip:可绑定微信,进行实时监控。

1.使用android studio的Gradle自动导入方式集成sdk

1)在项目的buid.gradle文件的dependencies(buildscript部分)中添加符号表插件:

classpath 'com.tencent.bugly:symtabfileuploader:<version>' 其中<version>替换为当前最新符号表版本号1.2.3 比如: <code> buildscript { repositories { jcenter() } dependencies { classpath 'com.android.tools.build:gradle:1.3.0' classpath 'com.tencent.bugly:symtabfileuploader:1.2.3' 其中<version>替换为当前最新符号表版本号1.2.3

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}
allprojects {
    repositories {
        jcenter()
    }
}

</code>

2)在module的buid.gradle文件的顶部添加依赖和属性:

apply plugin: 'bugly'   //添加Bugly符号表插件
      dependencies {
          compile 'com.tencent.bugly:crashreport:<version>'  //其中<version>替换为当前最新bugly版本号1.2.3.8
      }
      bugly {
          appId = 'your AppId'    //注册时分配的App ID
          appKey = 'your AppKey'  //注册时分配的App Key
      }

比如:

	apply plugin: 'com.android.application'
	apply plugin: 'bugly'   //添加Bugly符号表插件
	
	android {
	    compileSdkVersion 23
	    buildToolsVersion "22.0.1"
	
	    defaultConfig {
	        applicationId "com.tebon.test.buglyproject"
	        minSdkVersion 16
	        targetSdkVersion 23
	        versionCode 1
	        versionName "1.0"
	    }
	    buildTypes {
	        release {
	            minifyEnabled false
	            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
	        }
	    }
	}
	
	dependencies {
	    compile fileTree(dir: 'libs', include: ['*.jar'])
	    compile 'com.android.support:appcompat-v7:23.0.1'
	    compile 'com.tencent.bugly:crashreport:1.2.3.8'  //其中<version>替换为当前最新bugly版本号1.2.3.8
	}
	
	bugly {
	    appId = '900009284'    //注册时分配的App ID
	    appKey = 'zRxYDKnaUdUPtQah'  //注册时分配的App Key
	}

2.参数配置

1)、在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" />

2)、避免混淆Bugly,请在Proguard混淆文件中配置:

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

3.代码调用

	Bugly会为您检测使用环境并自动完成配置。请将以下CrashReport代码复制到项目Application类onCreate()中:

	CrashReport.initCrashReport(appContext, "注册时申请的APPID", false);

比如 application:

	package com.tebon.test.buglyproject;
	import android.app.Application;
	import android.util.Log;	
	import com.tencent.bugly.crashreport.CrashReport;
	
	/**
	 * Created by liyb on 2015/9/18.
	 */
	public class MyApplication extends Application {
	
	    @Override
	    public void onCreate() {
	        super.onCreate();
	
	        Log.i("MyApplication-->","appliction 启动");
                //true 表示bugly打印日志,正式环境改成false
	        CrashReport.initCrashReport(this.getApplicationContext(), "900009284", true);
	    }
	}

	//tips 此类需要在AndroidManifest.xml中配置才有效

比如 MainActivity (activity 添加按钮调用crash方法即可出现效果):

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Log.i("MainActivity-->", "MainActivity 启动");
        //放入application中因为application能比在Activity里注册更早地进行捕获
        //CrashReport.initCrashReport(this.getApplicationContext(), "900009284",true);
    }
    public void crash(View view){
         CrashReport.testJavaCrash();
    }
    private String s;
    public void crashStringError(View view){
        System.out.println(s.equals("any string"));
    }

tips: AndroidManifest.xml中配置Application

	<!-- 配置application  -->
	<application
        android:name=".MyApplication"
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name=".MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>