OutSiderAPM API速查手册:ITracker、Listener与Tracker核心接口完全参考

【免费下载链接】OutSiderAPM Powerful, comprehensice application performance management platform of Android 【免费下载链接】OutSiderAPM 项目地址: https://gitcode.com/gh_mirrors/ou/OutSiderAPM

OutSiderAPM 是一款强大的 Android 应用性能监控(APM)平台,通过统一的 ITracker 接口Listener 监听器Tracker 核心接口,帮助开发者一站式采集线程、内存、流量、电量、卡顿与 ANR 六大维度的运行数据。这篇 OutSiderAPM API 速查手册 面向新手与普通开发者,不堆砌复杂源码,用最短时间带你搞懂每一个核心接口的职责、方法签名与接入姿势,随查随用。🚀

一、OutSiderAPM 核心架构速览

整个性能监控框架分为三层,理解这张"地图"你就能快速定位任何 API:

层级 代表类 职责
入口层 OutSider 应用级生命周期管理,统一启停所有 Tracker
接口层 ITracker 所有监控模块的"总契约"
能力层 六大 Tracker 线程/内存/流量/电量/卡顿/ANR 的具体实现

核心入口代码位于 outsider/src/main/java/me/wsj/apm/OutSider.kt,所有 Tracker 都由它统一调度,这也是理解整套 API 的最佳起点。

二、快速集成:三步启动性能监控

在动手看接口之前,先让 OutSiderAPM 跑起来。项目源码托管在 GitCode,集成步骤如下:

  1. 获取源码:使用 git clone https://gitcode.com/gh_mirrors/ou/OutSiderAPM 拉取完整工程,其中 outsider 模块就是运行时 SDK,apm-plugin 是字节码插桩插件。
  2. 初始化入口:在 Application.onCreate() 中调用 OutSider.init(app),框架会借助 ProcessLifecycleOwner 自动感知应用前后台状态。
  3. 开启监控:应用进入前台后,框架自动调用各 Tracker 的 startTrack();应用销毁时自动调用 destroy() 释放资源。

三、ITracker 接口:所有监控模块的总契约

ITracker 是整个框架最底层的接口,定义在 outsider/src/main/java/me/wsj/core/ITracker.java。任何监控模块只要实现它,就能被框架统一管理生命周期。

方法 调用时机 用途
startTrack(Application) 应用进入前台 启动该模块的数据采集
pauseTrack(Application) 应用退到后台 暂停采集,降低后台耗电
destroy(Application) 应用销毁 释放资源,注销监听

💡 新手提示:日常开发中你基本不需要直接实现 ITracker,框架内置的六大 Tracker 已经实现完毕;它的意义在于让你理解"所有监控模块都遵循同一套启停规范"。

四、Listener 监听器:数据回调的五个关键接口

监听器(Listener)是 Tracker 把采集结果"送"给你的通道。所有监听器接口都在 outsider/src/main/java/me/wsj/apm/ 目录下,按功能模块分包,非常清晰。

1. ANR 监听:AnrListener 与 OnInterruptedListener

当主线程超过 4 秒无响应时触发,定义在 anr/AnrListener.kt

onAppNotResponding(error: AnrError)

回调参数 AnrError 中包含 ANR 发生的时间、线程堆栈等详细信息。配套的 OnInterruptedListener(见 anr/OnInterruptedListener.kt)负责处理监控线程被意外中断的异常场景,返回 onInterrupted(e: InterruptedException) 回调。

2. 内存泄漏监听:ITrackMemoryListener

定义在 mem/ITrackMemoryListener.kt,包含两个回调:

  • onLeakActivity(activity: String, count: Int):Activity 泄漏时回调,count 为泄漏次数
  • onCurrentMemoryCost(trackMemoryInfo: MemoryInfo?):周期性上报当前内存消耗

3. 电量消耗监听:IBatteryListener

