引入&配置SDK

9AD565F4-D3FD-40AA-9778-E78D3FAD1BE1

1 引入SDK

1.1 自动集成

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


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

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

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

    implementation 'com.umeng.umsdk:qt-common:1.2.0.P'
    implementation 'com.umeng.umsdk:qt-spm:1.2.0'
}

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

1.2 手动集成

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

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

  • umeng-spm-1.x.x.jar // spm插件,需要使用spm统计功能的开发者需要集成。

  • 选择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 {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    compile files('libs/umeng-common-1.x.x.P.jar') // 必选
    //compile files('libs/umeng-spm-1.x.x.jar') //可选插件,使用spm功能的开发者需要集成
}
  • 选择SDK功能组件并下载,解压.zip文件得到相应组件包(例如:umeng-common-1.x.x.P.jar等)。

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

2 配置权限

统计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 ……>

3 混淆配置

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

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


-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 *;
}

4 埋点验证配置

在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。