bugly是什么?百度百科上对bugly的介绍总结下来是:腾讯的开放给开发者的一种平台服务,主要用于android和ios平台上的移动应用的crash和卡顿检测和快速定位以及提供解决方案。是免费服务。
而用过的人都知道,除了crash检测外,bugly还提供应用内升级和热修复等功能。
一切以官方文档为准:https://bugly.qq.com/docs/
Q:文档介绍得很详细了,为什么要写这篇文章?
A:这篇文章是对文档的部分内容的归纳,因而更简练。某些操作直接已步骤形式列出,没有多余的解释。仅供记录和之后学习参考使用,毕竟看文档是件麻烦事,记录一下还能提升认识。
-----link start-----
bugly不是一个SDK,而是多个sdk的集合。下面讲述Android平台上异常上报SDK、应用升级SDk的配置使用。
一 异常上报SDK集成
异常上报(bugly:crashreport)SDK:2.6.6更新日志
1.导入到开发环境
AS的开发环境众所周知,有两种方式可以导入包和库。
dependencies { compile 'com.tencent.bugly:crashreport:latest.release' //其中latest.release指代最新Bugly SDK版本号,也可以指定明确的版本号,例如2.2.0}
或者到这里jar包:https://bugly.qq.com/docs/release-notes/release-android-bugly/
需要的权限清单
uses-permission android: / uses-permission android: / uses-permission android: / uses-permission android: / uses-permission android: /
混淆配置
-dontwarn com.tencent.bugly.**-keep public class com.tencent.bugly.**{*;}
从混淆配置可看到,bugly要求keep其包下所有代码,说明bugly已做过混淆
2.代码配置
第一步肯定是要调用类似于某个类的静态初始化方法的。
CrashReport.initCrashReport(getApplicationContext(), "注册时申请的APPID", false);//第三个参数为调试模式开关,开发调试时可为true
初始化代码建议放在Application中。文档建议:为了保证运营数据的准确性,建议不要在异步线程初始化Bugly。
调试模式特点:
输出详细的Bugly SDK的Log;每一条Crash都会被立即上报;自定义日志将会在Logcat中输出。另外,初始化方法还有一个重载的。
CrashReport.initCrashReport(getApplicationContext());
3.MultiDex注意事项
4.上报进程控制
大概的意思是,如果在Application中直接调用bugly的初始化代码,之后如果有多进程,则每个进程都会上报一些相同的report,为了避免网络资源浪费,最好控制上报的进程仅一个,即主进程。
代码看文档吧
到这儿,基本操作就是这些了。
CrashReport.testJavaCrash();