Compose 何时完成一帧?

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

假设 60 fps 超过 1000 毫秒,则每帧需要 16.6 毫秒。现在假设 Compose 可以在 2 毫秒内渲染我的代码,我们称之为

frame_A
。 5 毫秒内一切都处于空闲状态。然后
LaunchedEffect
改变某些状态,发生重组。重组又需要 2 毫秒,我们称之为
frame_B

因此

frame_A
frame_B
都是在一帧的 16.6 毫秒时间窗口内创建的。是只绘制
frame_A
还是只绘制
frame_B
或者两者都绘制?

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

在这种情况下,

frame_A
frame_B
都可以在单帧的 16.6 毫秒内绘制。

可能性:

  1. Android 系统:Android 管理一个用于绘制 UI 元素的队列,因此当您的 compose UI 请求重新组合时,系统只需添加到队列即可。
  2. Compose 框架:Compose 框架中的重组可能不会阻塞前一帧的渲染,最新的 UI 可以在下一帧中更新。

总体来说,两者都会抽到。

最坏的情况

优先级:Android 可能会优先绘制最新的 UI 状态(在您的情况下为

frame_B
)。在这种情况下,
frame_A
可能会被跳过。

了解更多关于重组的信息。

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