Firebase:Jetpack Compose 如何像 Activity 和 Fragment 一样测量屏幕渲染时间

4

我正在尝试在Firebase中进行屏幕呈现。我只能看到Firebase屏幕呈现中的主要活动,但无法看到Jetpack Compose屏幕。有没有办法显示JetPack Compose屏幕?它应该反映在Firebase屏幕呈现部分。

在Jetpack Compose中是否有任何方法可以在Firebase性能选项卡中显示屏幕呈现。它仅支持Activity和Fragment,我该如何处理Jetpack Compose。

这里我添加了文档中的说明:

屏幕呈现跟踪是如何生成的?

每个屏幕呈现跟踪都由您应用程序中视图元素的名称来标识。性能监视客户端为您应用程序使用的每个Activity或Fragment创建屏幕呈现跟踪。

每个屏幕呈现跟踪执行以下操作:

当对象在屏幕上可见时,每个Activity和Fragment类启动。对于活动,OnActivityStarted(),对于片段,OnFragmentResume()。

当对象不再在屏幕上可见时,每个Activity和Fragment类停止。对于活动,OnActivityStopped(),对于片段,OnFragmentPaused()。

Jetpack Compose中如何实现呢?


请编辑您的问题并按照您的期望添加代码。 - Alex Mamo
你找到解决办法了吗? - tasjapr
1个回答

0
你可以将屏幕追踪作为一个DisposableEffect来启动。
@Composable
fun LaunchTracing(route: String) {
    val activity = LocalContext.current as Activity
    DisposableEffect(key1 = route) {
        val trace = Trace.create(route).apply { start() }
        val recorder = FrameMetricsRecorder(activity).apply { start() }
        onDispose {
            val metrics = recorder.stop()
            if (metrics.isAvailable)
                ScreenTraceUtil.addFrameCounters(trace, metrics.get())
            else
                Log.e("TRACING", "Unable to record trace for '$route'")
            trace.stop()
        }
    }
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接