通过本地集成的方式接入Android应用

ARMS用户体验监控App监控提供了非常全面的移动端应用监控能力,主要包括iOS应用监控和Android应用监控。本文介绍如何通过本地集成的方式将Android应用接入ARMS用户体验监控

前提条件

Gradle支持版本:3.0+

展开查看修改Gradle版本的操作

Android Studio中导入或者新建Demo项目后,选择file > project structure,然后选择合适的Gradle的版本,单击确认

步骤一:创建应用并集成探针

  1. 登录ARMS控制台
  2. 在左侧导航栏选择用户体验监控 > 应用列表,并在顶部菜单栏选择目标地域。

  3. 应用列表页面单击添加应用

  4. 创建应用面板单击Android

  5. Android面板输入应用名称和描述,然后单击创建

    说明

    应用名称唯一,不能与已创建的应用名称重复。

    创建成功后,当前应用将会自动生成对应的ConfigAddress(上报地址)和AppID。

  6. 预置OpenRum SDK环境。

    1. 下载SDK并解压。

    2. jniLibs目录内容复制打包到modules目录级别下存放so动态库的jniLibs目录中(若此目录不存在,需手动新建一个)。

    3. repo文件夹复制到project根目录下,与module目录同级。

    4. co.openrum.skd.jar复制到module级别下的libs目录下。

  7. 配置Gradle。

    1. 打开Project级别根目录下的build.gradle文件,添加以下内容。

      1. buildscript块中添加以下内容。

        说明

        若是buildscript块不存在,则手动添加。

        ext.openrumsdk_version = "7.7.0" // 这里的版本号根据实际情况而定
      2. buildscript块下的repositories块中添加以下内容。

        说明

        若是repositories块不存在,则手动添加。

        maven {
          url uri("./repo")
        }
      3. buildscript块下的dependencies块中添加以下内容。

        说明

        若是dependencies块不存在,则手动添加。

        classpath "com.openrum.agent.android:openrum:$openrumsdk_version"
      4. 单击Sync Now

    2. 打开module级别目录下的build.gradle文件,添加以下内容。

      1. 在头部引入openrum插件。

        apply plugin: 'openrum'
      2. 引入插件的方式可能发生了变化,若发生了变化,则在plugin块中添加。

        id: "openrum"
      3. dependencies模块中添加以下内容。

        implementation files('libs/com.openrum.sdk.jar')
      4. 单击Sync Now

  8. RebuildClean项目,确保OpenRum配置生效。

步骤二:接入应用

  1. 配置授权信息。

    检查应用程序AndroidManifest.xml配置文件,尽量确保已引入以下授权。

    <!-- 允许链接网络 -->
    <uses-permission android:name="android.permission.INTERNET"/> 
    <!-- 获取网络状态 -->
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
    <!-- 读取手机状态和身份权限 -->
    <uses-permission android:name="android.permission.READ_PHONE_STATE"/>
    <!-- 在公共存储读写数据 -->
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
  2. 配置混淆信息。

    Gradle Scripts下的proguard-rules.pro文件中添加以下配置。

    #ProGuard configurations for OpenRum-Agent
    -keep public class com.openrum.**{*;}
    -keep public class openrum.**{*;}
    -dontwarn com.openrum.**
    -dontwarn openrum.**
    #End OpenRum-Agent
    
    -optimizations !code/simplification/*,!field/*,!class/merging/*,!method/propagation/*,!class/unboxing/enum,!code/allocation/variable

步骤三:初始化SDK

请在自定义ApplicationonCreate函数中,添加以下代码。

说明

请将以下代码中的appKeyconfigUrl替换为控制台获取的当前应用对应的AppIDConfigAddress。

// 可选,设置用户ID,以字符串形式给用户做标识
OpenRum.setUserID("自定义userID");
// 这里的appKey和configUrl在RUM控制台创建时获得
OpenRum.withAppID("appKey")
.withConfigAddress("configUrl")
.start(getApplicationContext());

(可选)步骤四:WebView数据采集

采集WebView数据需调用WebViewClientWebChromeClient组件的支持。

  • 场景1:如果业务代码中不需要添加自定义的client,可以不额外增加对setWebViewClient或 setWebChromeClient的设置调用。

  • 场景2:如果业务需要设置client,请在设置时正确重写结构体,避免影响webview数据采集。

    webView.setWebChromeClient(new WebChromeClient(){});
    webView.setWebViewClient(new WebViewClient(){});

步骤五:嵌码验证

启动已嵌码的APK,查看logcat日志,搜索openrum关键字(或者过滤OpenRUM标签),出现如下log则表示嵌码成功且数据开始采集。

image.png