天天看点

Android接入腾讯Bugly统计SDK

本来我们App是接入的友盟统计的SDK,但是确实是不太好用,上个版本iOS先接入了Ugly作为尝试,发现与需求相符比友盟略好,所以这个版本Android要引入Bugly统计

因为热更新功能很早之前就接了tinker,所以就没再依赖这里面的

步骤就是按文档走,这里简单记录一下

  1. 集成SDK 在Module的build.gradle文件中添加依赖和属性配置:
    dependencies {
        compile 'com.tencent.bugly:crashreport:latest.release' //其中latest.release指代最新Bugly SDK版本号,也可以指定明确的版本号,例如我接入时最新版本是3.0.0
    }
               
  2. 当然也可能有使用NDK的需求,集成NDK这一步不是必要的
    android {
        defaultConfig {
            ndk {
                // 设置支持的SO库架构
                abiFilters 'armeabi' //, 'x86', 'armeabi-v7a', 'x86_64', 'arm64-v8a'
            }
        }
    }
    
    dependencies {
        compile 'com.tencent.bugly:crashreport:latest.release' //这是必须的
        compile 'com.tencent.bugly:nativecrashreport:latest.release' //其中latest.release指代最新Bugly NDK版本号,也可以指定明确的版本号,例如3.0
    }
               
  3. 在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" />
               
  4. 混淆

    在Proguard混淆文件中增加以下配置:

    -dontwarn com.tencent.bugly.**
    -keep public class com.tencent.bugly.**{*;}
               
    引入过程已经结束了,接下来是如何使用
  5. 初始化

    获取APP ID并将以下代码复制到项目Application类onCreate()中,Bugly会为自动检测环境并完成配置:

    CrashReport.initCrashReport(getApplicationContext(), "注册时申请的APPID", false);
               
    注意:
    为了保证运营数据的准确性,建议不要在异步线程初始化Bugly。
    第三个参数为SDK调试模式开关,调试模式的行为特性如下:	
        输出详细的Bugly SDK的Log;
        每一条Crash都会被立即上报;
        自定义日志将会在Logcat中输出。
        建议在测试阶段建议设置成true,发布时设置为false。
               

实际上到这里就已经结束了。当然这个初始化还能增加一个参数,参数可以携带渠道号、包名、版本号、设置延迟等,这个参数是UserStrategy类作为Bugly的初始化扩展,在这里您可以修改本次初始化Bugly数据的版本、渠道及部分初始化行为。通过以下方式传入:

6.

```
UserStrategy strategy = new UserStrategy(appContext);
//...在这里设置strategy的属性,在bugly初始化时传入
strategy.setAppChannel("myChannel");  //设置渠道
strategy.setAppVersion("1.0.1");      //App的版本
strategy.setAppPackageName("com.tencent.xx");  //App的包名  
//strategy.setAppReportDelay(20000);   //改为20s
//...
CrashReport.initCrashReport(appContext, APPID, true, strategy);
```
           

到这里就把基本功能接入完成了,具体细节和其他高级设置参考官方文档:Bugly官方文档