状态机
状态机
该库将屏幕的渲染管道建模为以下状态机。此状态机决定了库对“世界观”的感知,从而影响 API 的决策。
在此处编辑。
根据上面的状态机,你可以看到:
- 状态机从
Started
状态开始。 - 该库引入了“渲染过程”的概念。一个屏幕可能会被多次渲染。例如,它可能会先显示一个加载指示器,然后只渲染屏幕的前半部分,最后渲染整个屏幕。该库将这些增量步骤建模为不同的“渲染过程”。
- 这些渲染过程可能是
interactive
(可交互的)也可能不是。一个interactive
的渲染过程意味着用户在此之后可以与屏幕进行交互(例如,从缓存或网络数据渲染);一个非交互的渲染过程意味着用户不能(例如,加载屏幕,或仅部分渲染的屏幕)。 - 该库支持多个增量渲染过程,并且可以循环遍历无限个渲染过程。
- 对于每个这样的渲染过程完成,该库都会生成一个
RenderPassReport
。 - 此外,如果屏幕在任何渲染过程完成且
interactive
设置为true
之前卸载,该库也会生成一个RenderPassReport
。- 这可以作为用户停止等待屏幕变为可交互状态并决定退出的信号。这可以用作用户感到沮丧的信号。
- 对应于中止场景的此报告将携带一个
timeToAbortMillis
属性,而不是常规的timeToRenderMillis
。
虽然你不需要在生产环境中使用此钩子,但你可以通过 useProfilerState
钩子监控库的内部状态转换(用于调试目的)。你会注意到与状态图中描述的类似的状态转换。