Skip to main content
Flashduty Android RUM SDK 默认自动收集所有 RUM 事件的多个指标和属性。您还可以通过 API 添加自定义属性以扩展默认数据集。

隐私合规与权限说明

Flashduty Android RUM SDK 仅为真实用户体验监控、错误定位、性能分析和网络请求分析收集必要的运行时信息。SDK 自身声明的 Android 权限如下:
SDK 自身不会声明或要求 READ_PHONE_STATEACCESS_FINE_LOCATIONACCESS_COARSE_LOCATION 等敏感权限。

不采集的设备标识

Android RUM SDK 不会读取或上报以下设备唯一标识:
RUM 默认可生成一个匿名用户 ID,用于跨会话关联同一匿名用户。该 ID 是 SDK 随机生成的 UUID,并存储在应用本地数据目录中,不来自 Android ID、IMEI、OAID 或广告 ID。您可以在 RUM 配置中关闭匿名用户追踪。

会采集的系统上下文

SDK 会自动附加以下系统上下文,帮助排查性能、崩溃和网络问题:
本文档列出的“地理位置”字段由 Flashduty 后端根据客户端请求 IP 推断,不是 Android 客户端读取系统定位。SDK 不调用 GPS、基站定位或融合定位 API,也不需要定位权限。

应用启动指标

Flashduty 自动收集以下应用启动性能指标:
启动类型说明:
  • 冷启动 - 应用首次启动或进程被终止后启动,需要加载所有资源并初始化应用状态
  • 温启动 - 应用进程在内存中,但 Activity 需要重新创建
  • 热启动 - 应用和 Activity 都在内存中,只需将 Activity 带回前台

Views 监控

View 代表用户在应用中看到的唯一屏幕。每个 View 开始时会创建一个新的 RUM 事件,并在 View 的整个生命周期内更新该事件。
View 会收集其生命周期内发生的所有资源、操作、错误和长任务的相关信息。

自动追踪策略

在 Android 中,Activities 和 Fragments 被视为 View。SDK 提供以下自动追踪策略:
您也可以通过手动调用 RumMonitor.startView()RumMonitor.stopView() 来自定义 View 追踪。

默认属性

RUM SDK 为所有事件自动附加默认属性,帮助您了解用户设备、网络状态和应用上下文。
以下属性与设备相关,在所有 RUM 事件中自动收集:
以下网络相关属性在所有 RUM 事件中自动收集:
以下操作系统相关属性在所有 RUM 事件中自动收集:
RUM 可以从用户的 IP 地址推断出地理位置信息:
地理位置信息由 Flashduty 后端根据客户端 IP 地址推断,不会在 Android 客户端收集精确的 GPS 位置,也不需要定位权限。
您可以通过 setUser() API 设置用户信息,这些信息会被附加到所有 RUM 事件中:
您还可以添加自定义用户属性,例如 usr.planusr.role 等。

事件特定属性

除了默认属性外,不同类型的 RUM 事件还会收集特定的指标和属性。
View 事件包含以下特定属性和性能指标:
Resource 事件表示应用中的网络请求。收集的属性包括:
错误事件收集异常和崩溃信息,错误消息和堆栈跟踪会被自动包含:网络错误:网络错误包含有关失败的 HTTP 请求的信息,并收集以下属性:
Action 代表用户与应用的交互(例如点击、滑动、滚动)。计时属性:基本属性:

数据存储与安全

本地存储机制

在数据上传到 Flashduty 之前,会以明文形式存储在应用的缓存目录中。 存储位置:
安全保护:
  • 缓存文件夹受 Android 应用沙箱保护
  • 在大多数设备上,其他应用无法读取这些数据
安全注意事项:
  • 如果移动设备已 root 或有人篡改 Linux 内核,存储的数据可能会变得可读
  • 敏感数据不应包含在 RUM 事件中,或者应在发送前通过 EventMapper 进行混淆或过滤

数据上传机制

Android RUM SDK 采用批处理方式上传事件,在保证数据传输的同时最小化对用户体验的影响。

批处理流程

1

事件收集

SDK 将未压缩的事件追加到批次文件中,使用 TLV 编码格式(Tag-Length-Value)。
2

批次优化

当批次关闭时:
  • 读取批次文件并提取事件
  • 对 RUM 事件进行去重优化(删除冗余的 View 事件)
  • 构建特定于每个追踪的有效载荷
3

压缩上传

使用 gzip 压缩数据,减少网络流量和上传时间。

上传触发条件

批次在以下任一情况下会被上传:

上传策略

智能上传机制:
  • 网络优化 - 优先通过 WiFi 上传,移动网络也支持
  • 电量管理 - 确保不会过度消耗设备电量
  • 失败重试 - 上传失败时批次会保留在本地,直到成功发送
  • 数据压缩 - 使用 gzip 压缩,减少网络流量

Direct Boot 模式支持

如果您的应用支持 Direct Boot 模式(在设备解锁前启动),请注意:
在设备解锁前捕获的数据将不会被记录,因为此时凭据加密存储尚不可用。
Flashduty SDK 会在设备解锁后开始收集数据。如果您需要在 Direct Boot 模式下收集数据,请确保使用设备加密存储而非凭据加密存储。

相关文档

SDK 接入

了解如何集成 Android SDK

高级配置

配置自定义属性、采样和事件过滤

兼容性

了解 SDK 兼容性要求