【问题标题】:Systrace custom events not showing in release build of appSystrace 自定义事件未显示在应用程序的发布版本中
【发布时间】:2021-03-31 06:24:30
【问题描述】:

我正在使用 systrace/perfetto 来捕获跟踪。我正在按照以下方式从我的代码中添加自定义事件 - https://developer.android.com/topic/performance/tracing/custom-events

我可以在调试版本中看到自定义事件,但在发布版本中看不到。

无论如何我可以在我的应用程序的发布版本中看到自定义事件

【问题讨论】:

    标签: android performance systrace perfetto


    【解决方案1】:

    从 Android API 29 (Q) 开始,清单中有一个新的 profileable 标志,可以为不可调试的构建启用一些分析数据(例如 systrace 自定义事件)。

    【讨论】:

      【解决方案2】:

      我认为让您的发布版本可调试就可以了。在您的应用模块 build.gradle 文件中添加以下内容

        buildTypes {
          release {
              debuggable true
          }
      }
      

      【讨论】:

      • 当我执行debuggable true 时,leakcanary 和严格模式也被启用(像这样包装 - if (BuildConfig.DEBUG) {})。由于我正在进行性能测试,我不希望这些影响应用程序的性能
      • 您有什么理由希望使用自定义事件而不是调试变体来测试您的发布变体?
      • 在我的调试变体中,我启用了严格模式和泄漏卡纳利。我想避免这两个,因为它会影响性能
      • tracing 用于性能测试,如果您不希望在使用 trace 进行测试时严格模式和泄漏 Canary 干扰,您可以在进行跟踪时禁用它们。
      【解决方案3】:

      您是否在捕获跟踪时添加了应用程序的包名称。 您可以通过 -a 标记指定它。 要在发布版本中查看自定义事件,必须添加包名称。

      例如:

      python systrace.py -o trace_file.html -a package_name sched freq idle am wm gfx view binder_driver hal dalvik camera input res
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2022-07-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-02-13
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多