Android 腾讯Bugly——异常上报和应用更新
来源:互联网 发布:java 面试常见问题 编辑:程序博客网 时间:2024/06/07 20:04
腾讯Bugly,为移动开发者提供专业的异常上报和运营统计,帮助开发者快速发现并解决异常,同时掌握产品运营动态,及时跟进用户反馈。
首先Bugly有两大优点,免费,不用审核
使用步骤如下:
1 。 创建产品
https://bugly.qq.com/v2/index,在这个网站注册和登录,然后点击立即接入,再点击新建产品,这个不用审核直接通过
2.异常上报
创建完成后,它提示你去选择集成SDK能力,
(1)首先是异常上报配置环境
在module里添加依赖
compile ‘com.tencent.bugly:crashreport:latest.release’ //其中latest.release指代最新Bugly SDK版本号,也可以指定明确的版本号,例如2.1.9
compile ‘com.tencent.bugly:nativecrashreport:latest.release’
还有NDK的配置
ndk {
// 设置支持的SO库架构
abiFilters ‘armeabi’ //, ‘x86’, ‘armeabi-v7a’, ‘x86_64’, ‘arm64-v8a’
}
在项目根目录的gradle.properties文件中添加:
android.useDeprecatedNdk=true
(2)写代码
在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" />
新建Application类,并设置为android:name的值,
原来可以在“AndroidManifest.xml”里配置Bugly的参数,但是我统一在Application里配置,我把自己Application类的代码贴出供大家参考,还有就是appID在右上角的更多点击后,再点击产品设置可以看到
public class MyApplication extends Application{ @Override public void onCreate() { super.onCreate(); CrashReport.UserStrategy strategy = new CrashReport.UserStrategy(this); strategy.setAppChannel("myChannel"); //设置渠道 strategy.setAppVersion("1.0.1"); //App的版本 strategy.setAppPackageName("zzw.buglytest"); //App的包名//...在这里设置strategy的属性,在bugly初始化时传入//... CrashReport.initCrashReport(this, "自己的appID", false, strategy); }}
然后我在程序里放一个bug去运行引发崩溃,再去网站看崩溃分析,它可以告诉你代码哪里出错,还有在异常概览还可以看到一些崩溃的概率和分类排名之类的,自己去发掘吧年轻人
4.产品升级
(1)环境配置
添加依赖
compile ‘com.android.support:support-v4:26.+’
添加一个权限就行了
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
对了,你们要记得动态请求权限,否则android6.0以上的可能使用不了这个
Activity配置
<activity android:name="com.tencent.bugly.beta.ui.BetaActivity" android:configChanges="keyboardHidden|orientation|screenSize|locale" android:theme="@android:style/Theme.Translucent" />
配置FileProvider
注意:如果您想兼容Android N或者以上的设备,必须要在AndroidManifest.xml文件中配置FileProvider来访问共享路径的文件。
<provider android:name="android.support.v4.content.FileProvider" android:authorities="${applicationId}.fileProvider" android:exported="false" android:grantUriPermissions="true"> <meta-data android:name="android.support.FILE_PROVIDER_PATHS" android:resource="@xml/provider_paths"/></provider>
这里要注意一下,FileProvider类是在support-v4包中的,检查你的工程是否引入该类库。
在res目录新建xml文件夹,创建provider_paths.xml文件如下:
<?xml version="1.0" encoding="utf-8"?><paths xmlns:android="http://schemas.android.com/apk/res/android"> <!-- /storage/emulated/0/Download/${applicationId}/.beta/apk--> <external-path name="beta_external_path" path="Download/"/> <!--/storage/emulated/0/Android/data/${applicationId}/files/apk/--> <external-path name="beta_external_files_path" path="Android/data/"/></paths>
(2)写代码
将以下代码注释
CrashReport.initCrashReport(getApplicationContext(), “注册时申请的APPID”, false);
换成统一初始化方法:
Bugly.init(getApplicationContext(), “注册时申请的APPID”, false);
(3)控制台操作
首先在module的build.gradle改版本号
defaultConfig {
applicationId “zzw.buglytest”
minSdkVersion 19
targetSdkVersion 26
versionCode 2
versionName “1.1”
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
}
把之前的加的BetaActivity删除,在AndroidManifest.xml中添加以下Activity
<activity android:name="com.tencent.bugly.beta.ui.BetaActivity" android:theme="@android:style/Theme.Translucent" />
在Application添加代码
/** * true表示app启动自动初始化升级模块; * false不自动初始化 */ Beta.autoInit = true; /** * true表示初始化时自动检查升级 * false表示不会自动检查升级,需要手动调用Beta.checkUpgrade()方法 */ Beta.autoCheckUpgrade = true; /** * 设置升级周期为60s(默认检查周期为0s),60s内SDK不重复向后天请求策略 */ Beta.initDelay = 1 * 1000; /** * 设置通知栏大图标,largeIconId为项目中的图片资源; */ Beta.largeIconId = R.mipmap.ic_launcher; /** * 设置状态栏小图标,smallIconId为项目中的图片资源id; */ Beta.smallIconId = R.mipmap.ic_launcher; /** * 设置更新弹窗默认展示的banner,defaultBannerId为项目中的图片资源Id; * 当后台配置的banner拉取失败时显示此banner,默认不设置则展示“loading“; */ Beta.defaultBannerId = R.mipmap.ic_launcher; /** * 设置sd卡的Download为更新资源保存目录; * 后续更新资源会保存在此目录,需要在manifest中添加WRITE_EXTERNAL_STORAGE权限; */ Beta.storageDir = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS); /** * 点击过确认的弹窗在APP下次启动自动检查更新时会再次显示; */ Beta.showInterruptedStrategy = true; /** * 设置是否显示消息通知 */ Beta.enableNotification = true; /** * 使用默认弹窗 */ Beta.canShowApkInfo = true; /** * 关闭或开启热更新能力,默认开启 */ Beta.enableHotfix = false; /** * 只允许在MainActivity上显示更新弹窗,其他activity上不显示弹窗; * 不设置会默认所有activity都可以显示弹窗; */ // Beta.canShowUpgradeActs.add(MainActivity.class); // 不在登录activity上显示弹窗 Beta.canNotShowUpgradeActs.add(MainActivity.class);
然后把工程代码的版本改低,并卸载原来的项目,再安装低版本的apk,测试应用更新
Bugly的还有很多细节高级应用,需要自己去钻研,还有热修复我就不弄,挺复杂的哈哈。
- Android 腾讯Bugly——异常上报和应用更新
- Android 腾讯Bugly 热更新
- 腾讯bugly 的crash 上报和umeng的比较(crash监测工具对比,bugly胜)
- Android应用--Crash时异常上报和异常恢复
- Android 应用更新使用Bugly
- 腾讯bugly捕获异常
- 腾讯bugly热更新
- Android集成腾讯Bugly和简单使用
- Android Bug异常收集第三方腾讯Bugly集成
- 腾讯Bugly异常监控集成
- 腾讯Bugly 自定义更新Dialog
- 腾讯Bugly干货分享:Android应用性能评测调优
- 腾讯Bugly干货分享:Android应用性能评测调优
- 腾讯Bugly干货分享:Android应用性能评测调优
- 腾讯Bugly干货分享:Android应用性能评测调优
- Android热修复应用篇--关于腾讯Bugly的使用
- Android 热更新 bugly
- Android 异常上报类
- 优达机器学习:文本学习
- Hello jQuery
- 主进程等待子进程结束
- Windows VOC 框图工具
- python3与MySQL交互
- Android 腾讯Bugly——异常上报和应用更新
- c中动态开辟内存的几个函数
- 7XML XQuery——语法
- 使用 Spark MLlib 做 K-means 聚类分析
- 包装类DataOutputStream、DataInputStream的常见用法
- idea 从数据库快速生成Spring Data JPA实体类
- new、delete和malloc、free
- Eclipse安装SVN插件
- 代理模式