一 集成

本地

一、预置Bonree SDK环境

解压BonreeSDK_TDEM_xxxxx.v${VERSION_NAME}.zip暂存本地(如E:\):

拷贝repo文件夹到所有的Project根目录下,与module目录同级;

拷贝com.bonree.sdk.jar到module级别的libs目录下;

注意:Mac下,解压的文件夹路径最好放在/Users/xxxx/目录下,放在系统目录下,由于权限可能导致一些难以预计的问题

二、配置Gradle

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

image-20200827155642973

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

image-20200827155642973

ext.brsdk_version = '7.2.2' //ext.brsdk_version的值是sdk的版本号,通常在您下载的压缩包文件名的末尾或在下载中心查看。
maven { url uri('./repo') }
classpath "com.bonree.agent.android:bonree:$brsdk_version"

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

image-20200827155642973

在dependencies模块中加入代码

implementation files('libs/com.bonree.sdk.jar')

image-20200827155642973

在文件头部引入Bonree插件

apply plugin: 'bonree'

image-20200827155642973

三、Rebuid & Clean项目

Rebuild & Clean项目,确保Bonree配置生效。

image-20200827155642973

远程

一、集成版本

下载中心查看Bonree Android SDK最新版本号,确定想要集成的版本

https://sdk.bonree.com/version

二、配置Gradle

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

image-20200827155642973

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

image-20200827155642973

ext.brsdk_version = '6.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文件

image-20200827155642973

在dependencies模块中加入代码

implementation "com.bonree.agent.android:agent-lib:$brsdk_version"

image-20200827155642973

在文件头部引入Bonree插件

apply plugin: 'bonree'

image-20200827155642973

三、Rebuid & Clean项目

Rebuild & Clean项目,确保Bonree配置生效。

image-20200827155642973

二 接入

一、配置授权信息

检查应用程序AndroidManifest.xml配置文件,尽量确保已引入如下授权:

ohos.permission.INTERNET            发送网络数据 
ohos.permission.GET_NETWORK_INFO    获取网络状态信息

二、配置混淆信息

若您的应用使用proguard混淆,请添加如下配置:

#ProGuard configurations for Bonree-Agent 
-keep public class com.bonree.**{*;} 
-keep public class bonree.**{*;}
-dontwarn com.bonree.** 
-dontwarn bonree.** 
#End Bonree-Agent

若您的proguard混淆配置文件中没有-dontoptimize配置,请务必追加如下配置:

-optimizations !code/simplification/*,!field/*,!class/merging/*,!method/propagation/*,!class/unboxing/enum,!code/allocation/variable

三、初始化SDK

请在自定义AbilityPackage的onInitialize函数中,添加如下代码:

java:

Bonree.withAppID(BONREE_APP_ID).startOhos(getApplicationContext()); //BONREE_APP_ID 替换成从下载中心获取的应用ID字符串

kotlin:

Bonree.withAppID(BONREE_APP_ID).startOhos(getApplicationContext()); //BONREE_APP_ID 替换成从下载中心获取的应用ID字符串

image-20200827155642973

四、Webview数据采集

采集WebView数据需调用BrowserAgent和WebAgent组件的支持。

情况1:如果业务代码中不需要添加自定义的client,可以不额外增加对setBrowserAgent或setWebAgent的设置调用。

情况2:如果业务需要设置client,请在设置时不要出现如下代码.

java:

没有正确重写结构体, 影响webview数据正常采集!
错误示例:
webview.setBrowserAgent(new BrowserAgent());
或
webview.setWebAgent(new WebAgent());

在代码中正确的重写结构体,则不会影响webview的数据采集!
正确示例:
webView.setWebAgent(new WebAgent(){});
webView.setBrowserAgent(new BrowserAgent(){});
或
CustomBrowserAgent customBrowserAgent = new CustomBrowserAgent();
// CustomBrowserAgent 继承自BrowserAgent
webView.setBrowserAgent(customBrowserAgent);
或
webView.setBrowserAgent(new BrowserAgent(){
@Override
public void onProgressUpdated(WebView webView, int newValue) {
super.onProgressUpdated(webView, newValue);
//do something...
}
});

kotlin:

没有正确重写结构体, 影响webview数据正常采集!
错误示例:
webView!!.BrowserAgent = BrowserAgent()
或
webView!!.WebAgent = WebAgent()

在代码中正确的重写结构体,则不会影响webview的数据采集!
正确示例:
webView!!.WebAgent = object : WebAgent() {}
webView!!.BrowserAgent = object : BrowserAgent() {}
或
// CustomBrowserAgent 继承自BrowserAgent
val customBrowserAgent = CustomBrowserAgent()
webView!!.BrowserAgent = customBrowserAgent
或
webView!!.BrowserAgent = object : BrowserAgent() {
override fun onProgressUpdated(view: WebView, newValue: Int) {
super.onProgressUpdated(view, newValue)
//do something...
}
}

五、嵌码验证

启动已嵌码的apk,查看logcat日志,搜索brsdk关键字(或者过滤BRSDK-Agent标签),出现如下log则表示嵌码成功且数据开始采集:

Brsdk is starting (注:BRAgent 集成成功) 
BRAgent enable (注:BRAgent 启动成功) 
BRAgent connect server success (注:BRAgent 数据设置成功) 
BRAgent v*** (注: ***为当前zip包文件名后所对应的BRAgent版本)

image-20200827155642973

results matching ""

    No results matching ""