说明

针对相应开发环境和使用场景,你可能需要对SDK的运行做额外的配置,TA2通过TAConfigure来完成相关的配置参数。

  1. //Builer(Context) 会自动读取Manifest文件中定义的参数
  2. TAConfigure taConfigure = new TAConfigure.Builder(this)
  3. .debugable(true)
  4. .maximumCachedBeforeSend(20)
  5. .build();
  6. 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中设置配置参数

  1. <manifest……>
  2. <uses-permission android:name="android.permission.INTERNET"></uses-permission>
  3. <application ……>
  4. ……
  5. <meta-data android:name="TA_URL"android:value="${TA_URL}" />
  6. <meta-data android:name="TA_APPKEY" android:value="${TA_APPKEY}" />
  7. <meta-data android:name="TA_MPID" android:value="${TA_MPID}" />
  8. <meta-data android:name="TA_DEBUG" android:value="${DEBUG}" />
  9. <meta-data android:name="TA_CHANNEL" android:value="${CHANNEL}" />
  10. </application>
  11. </manifest>

app module的build.gradle设置参数值

  1. defaultConfig {
  2. applicationId "com.trs.substantials"
  3. ....
  4. manifestPlaceholders = [
  5. CHANNEL: "",
  6. TA_URL: "YOUR_URL",
  7. TA_APPKEY: "YOUR_APPKEY",
  8. TA_MPID: "YOUR_MPID",
  9. ]
  10. }

初始化TA2时利用TAConfigure.Builder来构建TAConfigure,并初始化TA2.

  1. TAConfigure configure = new TAConfigure.Builder(this)
  2. .debugable(BuildConfig.DEBUG)
  3. .maximumCachedBeforeSend(20)
  4. .obtainIMEIEnabled(true)
  5. .selfDeviceId(Analysis.DEVICE_ID)
  6. .asQuitWhenStackEmpty(false)
  7. .build();
  8. com.trs.ta.TAController.init(this, configure);
  9. com.trs.ta.TAController.setDebuggable(BuildConfig.DEBUG);

设置可变参数

可变参数可以像固定参数一样,通过构建TAConfigure,然后通过初始化接口来应用相关的参数。
如果想要动态设置参数,则可以通过以下两个接口来完成:

  1. /**
  2. * 获取目前的SDK设置参数。
  3. * @return SDK配置参数。
  4. */
  5. public static TAConfigure getCurrentConfigure()
  1. /**
  2. * 应用配置
  3. * @param taConfigure 新的配置
  4. */
  5. public static void applyConfigure(TAConfigure taConfigure);

eg. 根据使用场景配置发送准备的最大数据存储量。

  1. TAConfigure taConfigure = TAController.getCurrentConfigure();
  2. if (mScenes == NEWS) {
  3. taConfigure = new TAConfigure.Builder(taConfigure)
  4. .maximumCachedBeforeSend(50)
  5. .build();
  6. TAController.applyConfigure(taConfigure);
  7. }