众所周知,性能下降问题很难重现,因此成为移动开发者面临的一大瓶颈。虽然 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 调试 API 编写自己的跟踪处理器)后,该团队选择了 ProfilingManager,因为它是他们评估的性能分析选项中性能最高的解决方案,并且可以将采样决策开销分流到操作系统。
ProfilingManager 支持多种收集方法,包括 CPU 轨迹、调用堆栈采样、通过 Java 堆转储和原生堆分析报告进行内存分析。它使开发者能够对正式版 build 进行性能分析,将跟踪文件上传到外部存储空间,并在 Perfetto 跟踪分析器界面中查看这些文件。作为 SaaS 提供商,Datadog 会上传、直观呈现和分析通过其 SDK 收集的这些性能剖析数据,从而提供应用运行状况的统一视图。
ProfilingManager 将高保真遥测数据集中在统一的 Observability API 中,使 Datadog 及其客户能够通过以下关键技术优势,主动监控、调查和修复复杂的 Android 性能回归问题:
- 精细的会话诊断: ProfilingManager 可提供直接的操作系统级跟踪数据,从而增强可调试性,克服了系统服务自定义日志记录常见的可见性和对齐问题。为了深入探究,开发者可以从 Datadog 下载这些跟踪记录,以便在 Perfetto 界面等可视化工具中进一步调查。
- 自动化遥测触发器: Datadog 利用原生系统事件在关键优化点启动跟踪记录,从而减少了构建自定义收集逻辑的需求。虽然初始发布侧重于 APP_FULLY_DRAWN 信号,但我们已计划扩展此可观测性,以涵盖 ANR、OOM 和 COLD_START 触发器。
- 主动跟踪快照: ProfilingManager 直接与系统级 Perfetto 服务 (traced) 交互,利用主动后台记录模型来捕获不可预测的问题。这可确保开发者能够精确直观地了解导致性能异常的事件,从而获得比手动插桩更深入的洞见。
- 大规模瓶颈检测: 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 分钟 -
案例研究Grab 是东南亚领先的超级应用,通过单一应用为八个国家/地区的数百万用户提供配送、出行和金融服务。
Ajesh Pai, Nguyen Van Minh, Tracy Agyemang • 阅读用时:5 分钟 -
案例研究该团队构建了一个 AI 原生界面代码库,其规模比原始实现缩小了 50%,同时将 AI 智能体执行时间缩短了 35%,工程师与智能体之间的交互减少了 32%,并将 token 成本降低了 33%。
Pavlo Stavytskyi, Rebecca Franks • 预计阅读时间:11 分钟
每周通过电子邮件接收最新的 Android 开发洞见。