文档

引入&配置SDK

更新时间:

使用App SDK必备操作,缺少任一操作都会造成数据的缺失

1 快速集成

在QuickTracking后台,为每一个App生成了专属的集成代码,可以根据产品内的引导进行集成。注意,需要检查目前是否已经使用了友盟+SDK,如果已经使用,请及时查看文档

在QuickTracking后台,为每一个小程序生成了专属的集成代码,可以根据产品内的引导进行集成。

产品路径

Quick Tracking「首页」-「管理控制台」,在「管理控制台」进入「组织列表」功能,组织列表展示当前已创建的组织,找到应用归属组织,点击「管理应用」功能跳转到「应用管理]页面,在已创建好的应用小爱点击去「去集成」。image.png

点击「去集成」按钮跳转到新页面可以获取专属集成代码,点击下一步按引导进入到「集成校验」,扫码唤起APP,确认集成是否成功。image.png

检查是否与友盟+SDK冲突

注意,需要检查目前是否已经使用了友盟+SDK,如果已经使用,请及时查看文档

2 集成代码明细

如果因为特定原因,无法抵达上述页面,需要观看文档才可以进行集成,具体集成代码如下:

2.1 参数准备

appkey:在应用列表中获取

收数域名:在“管理控制台-采集信息”模块中获取

SDK链接:在“管理控制台-采集信息”模块中获取

2.2 引入SDK

2.2.1 自动集成

在工程build.gradle配置脚本中buildscript和allprojects段中添加 QuickTracking SDK新Maven仓库地址。

maven { url 'https://repo1.maven.org/maven2/' }

在工程对应build.gradle配置脚本repositories段中添加SDK maven库坐标:

buildscript {
    repositories {
        google()
        jcenter()
        maven { url 'https://repo1.maven.org/maven2/' }
}
    dependencies {
        classpath 'com.android.tools.build:gradle:3.4.0'

// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}

allprojects {
    repositories {
        google()
        jcenter()
        maven { url 'https://repo1.maven.org/maven2/' }
}
}

在工程App 对应build.gradle配置脚本dependencies段中添加统计SDK库和其它库依赖:

dependencies {
    implementation fileTree(include:['*.jar'], dir:'libs')

    //新用户或者使用友盟+时,请使用PX系列SDK
    implementation 'com.umeng.umsdk:qt-px-common:1.4.4.PX'
  
    //历史用户可继续使用P系列SDK
    implementation 'com.umeng.umsdk:qt-common:1.4.4.P'
  
    //从1.3.9.P开始,需要删除SPM SDK
    //implementation 'com.umeng.umsdk:qt-spm:1.3.2'
}

在Android Studio 3.1及以上版本开发环境下,指定引用最新版本依赖写法”latest.integration”可能导致下载库超时,此时需要指定具体版本号。

注意,需要检查目前是否已经使用了友盟+SDK,如果已经使用,请及时查看文档

重要

更改SDK文件路径

  • 已经集成了友盟+SDK,现在需要集成QT SDK:在QT和友盟+的所有代码最前面增加(至少早于收数域名)QTConfigure.resetStorePath;

  • 已经集成了QT SDK,现在需要集成友盟+SDK:在QT和友盟+的所有代码最前面(至少早于收数域名)增加UMConfigure.resetStorePath;

如果不按照上述的逻辑调用,则会使友盟+SDK与QT SDK共同使用一个存储路径,导致日志混乱

2.2.2 手动集成

zip包解压缩,得到如下文件:

  • umeng-common-1.x.x.P.jar // 统计SDK,必须集成。

  • 选择SDK功能组件并下载,解压.zip文件得到相应组件包(umeng-common-1.x.x.P.jar)。

  • 在Android Studio的项目工程libs目录中拷入相关组件jar包,右键Android Studio的项目工程 —>选择Open Module Settings —>在 Project Structure弹出框中 —>选择 Dependencies选项卡 —>点击左下“+” —>选择组件包类型 —>引入相应的包。

repositories{
    flatDir{
        dirs 'libs'
    }
}

dependencies {
    implementation fileTree(include: ['*.jar'], dir: 'libs')
    implementation files('libs/umeng-common-1.x.x.P.jar') // 必选
    //implementation files('libs/umeng-spm-1.x.x.jar') //已经不存在该SDK
}

  • 选择SDK功能组件并下载,解压.zip文件得到相应组件包(例如:umeng-common-1.x.x.P.jar等)。

  • 在Eclipse中右键工程根目录,选择Properties —> Java Build Path —> Libraries,然后点击Add External JARs… 选择指向jar的路径,点击OK,即导入成功。(ADT17及以上不需要手动导入)。

  • 注意,需要检查目前是否已经使用了友盟+SDK,如果已经使用,请及时查看文档

2.3 配置权限

统计SDK需要宿主APP授予如下权限:

权限

用途

ACCESS_NETWORK_STATE

检测联网方式,在网络异常状态下避免数据发送,节省流量和电量。

READ_PHONE_STATE(可选)

获取用户设备的IMEI,通过IMEI对用户进行唯一标识,以便提供统计分析服务。

ACCESS_WIFI_STATE

获取WIFI mac地址,在平板设备或电视盒子上,无法通过IMEI标识设备,我们会将WIFI mac地址作为用户的唯一标识,以便正常提供统计分析服务。

INTERNET

允许应用程序联网和发送统计数据的权限,以便提供统计分析服务。

下面给出AndroidManifest.xml清单文件示例:

<manifest ……>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
<uses-permission android:name="android.permission.INTERNET"/>
<application ……>

2.4 混淆配置

如果您的应用使用了代码混淆,请添加如下配置,以避免Quick Tracking SDK被错误混淆导致SDK不可用。

-keep class com.umeng.** {*;}
-keep class org.repackage.** {*;}

-keep class com.quick.qt.** {*;}
-keep class rpk.quick.qt.** {*;}

-keepclassmembers class * {
   public <init> (org.json.JSONObject);
}
-keepclassmembers enum * {
    public static **[] values();
    public static ** valueOf(java.lang.String);
}

SDK需要引用导入工程的资源文件,通过了反射机制得到资源引用文件R.java,但是在开发者通过proguard等混淆/优化工具处理apk时,proguard可能会将R.java删除,如果遇到这个问题,请添加如下配置:

-keep public class [您的应用包名].R$*{
public static final int *;
} 

2.5 埋点验证配置

在AndroidManifest.xml文件中找到响应android.intent.action.MAIN的activity(也就是应用可以被外部唤起的第一个Activity),加上如下代码. 让应用能被指定连接scheme唤起.

<intent-filter>
  <action android:name="android.intent.action.VIEW"/>
  <category android:name="android.intent.category.DEFAULT" />
  <category android:name="android.intent.category.BROWSABLE" />
  <data android:scheme="atm.你的appkey" />
 </intent-filter>

注意:

1、请使用单独intent-filter,和其他intent-filter并列,不要将上述代码填入其他intent-filter里;

2、请将“你的appkey”替换成你真实appkey。

  • 本页导读 (0)
文档反馈