引入&配置SDK

SDK基本信息

SDK名称

版本号

md5

包名

AMP crash SDK

最新版本: apm-crash:2.0.0

53cec4f8e171bea57ba8aceadeb6d756

com.lydaas.qtsdk:apm-crash

AMP efs SDK

最新版本:apm-efs:2.0.3

4578ab8fd28159a1c009364275ccf448

com.lydaas.qtsdk:apm-efs

gradle 插件

最新版本:

gradle7+ : apm-plugin:2.0.0

gradle7以下版本 : apm-plugin:1.0.1

2.0.0:9d705a601950810791242f4ad02f13a4

1.0.1: 2dcdbe7ee400ea07ef7b2dd355c0ae65

com.lydaas.qtsdk:apm-plugin

1. 引入SDK

1.1 Maven地址配置

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

buildscript {
	repositories {
                maven { setUrl("https://maven.aliyun.com/repository/central") }
		google()
		jcenter()
	}
	dependencies {
		classpath 'com.android.tools.build:gradle:3.4.0'

                // 按需引入apm性能分析gradle插件 gradle7+ 版本
                classpath 'com.lydaas.qtsdk:apm-plugin:2.0.0'
                // 按需引入apm性能分析gradle插件 gradle7以下版本
                classpath 'com.lydaas.qtsdk:apm-plugin:1.0.1'

	}
}
allprojects {
	repositories {
                maven { setUrl("https://maven.aliyun.com/repository/central") }
		google()
		jcenter()
		
	}
}

1.2 组件引用

在工程App对应build.gradle配置脚本dependencies段中添加组件库依赖

PX系列的统分SDK需要结合国密版本的APM SDK使用:

dependencies {

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

        //集成统计分析SDK
	implementation 'com.lydaas.qtsdk:qt-px-common:1.6.2.PX'
  
        //apm稳定性SDK库
        implementation 'com.lydaas.qtsdk:apm-crash:2.0.0'
 
        //apm性能SDK库
        implementation 'com.lydaas.qtsdk:apm-efs:2.0.1'
}

如果您集成的是P系列的统分SDK,请集成以下版本的APM SDK:

dependencies {

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

        //集成统计分析SDK
	implementation 'com.lydaas.qtsdk:qt-common:1.6.1.P'
  
        //apm稳定性SDK库
        implementation 'com.lydaas.qtsdk:apm-crash:1.5.2.1.0.0.3'
 
        //apm性能SDK库
        implementation 'com.lydaas.qtsdk:apm-efs:1.6.0.001.210'
}

2. 配置权限

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

权限

用途

ACCESS_NETWORK_STATE

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

ACCESS_WIFI_STATE

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

INTERNET

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

READ_PHONE_STATE(可选)

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

下面给出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. 混淆配置

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

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

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