android实践:Bugly专业版Android SDK集成
参考文档:Android | Bugly 专业版 (qq.com)
需求:app集成Bugly SDK,上报崩溃问题
步骤:
1.注册产品,获取AppID和AppKey
2.自动集成
添加maven地址
buildscript {repositories {maven { url 'https://repo1.maven.org/maven2/' }}
}allprojects {repositories {maven { url 'https://repo1.maven.org/maven2/' }}
}
添加依赖和属性配置
android {defaultConfig {ndk {abiFilters 'armeabi-v7a', 'arm64-v8a'}}
}dependencies {implementation "com.tencent.bugly:bugly-pro:4.4.3.7"
}
3.初始化SDK
public static void initBugly(Context context) {// 1. 初始化参数预构建,必需设置初始化参数String appID = "a278f01047"; // 【必需设置】在Bugly 专业版 注册产品的appIDString appKey = "1e5ab6b3-b6fa-4f9b-a3c2-743d31dffe86"; // 【必需设置】在Bugly 专业版 注册产品的appKeyBuglyBuilder builder = new BuglyBuilder(appID, appKey);// 专业版:BuglyBuilder.ServerHostTypeBuglyPro// 海外版:BuglyBuilder.ServerHostTypeBuglyOverseabuilder.setServerHostType(BuglyBuilder.ServerHostTypeBuglyPro); // 设置数据上报通道为专业版,4.4.2.6开始支持切换数据上报通道,同一个SDK可以同时支持专业版和海外版// 2. 基本初始化参数,推荐设置初始化参数builder.uniqueId = "unique_id"; // 【推荐设置】设置设备唯一ID,必须保证唯一性,不设置则由Bugly生成唯一ID,影响设备异常率的统计以及联网设备数的统计,建议sp保存复用; builder.userId = "user_id"; // 【推荐设置】设置用户ID,影响用户异常率的统计,建议sp保存复用,同一进程生命周期里面,暂不支持多次设置;builder.deviceModel = Build.MODEL; // 【推荐设置】设置设备类型,设置机型后,Bugly SDK不再读取系统的机型builder.appVersion = "1.0.0"; // 【推荐设置】设置App版本号,不设置则从packageManager中读取。建议按应用的规范,主动设置,需要跟上传符号表的应用版本参数保持一致。builder.buildNumber = "builderNum"; // 【推荐设置】设置App版本的构建号,用于Java堆栈翻译关联版本,跟上传符号表的构建号参数保持一致。builder.appVersionType = BuglyAppVersionMode.Debug; // 【推荐设置】设置版本类型// 3. 更多初始化参数,按需设置初始化参数builder.appChannel = "appChannel"; // 设置App的渠道builder.logLevel = BuglyLogLevel.LEVEL_DEBUG; // 设置日志打印级别,级别可从BuglyLogLevel中获取builder.enableAllThreadStackCrash = true; // 设置Crash时是否抓取全部线程堆栈,默认开启builder.enableAllThreadStackAnr = true; // 设置Anr时是否抓取全部线程堆栈,默认开启builder.enableCrashProtect = true; // 设置性能监控时开启Crash保护模式,默认开启builder.debugMode = false; // 设置debug模式,可在调试阶段开启builder.initAppState = BuglyBuilder.APP_STATE_FOREGROUND; // 自4.4.3.7版本起支持。该参数为非必选项,可在初始化 Bugly SDK 时指定应用的前后台状态。若未指定,SDK将在初始化时通过 getRunningAppProcesses 判断应用的前后台状态;若已指定,SDK将直接采用指定状态,不再调用 getRunningAppProcesses 进行判断。// 4. 设置回调方法,按需设置初始化参数builder.setCrashHandleListener(crashHandleListener); // 设置Crash处理回调接口,详情见回调接口builder.setUploadHandleListener(uploadhandleListener); // 设置Crash上报回调接口,详情见回调接口// 5. 初始化,必需调用Bugly.init(context, builder);
}
注意:
a.初始化过程可能会采集部分用户信息,必须在同意隐私政策后进行初始化
b.Context需要传递ApplicationContext
测试: