SuperAPI AI 工具集

configuring-lazy-prefetch

编程与开发

查看项目

更新于 10-16 00:21

技能介绍

用途:该技能指导何时(且仅在必要时)调整 Jetpack Compose 惰性布局的预取缓存窗口,或实现嵌套预取,并用 Macrobenchmark 验证改动。惰性布局会预组合视口外的条目,Compose Foundation 1.9 引入 LazyLayoutCacheWindow 可配置 ahead/behind 范围;1.10 起预取组合默认可暂停,工作分散到多帧。多数应用仍依赖旧版单帧预取。

适用场景:高滚动速度下 FrameTimingMetric 丢帧且条目可跳过;条目内容重(大图、视频、嵌套网格、昂贵测量);希望保留短暂划过后回滑条目的组合;外层惰性布局内含内层惰性布局;开发者提到 LazyLayoutCacheWindow、NestedPrefetchScope、prefetch window、ahead extent、pausable composition。

不适用:条目轻量则保持默认;条目不可跳过时先修复稳定性;瓶颈在布局或绘制阶段时预取调优无效;错误阶段的状态读取需另行处理。

主要能力与用法:前提是 Compose Foundation 1.9+ 提供 LazyLayoutCacheWindow,其为 @ExperimentalFoundationApi 工厂 LazyLayoutCacheWindow(ahead: Dp, behind: Dp),通过 rememberLazyListState(cacheWindow = ...) 接入,并非 LazyColumn 等组件的参数,每个调用点需 @OptIn(ExperimentalFoundationApi::class);1.10+ 提供默认可暂停预取。流程为先确认版本、复核条目层级修复、用 Macrobenchmark 测基线、仅在测量支持时构建 cacheWindow、对内层惰性布局实现 NestedPrefetchScope,再以相同旅程复测。aead/behind 用 Dp 表示。

限制与规则:无基线证明不得调整;不得与稳定性或 key 修复混在同一 PR;不得为保险而扩大窗口;建议先升级到 1.10+ 享用默认可暂停预取,并在加宽外层窗口前为含内层惰性布局的条目实现嵌套预取。需在真实设备、启用 R8 的 release 构建上测量 p95/p99 是否下降。

资料未提供的内容:具体收费、价格、依赖安装命令与完整脚手架步骤暂未提供。