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