移动端监测-Android

移动端监测-Android接入步骤

Step-1 工程相关依赖构建

操作人员需要确保已经安装了Gradle构建环境和AS开发环境

  1. 打开项目根目录下的build.gradle(Project)文件

  2. 在buildscript模块中加入如下代码

    在repositories模块中加入maven库地址如下:

    maven {
        url 'https://dl.bintray.com/qec/xray'
    }
    

    在dependencies模块中加入classpath添加如下代码:

    classpath 'qec.xray.plugin:plugin:4.0'

  3. 打开app下的build.gradle(Module)文件

  4. 在该文件应用添加 xray 插件

    apply plugin: 'xray'

  5. 集成sdk (两种方式二选一)

    方式一:线上集成

    1. 在该文件(app的gradle文件)下配置repositories:

      repositories {
          mavenCentral()
          maven {
             url 'https://dl.bintray.com/qec/xray'
          }
      }
      
    2. 在dependencies添加xray的依赖

      implementation 'qec.xray.xraysdk:xraysdk:4.2.0'

    如下图所示:

    集成完毕,sync一下即可

    方式二:线下集成

    下载xray最新Xray_Android_v4.2.0.jar, 将sdk拷贝到工程项目-> app目录 -> libs文件夹下。 如图所示:

  6. sync一下Android Studio,将maven库中的相关文件同步到本地

Step-2 配置应用权限

构建完成后,请在待监测的App工程的AndroidMainfest.xml文件中增加以下的权限:

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
<uses-permission android:name="android.permission.INTERNET" />

Step-3 插入初始化探针代码

在自定义Application中的onCreate()方法中初始化Android SDK

1.常规初始化操作(默认只打印是否初始化成功的 logcat)

XraySDK.withApplicationToken(appKey).setCuid(cuid).start(this);

2.初始化时配置log级别

XraySDK.withApplicationToken(appKey).setLogcatLevel(XraySDK.LOG_WARN).start(this);

默认分为debug、info、warn、error 4个级别,设置级别后,sdk只打印大于等于该级别的logcat信息,如设置为warn, 则sdk只会打印warn级别和error级别的log。若需要将logcat关闭,只需要将level设置为close即可,如下所示:

XraySDK.withApplicationToken(appKey).setLogcatLevel(XraySDK.LOG_CLOSE).start(this);

Step-4 配置混淆

1.务必在app正式发布前在proguard混淆配置文件中增加以下内容,以免xraysdk不可用:

注意:若网络请求使用第三方开源的网络框架 (如okhttp)请务必保持该网络框架不被混淆

# ProGuard configurations for XRAY SDK
-keep class com.baidu.xray.agent.** { *; }
-dontwarn com.baidu.xray.agent.**
-ignorewarnings
-keepattributes Exceptions, Signature, InnerClasses
# End XRAY SDK configurations

2.若需要保留行号信息,请在proguard混淆配置文件中添加以下内容:

-keepattributes SourceFile,LineNumberTable

自定义配置

1.初始化

// 最简单初始化方式,所有设置均为默认值
XraySDK.withApplicationToken(appKey).start(this);

2.设置用户id

// 初始化之后调用
XraySDK.setUserId(String userId);

3.设置用户名

// 初始化之后调用
XraySDK.setUserName(String userName);

4.自定义app版本号

// 在初始化后调用
XraySDK.setAppVersionName(String);

5.是否发送设备信息数据,默认为是

XraySDK.setSendPrivacyInformation(boolean);

6.是否仅wifi环境下上传,默认为false

// 初始化之后调用
XraySDK.setUserName(String userName);

7.添加自定义字段

XraySDK.setUsersCustomKV(HashMap);
XraySDK.setUsersCustomKV(String, String);

8.设置log捕获行数,默认是200行

XraySDK.setLogcatLineCount(200);

9.设置移动网络下也立即上传,需在初始化之时链式调用

// 默认为false即移动网络下不立即上传,24小时内连接wifi上传,超过24小时才强制上传
XraySDK.withApplicationToken(appKey).setUploadImmediately(true).start(this);