借助 App 监控的 SDK,您可以获取完备的崩溃分析,具体包括 Java Crash 监控、Native Crash 监控、ANR 监控、JavaScript 错误等。

前提条件

已在 ARMS 中创建 App 监控任务。请参见创建监控任务

背景信息

本文档适用于使用 gradle 管理依赖的 Android Studio 项目。可参考 demo 工程 ha_android_demo

步骤一:添加依赖

Maven 仓库依赖接入。

  1. 在项目 build.gradle 中添加阿里云 Maven 仓库地址。
        repositories {    
        maven { url "http://maven.aliyun.com/nexus/content/repositories/releases" }
        }
  2. app 模块中的 build.gradle 的 dependencies 节点内添加以下代码。
    compile('com.aliyun.ams:alicloud-android-ha-adapter:1.1.3.2-open@aar') {
            transitive=true
        }
    compile('com.aliyun.ams:alicloud-android-ha-crashreporter:1.2.1-open@aar') {
            transitive=true
        }

步骤二:初始化实例

  1. 在自定义 Application 类的 onCreate 里面启动服务。

        public class MyApplication extends Application {
        @Override
        public void onCreate() {
            initHa();
        }
    
        private void initHa() {
           Log.e("ha", "init");
           //这里必须启动,否则服务端收不到数据
            AliHaAdapter.getInstance().openPublishEmasHa();
    
         AliHaConfig config = new AliHaConfig();
         config.appKey = "<yourAppKeyId>";         //appkey
           config.appVersion = "x.xx";         //应用的版本号信箱
           config.appSecret = "<yourAppKeySecret>";  //appsecret
           config.channel = "<yourChannelId>";        //应用的渠道号标记,自定义
           config.userNick = null;
           config.application = this;
           config.context = getApplicationContext();
           config.isAliyunos = false;          //是否为 yunos
           AliHaAdapter.getInstance().startCrashReport(config);     //启动CrashReport
        }
    }
    说明 appkey 和 appsecret,可在创建监控任务中,步骤4下载的配置文件中获得。
  2. AndroidManifest.xml 里面指定自定义 Application。

    <application
        android:name=".MyApplication"
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:supportsRtl="true"
        android:theme="@style/AppTheme" >
        ```
        ```
    </application>

步骤三:更新渠道标记

AliHaAdapter.getInstance().updateChannel("600000");

步骤四:更新自定义标记

AliHaAdapter.getInstance().updateUserNick("aliyun");

步骤五:添加混淆规则

-keep class com.alibaba.ha.**{*;}
-keep class com.taobao.tlog.**{*;}
-keep class com.ut.device.**{*;}
-keep class com.ta.utdid2.device.**{*;}
-keep public class com.alibaba.mtl.** { *;}
-keep public class com.ut.mini.** { *;}
-keep class com.alibaba.motu.crashreporter.**{ *;}
-keep class com.uc.crashsdk.**{*;}
-keep class com.ali.telescope.**{ *;}
-keep class libcore.io.**{*;}
-keep class android.app.**{*;}
-keep class dalvik.system.**{*;}
-keep class com.taobao.tao.log.**{*;}
-keep class com.taobao.android.tlog.**{*;}
-keep class com.alibaba.motu.**{*;}
-dontwarn com.taobao.orange.**
-dontwarn com.taobao.android.**
-dontwarn com.alibaba.ha.adapter.**
-dontwarn com.taobao.monitor.adapter.**
-dontwarn com.alibaba.fastjson.**
-dontwarn com.ali.alihadeviceevaluator.**
-dontwarn java.nio.file.**
-dontwarn org.codehaus.mojo.**

结果验证

在完成上述步骤之后,您可以对您的 APP 进行测试,并登录 ARMS 控制台查看数据报表。