定义在 battery/IBatteryListener.kt,通过 onBatteryCost(batteryInfo: BatteryInfo?) 回调返回电量统计信息,用于定位高耗电场景。

4. 网络流量监听:TrafficListener

定义在 traffic/TrafficListener.kt,回调 getTrafficStats(activity: Activity?, value: Long),其中 value 是当前页面累计消耗的流量字节数。

五、Tracker 核心接口:注册与注销监听器

所有 Tracker 都继承自泛型基类 BaseTracker<T>(见 outsider/src/main/java/me/wsj/core/BaseTracker.kt),它提供了统一的监听器管理能力:

方法 功能
addTrackerListener(listener: T) 注册一个监听器,开始接收数据回调
removeTrackerListener(listener: T) 注销监听器,停止接收回调

框架内置的六大 Tracker 均为单例,通过 .instance 获取,访问路径统一在 outsider/src/main/java/me/wsj/apm/ 下:

  • ThreadTracker:线程监控(thread/ThreadTracker.kt
  • MemoryTracker:内存与泄漏监控(mem/MemoryTracker.kt
  • TrafficTracker:流量监控(traffic/TrafficTracker.kt
  • BatteryStatsTracker:电量监控(battery/BatteryStatsTracker.kt
  • BlockTracker:卡顿监控(jank/BlockTracker.kt
  • AnrMonitor:ANR 监控(anr/AnrMonitor.kt

六、实战示例:一次性注册全部监听器

以框架自带的 OutSider.kt 为模板,一个完整的监听注册流程如下:

  1. 内存监控:调用 MemoryTracker.instance.addTrackerListener(...) 注册 ITrackMemoryListener,在 onLeakActivity 中记录泄漏页面与次数。
  2. 流量监控:调用 TrafficTracker.instance.addTrackerListener(...) 注册 TrafficListener,按 Activity 维度统计流量消耗。
  3. ANR 监控:调用 AnrMonitor.instance.setAnrListener(...)setAnrInterceptor(...),既能拿到 ANR 详情,也能自定义拦截阈值(默认 4 秒)。
  4. 统一启动:依次调用各模块的 startTrack(app);应用销毁时调用 destroy(app) 清理现场。

七、接口速查表:一张表记住全部 API

接口 核心方法 所属模块
ITracker startTrack / pauseTrack / destroy 框架统一契约
BaseTracker<T> addTrackerListener / removeTrackerListener 监听器管理基类
AnrListener onAppNotResponding(AnrError) ANR 监控
OnInterruptedListener onInterrupted(InterruptedException) ANR 监控
ITrackMemoryListener onLeakActivity / onCurrentMemoryCost 内存监控
IBatteryListener onBatteryCost(BatteryInfo) 电量监控
TrafficListener getTrafficStats(Activity, Long) 流量监控

八、常见问题 FAQ

Q1:为什么我的监听器收不到回调? 请确认两点:一是通过 addTrackerListener 完成注册,二是确保对应 Tracker 已调用 startTrack()

Q2:ITrackerBaseTracker 有什么区别? ITracker 定义生命周期契约,BaseTracker 提供监听器注册的实现能力,两者配合使用:各 Tracker 继承 BaseTracker,同时遵循 ITracker 的生命周期规范。

Q3:想扩展自定义监控模块怎么办? 继承 BaseTracker<T> 实现监听器管理,再实现 ITracker 的启停方法,最后在 OutSider 中接入即可,框架完全开放扩展。

这份 OutSiderAPM API 速查手册 建议收藏备用:集成时看"快速集成",排查问题查"接口速查表",需要二次开发时再深入阅读源码即可。现在就去 clone 项目,用十个监听器把应用性能"看穿"吧!🎯

【免费下载链接】OutSiderAPM Powerful, comprehensice application performance management platform of Android 【免费下载链接】OutSiderAPM 项目地址: https://gitcode.com/gh_mirrors/ou/OutSiderAPM

更多推荐