说明
针对相应开发环境和使用场景,你可能需要对SDK的运行做额外的配置,TA2通过TAConfigure
来完成相关的配置参数。
//Builer(Context) 会自动读取Manifest文件中定义的参数
TAConfigure taConfigure = new TAConfigure.Builder(this)
.debugable(true)
.maximumCachedBeforeSend(20)
.build();
TAController.init(this, taConfigure);
配置参数可变性
根据配置参数的可变性分为可变配置与固定配置两种:
- 可变配置是TA2运行期间可动态配置,来调整TA2的运行情况。
- 固定配置是TA2运行期间不可动态配置, 固定配置只能通过初始化接口来完成,一旦初始化完毕,任何对固定配置的变更将不在生效。
Manifes配置参数
某些配置参数可以在AndroidManifest文件中定义,TAConfigure.Builder(Context)
可以自动获取Manifest文件中定义的参数值。配置参数
| 参数名称 | 用途 | 配置参数类型 | 可通过Manifest配置 | | :—- | :—- | :—- | :—- | | url | 数据采集地址 | 固定配置 | 是 | | appKey | 应用的appKey | 固定配置 | 是 | | mpId | 应用的id | 固定配置 | 是 | | channel | 渠道 | 固定配置 | 是 | | debugable | 是否是可调试环境 | 可变配置 | 是 | | obtainIMEIEnabled | 是否自动获取设备IMEI | 可变配置 | 否 | | maximumCachedBeforeSend | 发送准备的缓存数据量阀值 | 可变配置 | 否 | | asQuitWhenStackEmpty | 当stack中为空时,是否作为APP退出 | 固定配置 | 否 | | selfDeviceId | 自生成设备ID | 固定配置 | 否 |
发送准备的缓存数据量阀值
TA2的所有收集的数据在发送前都会先缓存在本地的SQLite数据库中,一旦数量达到发送准备的阀值就会触发数据上传功能,将缓存的数据上传到远程服务端。maximumCachedBeforeSend
用来控制这个阀值,APP可以根据具体的情况来动态设置这个阀值。默认为20。且仅在debugable=false
时生效。
maximumCachedBeforeSend设置太大可能会造成大量的数据保存在本地;设置太小会频繁的发生数据上传,影响SDK的采集效率。因此APP需要根据自身的使用状况合理的调整此数值。
asQuitWhenStackEmpty
asQuitWhenStackEmpty用来告知TA2,当检测到App Stack中没有任何Activity存活时,下一个Activity页面生成是否当作APP的重新启动。
有些APP会将首页的双击返回按键做成APP的退出功能。双击首页的返回按键,首页Activity会finish()。但其实此时的退出仅仅是APP的逻辑退出,并不是Android APP的实际退出,APP进程实际仍然是存活状态,下次再打开首页时,仍会是相同的进程。所以TA2利用此参数用来设置是否将此情形的重新启动增加一次启动次数。
由于首页的屏幕旋转造成的Activiey的重建并不会触发此情景。
设置
设置固定参数
固定配置参数只能在SDK初始化的时,通过SDK的初始化接口去传入相关的配置参数。此后在TA2的运行期间任何对固定配置参数的变更将一律不回生效。固定配置参数可通过与Manifest文件配合使用。AndroidManifest.xml
中设置配置参数
<manifest……>
<uses-permission android:name="android.permission.INTERNET"></uses-permission>
<application ……>
……
<meta-data android:name="TA_URL"android:value="${TA_URL}" />
<meta-data android:name="TA_APPKEY" android:value="${TA_APPKEY}" />
<meta-data android:name="TA_MPID" android:value="${TA_MPID}" />
<meta-data android:name="TA_DEBUG" android:value="${DEBUG}" />
<meta-data android:name="TA_CHANNEL" android:value="${CHANNEL}" />
</application>
</manifest>
app module的build.gradle
设置参数值
defaultConfig {
applicationId "com.trs.substantials"
....
manifestPlaceholders = [
CHANNEL: "",
TA_URL: "YOUR_URL",
TA_APPKEY: "YOUR_APPKEY",
TA_MPID: "YOUR_MPID",
]
}
初始化TA2时利用TAConfigure.Builder来构建TAConfigure,并初始化TA2.
TAConfigure configure = new TAConfigure.Builder(this)
.debugable(BuildConfig.DEBUG)
.maximumCachedBeforeSend(20)
.obtainIMEIEnabled(true)
.selfDeviceId(Analysis.DEVICE_ID)
.asQuitWhenStackEmpty(false)
.build();
com.trs.ta.TAController.init(this, configure);
com.trs.ta.TAController.setDebuggable(BuildConfig.DEBUG);
设置可变参数
可变参数可以像固定参数一样,通过构建TAConfigure,然后通过初始化接口来应用相关的参数。
如果想要动态设置参数,则可以通过以下两个接口来完成:
/**
* 获取目前的SDK设置参数。
* @return SDK配置参数。
*/
public static TAConfigure getCurrentConfigure()
/**
* 应用配置
* @param taConfigure 新的配置
*/
public static void applyConfigure(TAConfigure taConfigure);
eg. 根据使用场景配置发送准备的最大数据存储量。
TAConfigure taConfigure = TAController.getCurrentConfigure();
if (mScenes == NEWS) {
taConfigure = new TAConfigure.Builder(taConfigure)
.maximumCachedBeforeSend(50)
.build();
TAController.applyConfigure(taConfigure);
}