项目中使用到集成腾讯的Bugly方便应用的版本管理,崩溃日志的查看和热更新的应用,研究了一下写出来了:
库文件导入
Bugly支持自动集成和手动集成两种方式,如果您使用Gradle编译Apk,我们强烈推荐您使用自动接入方式配置库文件。
自动集成(推荐)
Bugly支持JCenter仓库和Maven Central仓库。为了实现更加灵活的配置,Bugly SDK(2.1.5及以上版本)和NDK(SO库)目前已经分开成两个独立的仓库:
- SDK:com.tencent.bugly:crashreport
- NDK:com.tencent.bugly:nativecrashreport
其中,集成Bugly NDK时,需要同时集成Bugly SDK。
集成SDK分成以下几步来完成:
1:在Module的build.gradle文件中添加依赖和属性配置:
dependencies {
//如果你只需要继承单个的SDK
compile 'com.tencent.bugly:crashreport:latest.release' //其中latest.release指代最新Bugly SDK版本号,也可以指定明确的版本号,例如2.2.0
}
2:同时集成SDK和NDK
在Module的build.gradle(也就是APP下的)文件中添加依赖和属性配置:
android {
compileSdkVersion 26
defaultConfig {
applicationId "com.choicelean.superwinner"
minSdkVersion 19
targetSdkVersion 26
versionCode 2
versionName "1.1"
ndk {
//设置Bugly支持的SO库架构,就是下面的架构导致系统自带的虚拟机不能使用,可以自己根据需要自动更改
abiFilters 'armeabi-v7a'//有'x86', 'armeabi-v7a', 'x86_64', 'arm64-v8a'几个选项可以选择
}
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
dependencies {
//开始的时候我按照下面的腾讯官方设置,AndroidStudio老是报错,出问题
compile 'com.tencent.bugly:crashreport:latest.release' //其中latest.release指代最新Bugly SDK版本号,也可以指定明确的版本号,例如2.1.9
compile 'com.tencent.bugly:nativecrashreport:latest.release' //其中latest.release指代最新Bugly NDK版本号,也可以指定明确的版本号,例如3.0
所以查阅了很多资料才发现可以这样写:
//bugly
compile 'com.tencent.bugly:crashreport_upgrade:latest.release'
//其中latest.release指代最新版本号,也可以指定明确的版本号,例如1.2.0
compile 'com.tencent.bugly:nativecrashreport:latest.release'
}
}
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" />
注:如果您的App需要上传到
google play store
,您需要将READ_PHONE_STATE
权限屏蔽掉或者移除,否则可能会被下架。
- 请避免混淆Bugly,在Proguard混淆文件中增加以下配置:
# 9. 腾讯bugly,请避免混淆Bugly,在Proguard混淆文件中增加以下配置: -dontwarn com.tencent.bugly.** -keep public class com.tencent.bugly.**{*;} -keep class android.support.**{*;}
4:最后一步也是最重要的
获取APP ID并将以下代码复制到项目Application类onCreate()中,Bugly会为自动检测环境并完成配置:
下面的是我项目中应用的信息(APPID就是下面的这个):
Beta.autoInit = false;//在mainActivity中检查
Bugly.init(getApplicationContext(), "你自己的APPID", true(当项目上线时可以设置成false));
为了保证运营数据的准确性,建议不要在异步线程初始化Bugly。
第三个参数为SDK调试模式开关,调试模式的行为特性如下:
- 输出详细的Bugly SDK的Log;
- 每一条Crash都会被立即上报;
- 自定义日志将会在Logcat中输出。
建议在测试阶段建议设置成true,发布时设置为false。
5:测试Bugly是否集成成功:
为了测试我们的Bugly集成是否完成 (我把versionCode改成2,VersionName改成1.2)登陆腾讯Bugly官网:
当查看到如下信息的时候说明我们的应用集成成功了。
6:查看程序崩溃的信息:
当我们的应用开发完成之后就可以利用Bugly来查看用户使用我们的程序的时候的崩溃的情况,比如我的应用中
出现一个OOM内存溢出的时候就会上传到网上,我们不用对接用户信息就可以看到我们应用崩溃的详细情况如下:
这样我们就能根据相应的日志信息来检查我们程序中出现的BUG进而快速修改。