本文介绍如何快速将移动性能监控(Application Performance Management,APM)组件接入到 Android 客户端。APM 支持原生 AAR 和组件化(Portal & Bundle)两种接入方式。
完整的接入过程分为以下三步:
前提条件
确保 mPaaS 基线版本为 10.1.68.44 或以上版本。
已将 mPaaS 接入到工程,不同接入方式的操作不同:
若采用原生 AAR 方式接入,需要先 将 mPaaS 添加到项目中。
若采用组件化方式接入,需要先完成 组件化接入流程。
如需使用 RPC 性能监控功能,需接入移动网关组件。具体操作参见 接入移动网关服务。
如需使用自动化页面性能监控、应用启动速度监控功能、闪退监控功能、卡顿监控功能、卡死监控功能,需接入移动分析组件。具体操作参见 接入移动分析服务。
如需使用 H5 性能监控功能,需接入 H5 容器。具体操作参见 接入H5容器。
如需使用小程序性能监控功能,需接入小程序。具体操作参见 接入小程序。
添加 SDK
不同接入方式下,SDK 的添加方式略有不同。
原生 AAR 方式
参考 管理组件依赖(原生 AAR),通过 组件管理(AAR)在工程中安装 APM 组件。
组件化方式(Portal & Bundle)
在 Portal 和 Bundle 工程中通过 组件管理 安装 APM 组件。更多信息,请参考 管理组件依赖。
初始化 mPaaS
如果使用原生 AAR 接入方式,则需要初始化 mPaaS,即在
Application对象中添加以下代码。public class MyApplication extends Application { @Override public void onCreate() { super.onCreate(); // mPaaS 初始化 MP.init(this); } }详情请参考:初始化 mPaaS。
如果使用组件化接入方式,mPaaS 框架会自动初始化,您无需进行任何操作。
使用性能监控功能
开启 RPC 性能监控
如果已经接入了移动网关组件,可以开启 RPC 性能监控。
MPMonitor.enableRpcMonitor();开启自定义网络性能监控
如果使用了其他第三方或自定义的网络库,可以通过埋点上报网络性能数据。
// 开启自定义网络性能监控开关
MPMonitor.enableNetMonitor();
//针对每个网络请求,自主上报性能信息
Map<String, String> params=new HashMap<>();
params.put("gwIP","xx");
params.put("dnsTimeInterval","xx");
params.put("rpcStatusCode","xx");
params.put("transportTimeInterval","xx");
params.put("tcpTimeInterval","xx");
params.put("operationType","xx");
params.put("httpStatusCode","xx");
params.put("sslTimeInterval","xx");
params.put("clientIP","xx");
params.put("firstPackageTimeInterval","xx");
params.put("downloadAverageSpeed","xx");
params.put("traceId","13");
params.put("totalRequestTimeInterval","xx");
MPMonitor.recordNetPerf(params);传入的参数包括:
参数 | 说明 |
totalRequestTimeInterval | 总请求用时,单位为 ms。 |
dnsTimeInterval | DNS 解析耗时,单位为 ms。 |
tcpTimeInterval | TCP 建连耗时,单位为 ms。 |
SSLTimeInterval | SSL 建连耗时,单位为 ms。 |
firstPackageTimeInterval | 首包用时,从发起请求到收到服务器第一个数据包所用的时间,单位为 ms。 |
transportTimeInterval | 传输用时,从收到第一个数据包到最后一个数据包所用的时间,单位为 ms。 |
downloadAverageSpeed | 下载资源文件的平均速度。 |
httpStatusCode | HTTP 调用状态码,200 表示正常。 |
rpcStatusCode | RPC 调用状态码,200 表示正常。 |
operationType | 接口标识符,用于标识网关操作。 |
clientIP | 客户端 IP。 |
gwIP | 网关 IP。 |
traceId | 客户端请求的链路 ID。 |
开启自动化页面性能监控
如果已经接入了移动分析组件,并且开启了 自动化日志,APM 将会自动开启自动化页面性能监控。
开启应用启动速度监控
如果已经接入了移动分析组件,可以在应用首页 Activity 的 onCreate() 方法中调用以下接口。
MPLogger.reportLaunchTime(Context context);开启 H5 性能监控
接入 H5 容器后,H5 容器会自动上报性能监控数据,无需您手动埋点。
开启闪退监控
如果已经接入了移动分析组件,APM 会自动捕获闪退信息并上传日志到服务端,无需处理。
开启卡顿监控
卡顿是指 Android 主线程超过 2.25 秒仍未执行完一个方法。
接入移动分析组件后,应用的 Activity 需要继承 mPaaS 提供的类 BaseActivity、BaseFragmentActivity 或 BaseAppCompatActivity,APM 就能监控这些 Activity 上出现的卡顿。
APK 为 debug 包时,卡顿监控为全量统计。
APK 为 release 包时,卡顿监控为采样统计,采样率 10%。
开启卡死监控
卡死分为启动卡死和 ANR 卡死两种情况。启动卡死指 App 启动后 30 秒内未能离开欢迎页和进入首页;ANR 卡死指系统 ANR 卡死。
接入移动分析组件后,应用的 Activity 需要继承 mPaaS 提供的类 BaseActivityBaseFragmentActivity 或 BaseAppCompatActivity,APM 就能监控这些 Activity 上出现的卡死。
启动卡死仅 Portal & Bundle 接入方式能监控到。
开启小程序监控
接入小程序后,小程序会自动上报性能监控数据,无需您手动埋点。