是否可以记录由 Compose 生成/由我的 Android 应用程序显示的帧?

问题描述 投票:0回答:1

使用系统跟踪时,我们可以看到创建一帧花费了多长时间。是否也可以以某种方式记录我的应用程序绘制的所有帧(帧的内容/如屏幕截图)以及系统跟踪?将使“导航”系统跟踪变得更容易。

此外,我想用它来检查我的可组合项是否从第一帧开始绘制我期望的内容,或者它是否可能错误地绘制了第一帧并开始在第二帧上按预期绘制。作为一个人,我可能不会注意到这一点,但我想检查一下以用于学习目的。

android android-jetpack-compose trace
1个回答
0
投票

这是一个很好的问题!不幸的是,不可能记录应用程序绘制的所有帧以及系统跟踪。系统跟踪旨在捕获性能和延迟信息,而不是图形内容。

但是,还有其他方法可以实现您的目标:

  1. Android 调试桥 (ADB):使用
    adb shell screencap
    命令定期捕获应用程序的屏幕截图。您可以使用脚本或工具(如
    adb shell screenshot2
    adb-screencap
    )自动化此过程。
  2. 图形调试:通过设置
    DEBUG_OVERDRAW
    属性或使用 Android Studio 中的
    Debug GPU Overdraw
    工具在应用程序中启用图形调试。这将帮助您可视化渲染过程并识别潜在问题。
  3. 可组合可视化工具:利用Android Studio 布局检查器Jetpack Compose 的内置调试工具等工具来检查和可视化可组合项的布局和渲染。
  4. 自定义日志记录和可视化:在应用程序中实现自定义日志记录,以跟踪渲染过程并使用GraphVizGnuplot等工具可视化输出。

关于第二个问题,要验证您的可组合项是否从第一帧正确绘制,您可以:

  1. 使用调试器:在可组合项的代码中设置断点并逐步执行渲染过程,以确保其行为符合预期。
  2. 添加日志记录语句:在可组合项代码的关键点插入日志记录语句以跟踪其执行并验证输出。
  3. 视觉检查:通过在设备或模拟器上运行应用程序并验证视觉输出来手动检查渲染输出。

通过结合这些方法,您将能够更深入地了解应用程序的渲染过程,并最有可能识别潜在的问题。

如果您希望我详细说明我的任何建议,请告诉我。

© www.soinside.com 2019 - 2024. All rights reserved.