Jetpack Compose 开箱即用即可提供卓越的性能。使用最佳实践配置您的应用,以避免常见陷阱并优化 Compose 应用的性能。
关键概念
以下是一些 Compose 性能的关键概念
- 阶段: 了解组合、布局和绘制阶段对于优化 Compose 更新 UI 的方式至关重要。
- 基线配置文件: 这些配置文件预编译必要的代码,从而实现更快的应用启动和更流畅的交互。
- 稳定性: 提高应用的稳定性,以便更有效地跳过不必要的重新组合,从而提高性能。
正确配置您的应用
如果您的应用性能不佳,则可能存在配置问题。第一步是检查以下配置选项
- 使用 R8 以发布模式构建:尝试以发布模式运行您的应用。调试模式对于发现许多问题很有用,但它会带来性能成本,并且可能难以发现其他问题。您还应启用使用 R8 编译器进行优化和缩减,以确保发布版本的高性能和效率。
- 使用基线配置文件:基线配置文件通过预编译关键用户旅程的代码来提高性能。Compose 包含一个默认配置文件,但理想情况下,您也应该创建一个特定于应用的配置文件。在常规 Android 性能文档中了解有关基线配置文件的更多信息
工具
熟悉可帮助您衡量和分析 Compose 应用性能的工具套件。
最佳实践
使用 Compose 开发应用时,请牢记以下最佳实践
- 避免昂贵的计算: 使用
remember
缓存昂贵计算的结果。 - 帮助惰性布局: 使用
key
参数为惰性布局提供稳定的键,以最大程度地减少不必要的重新组合。 - 限制不必要的重新组合: 使用
derivedStateOf
在快速更改状态时限制重新组合。 - 延迟状态读取: 通过将状态读取包装在 lambda 函数中,尽可能延迟状态读取。
- 使用 lambda 修饰符更改状态: 使用基于 lambda 的修饰符,例如
Modifier.offset { ... }
,用于频繁更改状态变量。 - 避免向后写入: 切勿写入已在可组合项中读取的状态。
有关更多详细信息,请参阅最佳实践指南。
视图
如果您使用的是视图而不是 Compose,请参阅专用的提高布局性能指南。