全部产品
云市场

Android SDK 接入手册

更新时间:2020-05-29 10:46:32

在接入阿里云移动 SDK 之前,请明确:

  • 您已在阿里云移动研发平台 ( EMAS ) 上建立相关产品,并获得对应的appId和appSecret

一、Android SDK接入

此部分适用于使用gradle管理依赖的Android Studio项目,具体接入方法可参考阿里云Android Demo工程 中的ha_android_demo项目。

1.1 添加依赖

可以选择以下两种依赖接入方式:

1.1.1 Maven仓库依赖接入

在项目build.gradle中添加阿里云Maven仓库地址:

  1. repositories {
  2. maven { url "http://maven.aliyun.com/nexus/content/repositories/releases" }
  3. }

app模块的build.gradle的dependencies节点内添加:

  1. compile('com.aliyun.ams:alicloud-android-ha-adapter:1.1.3.2-open@aar') {
  2. transitive=true
  3. }
  4. compile('com.aliyun.ams:alicloud-android-apm:1.0.7.8-open@aar') {
  5. transitive=true
  6. }

1.1.2 本地依赖接入

控制台SDK下载页面选择“性能监控”产品下载并拷贝下载包内的库文件放在项目的libs目录下;app模块的build.gradle根节点内增加:

  1. ```
  2. repositories {
  3. flatDir {
  4. dirs 'libs'
  5. }
  6. }
  7. ```

同时在build.gradle的dependencies节点内添加所有下载aar sdk库文件,文件如下:

  1. //1、本地jar库引入
  2. compile fileTree(include: ['*.jar'], dir: 'libs')
  3. //2、公共库
  4. compile (name: 'alicloud-android-ha-adapter-1.1.3.2-open', ext: 'aar')
  5. compile (name: 'alicloud-android-ha-core-1.1.0.6.1-open', ext: 'aar')
  6. compile (name: 'alicloud-android-ha-protocol-1.1.0.6-open', ext: 'aar')
  7. compile (name: 'alicloud-android-ha-tbrest-1.1.0.7-open', ext: 'aar')
  8. compile (name: 'alicloud-android-utdid-1.1.5.3', ext: 'jar')
  9. compile (name: 'fastjson-1.1.54.android', ext: 'jar')
  10. //3、性能监控,不接入可注释掉
  11. compile (name: 'alicloud-android-ha-apm-1.0.7.8-open', ext: 'aar')
  12. compile (name: 'alicloud-android-ha-apm-impl-1.0.6.9-open', ext: 'aar')
  13. compile (name: 'alicloud-android-ha-fulltrace-1.0.1.10', ext: 'aar')

1.2 接入服务

在自定义Application类的onCreate里面启动服务:

  1. public class MyApplication extends Application {
  2. @Override
  3. public void onCreate() {
  4. initHa();
  5. }
  6. private void initHa() {
  7. Log.e("ha", "init");
  8. AliHaConfig config = new AliHaConfig();
  9. config.appKey = "xxxxxxxx"; //appkey
  10. config.appVersion = "x.xx"; //应用的版本号信息
  11. config.appSecret = "xxxxxxxxxxxx"; //appsecret
  12. config.channel = "mqc_test"; //应用的渠道号标记,自定义
  13. config.userNick = null;
  14. config.application = this;
  15. config.context = getApplicationContext();
  16. config.isAliyunos = false; //是否为yunos
  17. config.rsaPublicKey = "xxxxxxx"; //移动监控公钥, 在控制台下载 aliyun-emas-services.json文件,文件内的appmonitor.tlog.rsaSecret字段即为公钥信息(文件下载方式:在 EMAS控制台-> 应用管理 找到对应的应用,点击应用所在区块右上角菜单内的“配置下载”),必填
  18. AliHaAdapter.getInstance().addPlugin(Plugin.apm);
  19. AliHaAdapter.getInstance().start(config);
  20. }
  21. }

AndroidManifest.xml里面指定自定义Application:

  1. <application
  2. android:name=".MyApplication"
  3. android:allowBackup="true"
  4. android:icon="@mipmap/ic_launcher"
  5. android:label="@string/app_name"
  6. android:supportsRtl="true"
  7. android:theme="@style/AppTheme" >
  8. </application>

二、混淆配置

如果开启了混淆,需要增加以下配置到您的混淆配置文件中:

  1. -keep class com.taobao.monitor.APMLauncher{*;}
  2. -keep class com.taobao.monitor.impl.logger.Logger{*;}
  3. -keep class com.taobao.monitor.impl.logger.IDataLogger{*;}
  4. -keep class com.taobao.monitor.impl.data.AbsWebView{*;}
  5. -keep class com.taobao.monitor.impl.data.GlobalStats{*;}
  6. -keep class com.taobao.monitor.impl.common.Global{*;}
  7. -keep class com.taobao.monitor.impl.data.WebViewProxy{*;}
  8. -keep class com.taobao.monitor.impl.logger.Logger{*;}
  9. -keep class com.taobao.monitor.impl.processor.pageload.IProcedureManager{*;}
  10. -keep class com.taobao.monitor.impl.processor.pageload.ProcedureManagerSetter{*;}
  11. -keep class com.taobao.monitor.impl.util.TimeUtils{*;}
  12. -keep class com.taobao.monitor.impl.util.TopicUtils{*;}
  13. -keep class com.taobao.monitor.impl.common.DynamicConstants{*;}
  14. -keep class com.taobao.application.common.data.DeviceHelper{*;}
  15. -keep class com.taobao.application.common.impl.AppPreferencesImpl{*;}
  16. -keep class com.taobao.monitor.impl.processor.launcher.PageList{*;}
  17. -keep class com.taobao.monitor.impl.processor.fragmentload.FragmentInterceptorProxy{*;}
  18. -keep class com.taobao.monitor.impl.processor.fragmentload.IFragmentInterceptor{*;}
  19. -keep class com.taobao.monitor.impl.logger.DataLoggerUtils{*;}
  20. -keep interface com.taobao.monitor.impl.data.IWebView{*;}
  21. -keep interface com.taobao.monitor.impl.processor.IProcessor{*;}
  22. -keep interface com.taobao.monitor.impl.processor.IProcessorFactory{*;}
  23. -keep interface com.taobao.monitor.impl.logger.IDataLogger{*;}
  24. -keep interface com.taobao.monitor.impl.trace.IDispatcher{*;}
  25. -keepattributes Exceptions,InnerClasses,Signature,Deprecated,SourceFile,LineNumberTable,*Annotation*,EnclosingMethod

三、测试验证

在您完成上述步骤之后,您可以测试您的App,通过https://emas.console.aliyun.com查看数据报表。

四、技术支持

EMAS通过钉钉群的形式为您的日常问题进行解答,钉钉群内会不定期推送更新通知等各类信息。请务必下载钉钉,包括PC版和移动版。

(1)EMAS组件服务钉钉群:

  • 性能分析:23166990
  • 远程日志:23352396
  • 崩溃分析:21763813
  • 移动热修复: 群四:23103350( 其它群已满 )
  • HTTPDNS: 11777313
  • 移动推送 11795523
  • 移动测试 11762195

(2)工单

可以通过工单提交问题反馈,工单提交地址为:https://selfservice.console.aliyun.com/ticket/createIndex