0

我使用 Android Studio Profiler(记录的系统跟踪)检查了我的 UI,得到了以下结果: 在此处输入图像描述 正如您在此处看到的,当我打开我的片段时,加载一帧需要 28 毫秒。我们还可以看到,几乎所有的时间都被遍历和测量所占用。我试图重构我的 xml,现在它看起来像:

<MotionLayout>
    <SwiperefreshLayout>
        <NestedScrollView>
            <LinearLayout>
                <include
                 layout="cardView1">
                <include
                 layout="cardView2">
                //..........
                <include
                 layout="cardVie7">
            <LinearLayout>
        <NestedScrollView>
    <SwipeRefreshLayout>
<MotionLayout>

它只是一个复杂的 UI,里面有很多嵌套的卡片,里面可以有 recycleview 和其他内容。如您所见,在我重构之后,帧时间仍然存在一些问题。有没有办法提高我的 UI 性能,或者至少可以获得有关问题的更详细信息以及为什么绘制 UI 需要这么长时间?

4

2 回答 2

1

添加自定义 Trace 事件并分析应用程序后,我发现 recyclerView 项目膨胀几乎占用了所有帧时间。使用DiffUtilRecyclerView 异步加载解决了这个问题

于 2021-01-11T14:05:26.580 回答
0

首先,MotionLayout 看起来没有必要。此外,您可以使用 RecyclerView 来显示卡片。

于 2021-01-03T01:01:17.687 回答