文档

Android SDK接入(Maven集成)

更新时间:

本文介绍如何通过Maven集成方式添加依赖接入远程日志服务。

说明
  • 接入远程日志服务的Android SDK可采用Maven集成和本地集成2种方式添加依赖。推荐使用Maven集成方式添加依赖,可大幅简化接入操作。

  • 如需使用本地集成方式添加依赖,操作方法参见Android SDK接入(本地集成)

样例代码

Demo工程

使用限制

  • 仅支持Android 4.2及以上版本。

  • 仅支持arm64-v8a、armeabi-v7a、x86和x86_64架构。

  • 日志在手机端最多存储7天。

步骤一:创建监控任务

  1. 登录ARMS控制台,在左侧导航栏中单击App监控
  2. App监控页面,单击右上角的创建App监控任务
  3. 接入中心面板,单击Android App
    接入App监控
  4. 在接入面板的Step 1区域输入App名称PackageName,选择App的平台,然后单击创建应用
    创建APP监控任务
  5. Step 2区域,根据页面提示下载aliyun-emas-services.json文件。
    查看配置
  6. 打开aliyun-emas-services.json文件,获取emas.appKeyemas.appSecretemas.packageNameappmonitor.tlog.rsaSecret内容。

    aliyun-emas-services

    说明
    • 为避免在日志中泄露参数appkey、appsecret、rsaSecret或App运行过程中产生的数据,建议线上版本关闭SDK调试日志。

    • 由于所有用户使用统一的SDK接入,在接入过程中需要在代码中设置appkey、appsecret、rsaSecret参数,而此类参数与计量计费密切相关,为防止恶意反编译获取参数造成信息泄露,建议您开启混淆,并进行App加固后再发布上线。具体操作,请参见(可选)步骤六:混淆配置

步骤二:添加依赖

  1. 在项目级build.gradle文件的repositories{}代码段添加阿里云Maven仓库地址。

    repositories {
        maven { url "http://maven.aliyun.com/nexus/content/repositories/releases" }
    }
  2. 在应用级build.gradle文件的dependencies{}代码段中添加SDK依赖。

    compile('com.aliyun.ams:alicloud-android-ha-adapter:1.1.5.2-open@aar') {
        transitive=true
    }
    compile('com.aliyun.ams:alicloud-android-tlog:1.1.4.4-open@aar') {
        transitive=true
    }
  3. 在应用级build.gradle文件的defaultConfig代码段内根据实际需要配置ABI。

    ndk {
            abiFilters 'armeabi'    //可选取值:armeabi-v7a、arm64-v8a、x86、x86_64。
    }

步骤三:接入服务

  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.tlog.rsaSecret。
             AliHaAdapter.getInstance().addPlugin(Plugin.tlog);
             AliHaAdapter.getInstance().openDebug(true);
             AliHaAdapter.getInstance().start(config);
             TLogService.updateLogLevel(TLogLevel.XXXXXX); //设置日志拉取级别。选项:ERROR(默认)、WARN、INFO、DEBUG、VERBOSE。
        }
    }
  2. 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>

步骤四:打印日志

  1. 如业务流程触发日志输出,需引入头文件。

    import com.alibaba.ha.adapter.service.tlog.TLogService;
  2. 在适当位置添加代码,打印日志信息。

    示例代码:

    TLogService.logv("MODEL","TAG","MESSAGE");
    TLogService.logd("MODEL","TAG","MESSAGE");
    TLogService.logi("MODEL","TAG","MESSAGE");
    TLogService.logw("MODEL","TAG","MESSAGE");
    TLogService.loge("MODEL","TAG","MESSAGE");

    函数TLogService.<LogLevel>(<MODEL>,<TAG>,<MESSAGE>);用于输出指定级别的日志信息。

    参数

    说明

    LogLevel

    指定拉取的日志级别。日志级别说明请参见术语解释

    • logv:输出VERBOSE(调试详情)级别的日志。

    • logd:输出DEBUG(调试信息)级别的日志。

    • logi:输出INFO(一般信息)级别的日志。

    • logw:输出WARN(警告信息)级别的日志。

    • loge:输出ERROR(错误信息)级别的日志。

    说明

    输出的日志是否可以被控制台拉取,取决于TLogService.updateLogLevel()函数的参数设置。例如:当函数设置为TLogService.updateLogLevel(TLogLevel.WARN)时,控制台拉取不到通过logv、logd和logi输出的日志。

    MODEL

    设置输出日志内容的功能模块,便于后续根据来源筛选日志。

    TAG

    设置日志的关键字,便于后续根据标签筛选日志。

    MESSAGE

    输出日志信息。

步骤五:上报日志

如业务流程触发日志输出,需引入头文件。

import com.alibaba.ha.adapter.service.tlog.TLogService;

(可选)步骤六:混淆配置

如需App对代码进行乱序混淆,则在混淆配置文件中添加以下代码段:

-keep class com.taobao.tao.log.**{*;}
-keep public class * extends com.taobao.android.tlog.protocol.model.request.base.FileInfo{*;}
-keepattributes Exceptions,InnerClasses,Signature,Deprecated,SourceFile,LineNumberTable,*Annotation*,EnclosingMethod

步骤七:编译

如同时使用其他阿里云产品,可能会因为依赖中存在UTDID冲突,造成编译失败。解决办法,请参见SDK UTDID冲突解决方案

  • 本页导读 (1)
文档反馈