Android SDK 集成步骤

1. 注册 OneAPM

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

B002

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

2. 下载并解压 OneAPM SDK

OneAPM Android_SDK.zip

3.正式集成

集成 Android SDK 方式分为以下两种方式:

3.1 Gradle 方式集成

3.1.1 下载远程依赖插件

打开功能目录下的 build.gradle 文件。 A11 001 在 dependencies 模块中加入代码:

classpath 'com.oneapm.ruem.tools:android:5.4.0.0'

代码示例如图: A11 002

3.1.2 引入 OneAPM

打开主模块目录下的 build.gradle 文件。 A11 003 在文件头部引入 OneAPM

apply plugin: 'oneapm'

A11 004

在app 目录下的build.gradle配置cofnig
//在此处填写步骤1获取的token。

oneapm {
  defaultConfig {
    oneAPMAppKey '<YourAppToken>'
    startupPath 'http://miv2dc.oneapm.com'
  }
}

注意:Android Gradle plugin version 要求版本为 1.5~2.3.2

3.1.3 配置更多信息

oneapm {
   defaultConfig {
       oneAPMAppKey '<YourAppToken>'
       startupPath 'http://miv2dc.oneapm.com'
       agentProperties ' LogLevel' : ' debug', ' SendCrashReports' : 'false'
   }
}

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

3.1.4 配置授权信息

确保应用程序的 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.1.5 用户信息配置(可选)

本配置为可选项,如不进行配置,默认展示 DeviceID

(1)如需配置用户信息 ,需要将解压的探针包中的 /lib/OneAPM_Agent.jar 作为 provided 添加进项目依赖:在libs 同级目录创建 oneapm 文件夹,将 OneAPM_Agent.jar 复制到 oneapm 文件夹下在 build.gradle 文件中添加 provided files('oneapm/OneAPM_Agent.jar')

注意:此处不能为 compile 依赖

(2)配置相关参数,在第一个 Activity 的 onCreate() 中配置对应的额外信息:

try{
    OneApmConfig.setUserName(String userName);//设置用户信息,作为展示的name
}catch(Throwable throwable){
    //注意 使用Throwable 来捕获全量异常,
}


举例:

try{
    OneApmConfig.setUserName(“MyName”);//设置 MyName 为展示name
}catch(Throwable throwable){
    //注意 使用Throwable 来捕获全量异常,
}

注意: 建议您使用 try catch 包裹代码块

3.1.6 配置变体包(可选)

如果您有多个渠道需要配置不同的 token 那么可以配置不同的变体包来完成各个渠道的配置。

oneapm {
   defaultConfig {
     oneAPMAppKey '<YourAppToken>'
     startupPath 'http://miv2dc.oneapm.com'
   }
   productFlavors {
     GooglePlay{
       oneAPMAppKey ' <YourAppToken>'
       startupPath 'http://miv2dc.oneapm.com'
     }
  }
}

3.2 APK 插码方式集成

3.2.1 配置启动代码

解压 SDK 后,得到 Android SDK 插码工具集,修改其中的 APK-Instr.properties 属性文件的 OneAPMAppKey 为步骤一中生成的 Token 。

OneAPMAppKey=“use app token created at step 1”

A1 002

3.2.2 用户信息配置(可选)

本配置为可选项,如不进行配置,默认展示 DeviceID

(1)如需配置用户信息 ,需要将解压的探针包中的 /lib/OneAPM_Agent.jar 作为 provide 添加进项目依赖

注意:此处不能为 compile 依赖

(2)配置相关参数,在第一个 Activity 的 onCreate() 中配置对应的额外信息:

 OneApmConfig.setUserName(String userName);//设置用户信息,作为展示的name

举例:

OneApmConfig.setUserName(“MyName”);//设置 MyName 为展示name

3.2.3 对 APK 文件执行插码命令

(1) 准备一个需要插码的 APK 文件, 执行 (instrument.sh prop=APK-Instr.properties apk=xxx.apk) 示例:

Windows 命令操作如下:

cd instrument.cmd 所在的路径
instrument.cmd prop=.\APK-Instr.properties apk=C: \Users\a\Desktop\testApk.apk

mac or linux 命令操作如下:

cd instrument.sh 所在的路径
sh instrument.sh prop=.\APK-Instr.properties apk=Users\Desktop\te
stApk.apk

注意: * Mac or Linux 需要保证 instrument.sh 拥有 chmod + x 权限; * 此处文件路径需根据自身文件所在路径进行修改;

(2) 等待插码程序工作,结束后会产出三个 apk 文件(产出 apk 文件会在命令行中会列出文件绝对路径)分别是:

A1 003

  • xxx.apk(插码完成的 apk ,没有签名,没有对齐,您可以对此 apk 执行签名和对齐操作后发布到线上)。
  • xxx-final.apk(使用 debug 签名和对齐操作的 apk,用于测试)。
  • xxx-signed.apk (使用 debug 签名过的 apk,用于测试) 取其中 xxx-final.apk 即 插码完成的 apk 文件作为最终的测试 apk。

注意:

  • xxx-final.apk 是使用 debug 签名过的 apk,如果您需要 apk 发布线上,请使用您的密钥文件对 xxx.apk 进行签名;
  • 插码工作可能因为方法数超限而失败,请点击以下按钮查看解决方案。

4.运行应用程序并使用

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

5.mapping 文件上传

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

(1)在应用列表选择刚刚创建的应用,点击进入应用详情界面;

(2)选择“应用设置”模块,点击编辑 mapping 文件列表,即可上传对应版本的 mapping 文件。