本来我们App是接入的友盟统计的SDK,但是确实是不太好用,上个版本iOS先接入了Ugly作为尝试,发现与需求相符比友盟略好,所以这个版本Android要引入Bugly统计
因为热更新功能很早之前就接了tinker,所以就没再依赖这里面的
步骤就是按文档走,这里简单记录一下
-
集成SDK 在Module的build.gradle文件中添加依赖和属性配置:
dependencies { compile 'com.tencent.bugly:crashreport:latest.release' //其中latest.release指代最新Bugly SDK版本号,也可以指定明确的版本号,例如我接入时最新版本是3.0.0 }
-
当然也可能有使用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 }
-
在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" />
-
混淆
在Proguard混淆文件中增加以下配置:-dontwarn com.tencent.bugly.** -keep public class com.tencent.bugly.**{*;}
引入过程已经结束了,接下来是如何使用
-
初始化
获取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官方文档