Gradle 集成方式

1.注册 OneAPM

注册 OneAPM,登录账号后点击“Mobile Insight (移动应用性能管理)",点击 添加新应用 进入下载安装页面,然后为您的应用取名,之后将获取应用 Token。

B002

注意:
1.包名不同的应用不能使用同一 Token 。
2.建议不采用重复的应用名称。

2.下载并解压 SDK

OneAPM Android_SDK.zip

3.正式集成

3.1 添加 oneapm.plugin 依赖

打开工程目录下的 build.gradle 文件。 A11 006 在 dependencies 模块中加入代码:

classpath 'com.oneapm.agent.android:plugin-gradle:5.5.4.5'
//根据实际需要版本修改
classpath 'com.oneapm.agent.android:rewriter:5.5.4.5'
//根据实际需要版本修改

注意事项

  • 添加 oneapm.plugin 依赖时,需要配置 jcenter 地址:"https//jcenter.bintray.com/”

3.2 添加 oneapm.agent 依赖

修改 project/app/build.gradle 文件

dependencies {
implementation 'com.oneapm.agent.android:agent:5.5.4.5'
// 根据实际需要版本修改
}

A11 007

3.3 引入 OneAPM

打开主模块目录下的 build.gradle 文件。

在文件头部引入 OneAPM

apply plugin: 'oneapm'

A11 008

3.4 配置初始化信息

SDK 初始化目前支持以下两种方式,您可以选择其中一种方式进行初始化配置。

3.4.1 配置oneapm.properties方式

将 oneapm.properties 文件拷贝至项目 assets 目录下(如果没有此目录需要自行创建)

A11 009

打开该文件设置将创建应用时获取的 App Token 赋值给 OneAPMAppKey 并设置 AgentStartupPath,其他设置项根据需要配置。

      AgentStartupPath=https://miv2dc.oneapm.com
      OneAPMAppKey=YourAppToken

A11 010

具体其它信息补充可参考属性文件内各个字段的具体含义。

3.4.2 配置 build.gradle 方式

在project/app/build.gradle 文件中添加

oneapm {
defaultConfig {

//配置用户的实际key和数据上传path
        oneAPMAppKey 'b4212840-77d5-47df-903b-92b73ac4c41f'
        agentStartupPath 'https://miv2dc.oneapm.com'
}
}

其他设置项根据需要配置。
注意:
(1)受 gradle 语法规则限制,在 build.gradle 里配置的各个设置项首字母需要小写,如 oneAPMAppKey 而不能写成 OneAPMAppKey,而在 oneapm.properties 文件里配置的话首字母大小写均可。
(2)若 oneapm.properties 文件和 build.gradle 方式同时配置时,build.gradle 方式优先级更高

如此即完成了 OneAPM Mi SDK 的引入,建议 Rebuild & Clean 项目,来确保 OneAPM 配置生效。

3.5 配置授权信息

确保应用程序的 AndroidManifest.xml 配置文件中,引入了以下请求授权

<!--发送性能数据到服务器需要该权限-->
<uses-permission android:name="android.permission.INTERNET" />
<!--发送性能数据到服务器需要该权限-->
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<!--sdk读取设备识别码需要该权限-->
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
非必选,若想使用 Crash 快照功能,请引入以下授权信息
<uses-permission android:name="android.permission.GET_TASKS" />

注意:如果您的应用使用 proguard 混淆,请配置以下:

-keep class okhttp3.** { *; }
-keep class com.oneapm.** {*;}
-dontwarn com.oneapm.**

注意:如果您希望保留行号信息,建议您在 proguard.cfg 中添加如下代码:

-keepattributes SourceFile, LineNumberTable

3.6 用户信息配置(可选)

本配置为可选项,目的是为了从自身业务维度标记活跃用户,如不进行配置,可以从设备标识维度对用户数据进行分析。

配置相关参数,在 MainActivity 的 onCreate() 中配置对应的用户信息:

//设置用户信息,作为展示的 name
OneApmConfig.setLoginUserName(String userName);
//用户标识切换或者退出时,清除已有用户标识
OneApmConfig.clearLoginUserName();

相关实例:

//设置 MyName 为展示 name
OneApmConfig.setLoginUserName("MyName");
//退出清除用户标识
OneApmConfig.clearLoginUserName();

3.7 运行应用程序并使用

运行应用程序一段时间,等待应用程序向 OneAPM 发送应用程序性能数据,耐心静候1分钟,即可开始使用 OneAPM 应用性能管理功能。

3.8 mapping 文件上传

为了正常解析代码混淆后的 App 崩溃信息,请按照以下步骤上传 mapping 文件:

(1)在应用列表选择刚刚创建的应用,点击进入应用详情界面;
(2)选择“应用设置”模块,点击编辑 mapping 文件列表,即可上传对应版本的 mapping 文件。

4.注意事项

4.1 多进程应用与 SDK 初始化

针对多进程应用来说,有可能会出现应用多次初始化 sdk 的情况,为了避免这种情况发生,可以在 application 的attachBaseContext(Context base)方法中调用OneApmConfig.forbidSecondInit(Context context)方法来防止在其他进程中初始化我们的 sdk。
例如:

override fun attachBaseContext(base: Context) {
        super.attachBaseContext(base)
       OneApmConfig.forbidSecondInit(this)
}

如果有特殊情况,比如用户给进程改名字的情况,那么 OneApmConfig.forbidSecondInit(this)方法需要放在更改进程名的方法前面。

4.2 应用无数据

  • 首先排查集成是否有问题,验证集成参加 4.2 描述。
  • 请检查数据上传地址
  • 检查 Token 是否配置正确,Token 与包名唯一绑定,如果被其他项目使用过也会导致当前 APP 无数据。

4.3 验证集成

在 Logcat 中过滤 oneapm 标签,查看是否有类似如下的日志输出即可 (version 代表发布版本,因版本不同而不同)。

OneAPM started with version :{version} ,表示集成没问题