mPaaS集成指南
SDK集成 原生AAR方式
本地
一、预置Bonree SDK环境
解压BonreeSDK_TDEM_Android.v${VERSION_NAME}.zip暂存本地(如E:);拷贝jniLibs目录内容覆盖打包module目录级别下存放so动态库的jniLibs目录中(如果项目中没有jniLibs目录,请创建jniLibs目录);
拷贝repo文件夹到所有的Project根目录下,与module目录同级;
拷贝com.bonree.sdk.jar到module级别的libs目录下;
注意:Mac下,解压的文件夹路径最好放在/Users/xxxx/目录下,放在系统目录下,由于权限可能导致一些难以预计的问题
二、配置Gradle
mPaaS开发框架可能会有多个project工程, 而jar包和so库,可灵活根据项目架构,放置任意一个project中的module内,只需确保编出的APK中含有com.bonree.sdk.jar中的代码和所有的so库即可。
1. Gradle 7.0 以下版本
打开module级别目录下的build.gradle文件:

在dependencies模块中加入代码
implementation files('libs/com.bonree.sdk.jar')

打开所有Project级别根目录下的build.gradle文件

在build.gradle文件中加入以下红框内的三项配置脚本,并点击Sync Now按钮

ext.brsdk_version = '8.0.0' //ext.brsdk_version的值是sdk的版本号,通常在您下载的压缩包文件名的末尾或在下载中心查看。
maven { url uri('./repo') }
classpath "com.bonree.agent.android:bonree:$brsdk_version"
Bonree组件需要对所有Project进行配置,请确保已经完全按照上述步骤在所有工程中project级别的build.gradle中添加了classpath "com.bonree.agent.android:bonree:$brsdk_version"的配置!
打开主module的build.gradle文件,增加如下两项配置.
apply plugin: "bonree"
bonree{
exclude 'packages:com/uc/webview/export/internal/setup'
}

1. Gradle 7.0 及以上版本
打开Project根目录下的settings.gradle文件

在settings.gradle文件中加入以下红框内的配置内容,并点击SyncNow按钮

maven { url uri('./repo') }
打开Project根目录下的build.gradle文件

添加红框部分的内容并点击Sync Now按钮

buildscript {
ext.brsdk_version = '8.0.0'
dependencies {
classpath "com.bonree.agent.android:bonree:$brsdk_version"
}
}
Bonree组件需要对所有Project进行配置,请确保已经完全按照上述步骤在所有工程中project级别的build.gradle中添加了classpath "com.bonree.agent.android:bonree:$brsdk_version"的配置!
打开主Module目录下的build.gradle文件,在dependencies中加入以下配置,并点击SyncNow按钮

implementation files('libs/com.bonree.sdk.jar')
并在该文件头部引入Bonree插件,并点击SyncNow按钮

打开主module的build.gradle文件,增加如下两项配置.
apply plugin: "bonree"
bonree{
exclude 'packages:com/uc/webview/export/internal/setup'
}

远程
一、配置Gradle
mPaaS开发框架可能会有多个project工程, 而jar包和so库,可灵活根据项目架构,放置任意一个project中的module内,只需确保com.bonree.sdk.jar中代码和所有so库即可。
1. Gradle 7.0 以下版本
打开module级别目录下的build.gradle文件:

在build.gradle文件中加入以下红框内的三项配置脚本,并 点击Try Again按钮

ext.brsdk_version = '8.0.0' //ext.brsdk_version的值是sdk的版本号,具体版本号可在下载中心查阅
maven {
url 'https://gitlab.bonree.com/BonreeSDK_TAPM/Android/raw/master'
}
classpath "com.bonree.agent.android:bonree:$brsdk_version"
打开module级别目录下的build.gradle文件

在dependencies模块中加入代码
implementation "com.bonree.agent.android:agent-lib:$brsdk_version"
Bonree组件需要对所有Project进行配置,请确保已经完全按照步骤二 在所有工程中project级别的build.gradle中添加了classpath "com.bonree.agent.android:bonree:$brsdk_version"的配置!
打开主module级别目录下的build.gradle文件,增加如下两项配置.
apply plugin: "bonree"
bonree{
exclude 'packages:com/uc/webview/export/internal/setup'
}

2. Gradle 7.0 及以上版本
打开Project根目录下的settings.gradle文件

在settings.gradle文件中加入以下红框内的配置内容,并点击SyncNow按钮

maven {
url 'https://gitlab.bonree.com/BonreeSDK_TAPM/Android/raw/master'
}
打开Project根目录下的build.gradle文件

添加红框部分的内容并点击Sync Now按钮

buildscript {
ext.brsdk_version = '8.0.0'
dependencies {
classpath "com.bonree.agent.android:bonree:$brsdk_version"
}
}
打开主Module目录下的build.gradle文件,在dependencies中加入以下配置,并点击SyncNow按钮

implementation "com.bonree.agent.android:agent-lib:$brsdk_version"
并在该文件头部引入Bonree插件,并点击SyncNow按钮

Bonree组件需要对所有Project进行配置,请确保已经完全按照步骤二 在所有工程中project级别的build.gradle中添加了classpath "com.bonree.agent.android:bonree:$brsdk_version"的配置!
打开主module级别目录下的build.gradle文件,增加如下两项配置.
apply plugin: "bonree"
bonree{
exclude 'packages:com/uc/webview/export/internal/setup'
}

