原生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文件:

image-20200827155642973

在dependencies模块中加入代码

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

image-20200827155642973

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

image-20200827155642973

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

image-20200827155642973

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'
}

image-20200827155642973

1. Gradle 7.0 及以上版本

打开Project根目录下的settings.gradle文件

image-20200827155642973

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

image-20200827155642973

maven { url uri('./repo') }

打开Project根目录下的build.gradle文件

image-20200827155642973

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

image-20200827155642973

  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按钮

image-20200827155642973

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

并在该文件头部引入Bonree插件,并点击SyncNow按钮

image-20200827155642973

打开主module的build.gradle文件,增加如下两项配置.

apply plugin: "bonree" 
bonree{ 
  exclude 'packages:com/uc/webview/export/internal/setup'
}

image-20200827155642973

远程

一、配置Gradle

mpaas开发框架可能会有多个project工程, 而jar包和so库,可灵活根据项目架构,放置任意一个project中的module内,只需确保com.bonree.sdk.jar中代码和所有so库即可。

1. Gradle 7.0 以下版本

​ 打开module级别目录下的build.gradle文件:

image-20200827155642973

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

image-20200827155642973

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文件

image-20200827155642973

在dependencies模块中加入代码

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

image-20200827155642973

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'
}

image-20200827155642973

1. Gradle 7.0 及以上版本

打开Project根目录下的settings.gradle文件

image-20200827155642973

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

image-20200827155642973

maven {
  url 'https://gitlab.bonree.com/BonreeSDK_TAPM/Android/raw/master'
}

打开Project根目录下的build.gradle文件

image-20200827155642973

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

image-20200827155642973

  buildscript {
    ext.brsdk_version = '8.0.0'
    dependencies {
        classpath "com.bonree.agent.android:bonree:$brsdk_version"
    }
}

打开主Module目录下的build.gradle文件,在dependencies中加入以下配置,并点击SyncNow按钮

image-20200827155642973

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

并在该文件头部引入Bonree插件,并点击SyncNow按钮

image-20200827155642973

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'
}

image-20200827155642973

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文件:

image-20200827155642973

在dependencies模块中加入代码

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

image-20200827155642973

三、配置Bonree组件

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

image-20200827155642973

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

image-20200827155642973

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'

image-20200827155642973

Protal工程配置

打开Protal工程下的主module的build.gradle文件,增加如下两项配置.

apply plugin: "bonree" 
bonree{
  protal true 
  exclude 'packages:com/uc/webview/export/internal/setup'
}

image-20200827155642973

远程

一、引入Agent包和so库

  mpaas开发框架可能会有多个project工程, 而jar包和so库,可灵活根据项目架构,放置任意一个project中的module内,只需确保com.bonree.sdk.jar中代码和所有so库即可。

​ 打开module级别目录下的build.gradle文件:

image-20200827155642973

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

image-20200827155642973

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文件

image-20200827155642973

在dependencies模块中加入代码

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

image-20200827155642973

二、配置Bonree组件

Bonree组件需要对所有Project进行配置,请确保已经完全按照步骤二 在所有工程中project级别的build.gradle中添加了classpath "com.bonree.agent.android:bonree:$brsdk_version"的配置!

Bundle工程配置

打开module级别目录下的build.gradle文件,bundle工程只需在文件头部引入Bonree插件即可

apply plugin: 'bonree'

image-20200827155642973

Protal工程配置

打开Protal工程下的主module的build.gradle文件,增加如下两项配置.

apply plugin: "bonree"

bonree{
  protal true 
  exclude 'packages:com/uc/webview/export/internal/setup'
}

image-20200827155642973

接入

一、配置授权信息

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

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

二、配置混淆信息

若您的应用使用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

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

Bonree.withAppID(BONREE_APP_ID)
                .withUsemPaas(true)
                .withCustomBusinessHeaders("Operation-Type")
                .start(getApplicationContext());
        //BONREE_APP_ID 替换成从下载中心获取的应用ID字符串

调用示例:

image-20200827155642973

四、mPaas启动性能数据采集

在mpaas框架的中,需手动调用Bonree.recordLaunchTime(Application application, Context context);函数来通知SDK应用的启动事件,此函数Application参数可为null,Context参数不可为null,请将代码写到APP启动时,应用层执行的首个回调函数内。目前有两种调用方式,更推荐使用方式一:

方式一: 在清单中有设置自定义Application

请在attachBaseContext函数中调用。

image-20200827155642973

方式二: 继承使用LauncherApplicationAgent

请在preInit函数或直接在构造中调用。

image-20200827155642973

五、嵌码验证

启动已嵌码的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 ""