转:https://bugly.qq.com/docs/user-guide/instruction-manual-android-upgrade/?v=20160901120848
注意:经过实践,ecllipse的工程bugly_crash_upgrade_vXXX.jar与android-support-v4.jar必须在libs目录下,否则会app会崩溃出现NoClassDefFoundError错误;Bugly Android 应用升级 SDK 使用指南
概述
升级功能是专为App的灰度升级而开发的组件,在bugly内测页面配置好App的更新策略,策略指定的老版本App在启动时会自动检测更新并提示升级,为团队的应用分发,灰度内测提供一站式解决方案。
自动导入(推荐)
使用Android Studio创建project
【File】-> 【New】->【New Project】
gradle配置(重要)
配置示例(路径app/build.gradle):
android {
defaultConfig {
ndk {
//设置支持的SO库架构
abiFilters 'armeabi' //, 'x86', 'armeabi-v7a', 'x86_64', 'arm64-v8a'
}
}
}
dependencies {
//注释掉原有bugly的仓库
//compile 'com.tencent.bugly:crashreport:latest.release'//其中latest.release指代最新版本号,也可以指定明确的版本号,例如1.2.9
compile 'com.tencent.bugly:crashreport_upgrade:latest.release'//其中latest.release指代最新版本号,也可以指定明确的版本号,例如1.0.0
compile 'com.tencent.bugly:nativecrashreport:latest.release' //其中latest.release指代最新版本号,也可以指定明确的版本号,例如2.2.0
}
后续更新升级SDK时,只需变更配置脚本中的版本号即可。
注意: 升级SDK已经集成crash上报功能,已经集成Bugly的用户需要注释掉原来Bugly的jcenter库; 已经配置过符号表的Bugly用户保留原有符号表配置; Bugly SDK(2.1.5及以上版本)已经将Java Crash和Native Crash捕获功能分开,如果想使用NDK库,需要配置: compile 'com.tencent.bugly:nativecrashreport:latest.release'
手动导入jar
我们也支持手动集成升级SDK,毋须按照下面步骤进行接入。
下载SDK库文件
点击下载即可,解压缩会发现包含以下文件:
- 需要集成的jar包
- 接入文档
- Demo示例
构建jar编译路径
Android Studio工程
- 将Bugly库文件复制到工程的libs目录下。
- 点击Sync,同步配置。
如下图所示:
Elipse工程项目
- 将Bugly库文件复制到工程的libs目录下。
- Refresh一下工程
- 添加工程依赖:鼠标右键点击Bugly的JAR文件,添加到编译路径中。
如下图所示:
参数配置
在AndroidMainfest.xml中进行以下配置:
1. 权限配置
<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" />
<!--保存资源到SD卡-->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
2. Activity配置
<activity
android:name="com.tencent.bugly.beta.ui.BetaActivity"
android:theme="@android:style/Theme.Translucent" />
混淆配置
为了避免混淆SDK,在Proguard混淆文件中增加以下配置:
-keep public class com.tencent.bugly.**{*;}
注意: 已经接入Bugly SDK的用户需要先删除原Bugly SDK的jar包; android4.1以上的工程必须把jar包放在libs目录下,否则会出现NoClassDefFoundError错误;
如果您的工程有Native代码(C/C++)或者集成了其他第三方SO库,建议下载Bugly的NDK动态库。
Bugly NDK包含多个架构的SO库:
armeabi
armeabi-v7a
arm64-v8a
x86
x86_64
在集成Bugly SO库时,请注意只保留支持的架构SO库。
测试验证
SDK初始化
Bugly.init(getApplicationContext(), "注册时申请的APPID", false);
提示:已经接入Bugly用户改用上面的初始化方法,不影响原有的crash上报功能; init方法会自动检测更新,不需要再手动调用Beta.checkUpdate(),如需增加自动检查时机可以使用Beta.checkUpdate(false,false);
上传升级包
进入内测页面选择注册的APP,点击发布新版本,上传要升级的APP的版本(上传APP的versioncode必须不低于外发版本的versiocode,否则用户检测不到更新)
配置升级策略
点击新建升级策略
使用默认策略配置,点击创建策略
策略创建完成后会回到版本编辑页面,点击立即启动,使策略生效;
测试验证
完成步骤4.4中的策略配置,在本地安装配置过升级SDK的低版本APP,启动后(请先杀掉进程)等待一段时间(默认是3s)会弹出如下升级弹窗,表示SDK配置成功。
注: 如果你有以下需求,可以参考升级SDK高级配置:
设置自动初始化
设置开关自动检查
设置升级检查周期
设置初始化延迟
设置通知栏图标
设置更新弹窗bannner图
设置更新资源存储目录
设置开启显示打断策略
设置自定义UI
设置升级对话框生命周期回调