本文介绍如何通过Maven集成方式添加依赖接入性能分析服务的Android SDK。
说明
- 性能分析服务的Android SDK接入可采用Maven集成和本地集成2种方式添加依赖。推荐使用Maven集成方式添加依赖,可大幅简化接入操作。
- 如需使用本地集成方式添加依赖,操作方法参见:Android SDK接入(本地集成)。
使用限制
- 仅支持Android 4.2及以上版本。
- 仅支持arm64-v8a、armeabi-v7a、x86和x86_64架构。
- 仅支持gradle 3.0.0及以上版本。
- 仅支持以下网络库版本:
- okhttp2:2.0.0~2.7.5
- okhttp3:3.0.0~3.14.7
- okhttp4:4.0.0~4.8.1
步骤一:创建监控任务
- 登录ARMS控制台,在左侧导航栏中单击App监控。
- 在App监控页面,单击右上角的创建App监控任务。
- 在接入中心面板,单击Android App。
- 在接入面板的Step 1区域输入App名称和PackageName,选择App的平台,然后单击创建应用。
- 在Step 2区域,根据页面提示下载aliyun-emas-services.json文件。
- 打开aliyun-emas-services.json文件,获取
emas.appKey
、emas.appSecret
、emas.packageName
和appmonitor.rsaSecret
内容。
说明
- 为避免在日志中泄漏参数appkey、appsecret、rsaSecret或App运行过程中产生的数据,建议线上版本关闭SDK调试日志。
- 由于所有用户使用统一的SDK接入,在接入过程中需要在代码中设置appkey、appsecret、rsaSecret参数,而此类参数与计量计费密切相关,为防止恶意反编译获取参数造成信息泄漏,建议您开启混淆,并进行App加固后再发布上线。具体操作,请参见(可选)步骤五:混淆配置。
步骤二:应用插件
- 在项目级build.gradle文件的
buildscript{}
代码段添加插件依赖。
说明 此处仅添加插件依赖,应用依赖需添加至
build.gradle项目文件的
dependencies{}
代码段下。具体操作,请参见
步骤三:添加依赖。
buildscript {
repositories {
google()
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:${gradle-version}'
classpath 'com.aliyun.ams:alicloud-android-networkmonitor-plugin:1.3.0-open'
}
}
其中,gradle-version
用于指定实际开发环境的Gradle版本,例如:classpath 'com.android.tools.build:gradle:4.8.1'
。
- 在应用级build.gradle文件中添加代码段应用插件。
apply plugin: 'com.aliyun.emas.networkmonitor'
步骤三:添加依赖
- 在项目级build.gradle文件的
repositories{}
代码段添加阿里云Maven仓库地址。repositories {
maven { url "http://maven.aliyun.com/nexus/content/repositories/releases" }
}
- 在应用级build.gradle文件的
android{}
代码段设置应用包名和.so库。android {
......
defaultConfig {
applicationId "com.xxx.xxx" //App的PackageName。
......
ndk {
//选择要添加的对应CPU类型的.so库,当前以下支持四种。
abiFilters 'arm64-v8a', 'armeabi-v7a', 'x86', 'x86_64'
}
......
}
......
}
- 在应用级build.gradle文件的
dependencies{}
代码段中添加SDK依赖。dependencies {
......
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation "com.squareup.okhttp3:okhttp:${okhttp3version}"
//线上测试
implementation 'com.aliyun.ams:alicloud-android-ha-adapter:1.1.5.2-open'
implementation 'com.aliyun.ams:alicloud-android-apm:1.1.0.0-open'
......
}
其中,okhttp3version
用于设置本地开发环境可支持的网络库版本。例如:implementation "com.squareup.okhttp3:okhttp:4.8.1"
。
步骤四:接入性能分析服务
- 定义Application类,编写onCreate方法,启动服务。
public class MyApplication extends Application {
@Override
public void onCreate() {
initHa();
}
private void initHa() {
AliHaConfig config = new AliHaConfig();
config.appKey = "xxxxxxxx"; //替换为步骤一中获取的AppKey。
config.appVersion = "x.xx"; //设置App的版本号。
config.appSecret = "xxxxxxxxxxxx"; //替换为步骤一中获取的AppSecret。
config.channel = "mqc_test"; //设置渠道标识,上报至服务端,进行渠道区分。
config.userNick = null; //设置用户昵称,上报至服务端,进行用户区分。后续可能依据该参数,进行数据检索。
config.application = this;
config.context = getApplicationContext();
config.isAliyunos = false; //App所在平台是否为YunOS。
config.rsaPublicKey = "xxxxxxx"; //替换为步骤一中获取的appmonitor.rsaSecret。
AliHaAdapter.getInstance().addPlugin(Plugin.apm);
AliHaAdapter.getInstance().start(config);
}
}
- 在AndroidManifest.xml中添加代码段注册Application。
<application
android:name=".MyApplication"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme" >
</application>
(可选)步骤五:混淆配置
如需App对代码进行乱序混淆,则在混淆配置文件中添加以下代码段:
-keep class com.taobao.monitor.impl.**{*;}
-keep class com.taobao.monitor.adapter.**{*;}
-keep class com.taobao.application.common.**{*;}
-keep class com.facebook.drawee.generic.RootDrawable{*;}
-keep class com.facebook.drawee.drawable.FadeDrawable{*;}
-keep class androidx.fragment.app.Fragment{*;}
-keepattributes Exceptions,InnerClasses,Signature,Deprecated,SourceFile,LineNumberTable,*Annotation*,EnclosingMethod
功能验证
Android SDK接入操作完成后,可操作App,查看性能分析服务控制台显示数据,进行功能验证。
- 在手机端启动App,一段时间后在控制台查看概览页签的启动速度是否显示数据。
- 在手机端App中跳转几个页面。一段时间后在控制台查看概览页签的加载时间是否显示数据。
说明 数据从App采集到控制台显示,存在大约2分钟延迟。
如数据显示正常,则Android SDK接入成功;如未接入成功,可能的原因是:SDK接入失败、SDK未获取数据、数据发送失败、后端问题,请联系技术支持。
SDK版本说明
版本号 |
发布日期 |
变更说明 |
1.0.10.0-open |
2021年05月13日 |
代码优化。 |
1.0.8.2-open |
2020年12月18日 |
代码优化。 |
1.0.8.1-open |
2020年11月24日 |
优化编译构建问题。 |
1.0.8.0-open |
2020年11月12日 |
新增网络异常分析功能。 |