SDK集成 Protal方式
本地
一、预置Bonree SDK环境
解压BonreeSDK_TDEM_Android.v${VERSION_NAME}.zip暂存本地(如E:);拷贝jniLibs目录内容覆盖打包module目录级别下存放so动态库的jniLibs目录中(如果项目中没有jniLibs目录,请创建jniLibs目录);
拷贝repo文件夹到所有的Project根目录下,与module目录同级;
拷贝com.bonree.sdk.jar到module级别的libs目录下;
注意:Mac下,解压的文件夹路径最好放在/Users/xxxx/目录下,放在系统目录下,由于权限可能导致一些难以预计的问题
二、引入Agent包和so库
mPaaS开发框架可能会有多个project工程, 而jar包和so库,可灵活根据项目架构,放置任意一个project中的module内,只需确保编出的APK中含有com.bonree.sdk.jar中的代码和所有的so库即可。
打开module级别目录下的build.gradle文件:

在dependencies模块中加入代码
implementation files('libs/com.bonree.sdk.jar')

三、配置Bonree组件
打开所有Project级别根目录下的build.gradle文件

在build.gradle文件中加入以下红框内的三项配置脚本,并点击Sync Now按钮

ext.brsdk_version = '8.0.0' //ext.brsdk_version的值是sdk的版本号,通常在您下载的压缩包文件名的末尾或在下载中心查看。
maven { url uri('./repo') }
classpath "com.bonree.agent.android:bonree:$brsdk_version"
Bonree组件需要对所有Project进行配置,请确保已经完全按照上述步骤在所有工程中project级别的build.gradle中添加了classpath "com.bonree.agent.android:bonree:$brsdk_version"的配置!
Bundle工程配置
打开module级别目录下的build.gradle文件,bundle工程只需在文件头部引入Bonree插件即可
apply plugin: 'bonree'

Protal工程配置
打开Protal工程下的主module的build.gradle文件,增加如下两项配置.
apply plugin: "bonree"
bonree{
protal true
exclude 'packages:com/uc/webview/export/internal/setup'
}

远程
一、引入Agent包和so库
mPaaS开发框架可能会有多个project工程, 而jar包和so库,可灵活根据项目架构,放置任意一个project中的module内,只需确保com.bonree.sdk.jar中代码和所有so库即可。
打开module级别目录下的build.gradle文件:

在build.gradle文件中加入以下红框内的三项配置脚本,并点击Try Again按钮

ext.brsdk_version = '8.0.0' //ext.brsdk_version的值是sdk的版本号,具体版本号可在下载中心查阅
maven {
url 'https://gitlab.bonree.com/BonreeSDK_TAPM/Android/raw/master'
}
classpath "com.bonree.agent.android:bonree:$brsdk_version"
打开module级别目录下的build.gradle文件

在dependencies模块中加入代码
implementation "com.bonree.agent.android:agent-lib:$brsdk_version"
二、配置Bonree组件
Bonree组件需要对所有Project进行配置,请确保已经完全按照步骤二 在所有工程中project级别的build.gradle中添加了classpath "com.bonree.agent.android:bonree:$brsdk_version"的配置!
Bundle工程配置
打开module级别目录下的build.gradle文件,bundle工程只需在文件头部引入Bonree插件即可
apply plugin: 'bonree'

Protal工程配置
打开Protal工程下的主module的build.gradle文件,增加如下两项配置.
apply plugin: "bonree"
bonree{
protal true
exclude 'packages:com/uc/webview/export/internal/setup'
}

SDK接入
一、配置授权信息
检查应用程序AndroidManifest.xml配置文件,尽量确保已引入如下授权:
//详情说明可参阅《隐私政策》中权限说明部分
//必要权限:
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
//非必要权限:
<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
二、配置混淆信息
若您的应用使用proguard混淆,请添加如下配置:
#ProGuard configurations for Bonree-Agent
-keep class com.bonree.**{*;}
-keep class okhttp3.** { *; }
-keep class okio.**{*;}
-dontwarn com.bonree.**
-dontwarn okhttp3.**
-dontwarn okio.**
#End Bonree-Agent
若您的proguard混淆配置文件中没有-dontoptimize配置,请务必追加如下配置:
-optimizations !code/simplification/*,!field/*,!class/merging/*,!method/propagation/*,!class/unboxing/enum,!code/allocation/variable
三、初始化SDK
<#Config地址#> 与 <#AppID#> 请于平台上获取,获取方式参见《如何查询AppID和Config地址?》。如有问题请联系技术支持。
请在自定义Application的onCreate函数中,添加如下代码:
Bonree.withAppID("<#AppID#>")
.withConfigAddress("<#Config地址#>")
.withUsemPaas(true)
.withCustomBusinessHeaders("Operation-Type")
.start(getApplicationContext());
调用示例:
import android.app.Application;
import com.bonree.sdk.agent.Bonree;
public class App extends LauncherApplication {
@Override
protected void attachBaseContext(Context base) {
super.attachBaseContext(base);
Bonree.recordLaunchTime(this, base);
}
@Override
public void onCreate() {
super.onCreate();
Bonree.withAppID("<#AppID#>")
.withConfigAddress("<#Config地址#>")
.withUsemPaas(true)
.withCustomBusinessHeaders("Operation-Type")
.start(getApplicationContext());
}
}