假设 60 fps 超过 1000 毫秒,则每帧需要 16.6 毫秒。现在假设 Compose 可以在 2 毫秒内渲染我的代码,我们称之为
frame_A
。 5 毫秒内一切都处于空闲状态。然后 LaunchedEffect
改变某些状态,发生重组。重组又需要 2 毫秒,我们称之为 frame_B
。
因此
frame_A
和 frame_B
都是在一帧的 16.6 毫秒时间窗口内创建的。是只绘制 frame_A
还是只绘制 frame_B
或者两者都绘制?
在这种情况下,
frame_A
和frame_B
都可以在单帧的 16.6 毫秒内绘制。
可能性:
总体来说,两者都会抽到。
最坏的情况
优先级:Android 可能会优先绘制最新的 UI 状态(在您的情况下为
frame_B
)。在这种情况下,frame_A
可能会被跳过。
了解更多关于重组的信息。