Android常用工具之Bugly的使用

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: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" />

  混淆配置

-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());

如果用这个方法,那么像APPID,调试开关等配置就需要放在其他地方了。

<application
    <!-- 配置APP ID -->
    <meta-data
            android:name="BUGLY_APPID"
            android:value="<APP_ID>" />
    <!-- 配置APP版本号 -->
    <meta-data
            android:name="BUGLY_APP_VERSION"
            android:value="<APP_Version>" />
    <!-- 配置APP渠道号 -->
    <meta-data
            android:name="BUGLY_APP_CHANNEL"
            android:value="<APP_Channel>" />
    <!-- 配置Bugly调试模式(true或者false)-->
    <meta-data
            android:name="BUGLY_ENABLE_DEBUG"
            android:value="<isDebug>" />
</application>

3.MultiDex注意事项

4.上报进程控制

大概的意思是,如果在Application中直接调用bugly的初始化代码,之后如果有多进程,则每个进程都会上报一些相同的report,为了避免网络资源浪费,最好控制上报的进程仅一个,即主进程。

代码看文档吧

到这儿,基本操作就是这些了。

CrashReport.testJavaCrash();

这行代码会制造一个运行时异常,可以作为测试用。

二  应用升级SDK

官方指南

----logout---

原文地址:https://www.cnblogs.com/chitanta/p/9708850.html