众所周知,性能回归很难重现,这使得回归成为移动开发者的巨大瓶颈。虽然 ANR 率等信号可以指示生产环境中出现了哪些问题,但要精确定位导致性能问题的特定代码行,过去需要进行详尽的手动重现或推测性试错实验。
Datadog 与 Google 合作,通过将 ProfilingManager API(可在 Android 15 及更高版本的设备上使用)集成到其 Real User Monitoring (RUM) 和 Continuous Profiling 平台中,来缓解这种令人沮丧的情况。这种集成改变了调试工作流程,使开发者能够超越表面症状,检测性能瓶颈背后的原因。
根据 Datadog 2026 年 6 月的内部数据,通过利用此系统级 API,Datadog 现在每周在全球范围内处理数百万个生产环境配置文件。它可为工程团队提供对实际性能的新水平的可见性,同时保持较低的运行时开销,以实现生产规模的性能监控。
ProfilingManager 的影响
ProfilingManager 是 Android 15 中引入的一项系统服务,可让应用直接从生产环境中以编程方式收集性能数据,例如调用堆栈样本、字段轨迹和内存堆转储。此功能将工程范式从被动的手动重现转变为主动的现场分析。
例如,某款 Google 通信应用使用现场轨迹来调查其在更新、更强大的硬件上的冷启动时间为何更长。通过深入分析实地收集的轨迹并比较不同设备类型之间的轨迹,该工程师发现了一个隐藏的调度问题:在应用启动期间,一个后台文字转语音服务被不必要地预热了。轨迹显示,此后台进程独占了设备性能最高的大 CPU 核心,导致应用的主线程在预热期间进入休眠状态。
解决 Android 代码级可见性难题
在实现 ProfilingManager 之前,Datadog 的实时用户监控 (RUM) 侧重于高级别的应用运行状况和会话级遥测,以评估用户体验。工程团队可以监控 Android 性能信号,例如初始显示时间、ANR 率、CPU 负载和冻结帧。这些数据洞见扩展到了精细的互动,例如网络延迟、触控事件和主线程挂起。不过,虽然这些数据有效地突出了现场出现的性能瓶颈,但并未提供明确的途径来确定这些故障的根本原因。
为了解决这个问题,Datadog 需要一个能够直接从生产环境中的设备捕获 Android 轨迹的分析引擎,并且对性能的影响极小。在评估了替代方法(例如使用 Android Debug API 编写自己的轨迹处理器)后,该团队选择了 ProfilingManager,因为它是他们评估的分析选项中性能最高的解决方案,并且可将采样决策开销分流到操作系统。
ProfilingManager 支持各种收集方法,包括 CPU 轨迹、调用堆栈采样、通过 Java 堆转储和原生堆分析报告进行内存分析。开发者可以使用它来分析正式版 build,将轨迹文件上传到外部存储空间,并在 Perfetto 轨迹分析器界面中查看这些文件。作为 SaaS 提供商,Datadog 会上传、直观呈现并分析通过其 SDK 收集的这些分析报告,从而提供统一的应用健康状况视图。
通过在统一的可观测性 API 中集中高保真遥测数据,ProfilingManager 使 Datadog 及其客户能够通过以下关键技术优势主动监控、调查和修复复杂的 Android 性能回归问题:
- 精细的会话诊断: ProfilingManager 通过提供直接的操作系统级轨迹数据来增强可调试性,从而克服了自定义日志记录与系统服务之间常见的可见性和对齐问题。如需深入了解,开发者可以从 Datadog 下载这些轨迹,以便在 Perfetto 界面等可视化工具中进一步调查。
- 自动遥测触发器: 通过利用原生系统事件在关键优化点启动轨迹记录,Datadog 减少了构建自定义收集逻辑的需求。虽然初始推出阶段侧重于 APP_FULLY_DRAWN 信号,但我们已计划扩展此可观测性,以纳入 ANR、OOM 和 COLD_START 触发器。
- 主动跟踪快照: 通过直接与系统级 Perfetto 服务(已跟踪)交互,ProfilingManager 采用主动后台记录模型,旨在捕获不可预测的问题。这可确保开发者获得性能异常之前发生的事件的精确可视化视图,从而提供比手动插桩所能提供的更深入的洞见。
- 大规模检测瓶颈: Datadog 能够综合分析 Datadog 全球客户群的遥测数据,从而发现仅在独特的硬件配置和可变的网络环境下才会出现的回归。
- 系统强制执行的资源稳定性: 该 API 利用抽样轨迹收集来确保性能和用户体验影响保持在可忽略的范围内。
- 设备端数据控制: ProfilingManager 会在将配置文件交付给应用之前,过滤掉设备上其他进程中的无关信息。这样可以最大限度地减小文件大小,并确保仅提供与应用进程相关的数据。
处理数百万个每周个人资料,以优化现实世界中的应用
将系统级分析 API 集成到全局监控 SDK 中需要解决基础设施方面的难题。由于 ProfilingManager 会生成非常详细的性能轨迹,因此 Datadog 工程团队必须构建一个能够在服务器端大规模解析和分析这些配置的流水线。除了收集性能剖析文件之外,Datadog 还强调了平衡抽样频率与收集足够数据的重要性,以便生成有关应用的富有意义的分析洞见。Datadog 依赖 ProfilingManager 的内置速率限制功能作为关键的稳定性保护措施,防止过多的遥测请求使设备不堪重负。
该团队对 Datadog 自己的原生 Android 应用和许多早期采用者的应用进行了数月的分析,收集了数百万个配置文件,以确保快速、无错误地发布,并改进其性能检测算法。如今,生产集成可无缝扩展到各种 Android 设备。
总结
通过集成 Android 的 ProfilingManager API,Datadog 成功弥合了后端系统与移动客户端应用之间的可见性差距,让客户能够全面了解应用性能。Datadog 每周处理数百万个配置文件,设备开销极低,可为 Android 开发者提供必要的代码级数据分析,以便他们立即诊断复杂的性能 bug,从而帮助开发者构建更流畅的应用并改善其应用在 Play 商店中的性能信号。如需将 ProfilingManager API 直接纳入您的性能可观测性框架,请参阅我们的文档。
未来,Datadog 计划将 Android 分析数据作为编码代理的一流输入,以便自主解决性能瓶颈,从而在检测和补救之间形成反馈环。Datadog 正在努力让开发者能够广泛使用 Android 分析功能。
如需开始使用由 ProfilingManager 提供支持的 Datadog 真实用户监控功能,请访问 Datadog 移动真实用户监控。
继续阅读
-
案例研究
Karrot 是一款由社区驱动的超本地化点对点交易应用,可让用户与其他经过验证的用户买卖和交易商品。自 2015 年在韩国推出以来,该平台已扩展到全球市场,累计注册用户超过 4,300 万。
Thomas Ezan, Tracy Agyemang • 阅读用时:2 分钟
-
方法指南
虽然应用性能通常与流畅的界面和快速的启动时间相关,但内存是构建这些可见指标的无声基础。众所周知,我们正经历着一场变革,设备内存的重要性比以往任何时候都更高。
Alice Yuan, Ajesh Pai, Fung Lam • 阅读用时:10 分钟
-
案例研究
最近,在 Wear OS 上,FotMob 的安装受众群体在单日内增加了 5 年来最多的人数,达到日平均增幅的 2-3 倍。秘诀是什么?简单的跨设备安装流程,可帮助用户直接通过手机发现 Wear OS 应用。
Garan Jenkin • 阅读用时:3 分钟
随时了解最新动态
每周通过电子邮件接收最新的 Android 开发洞见。