使用 JetPack Compose 制作的应用挂起超出预期

App made with JetPack Compose is hanging beyond expectation

我是 JetPack Compose 的新手。我正在学习 Compose 并且正在关注 https://developer.android.com/jetpack/compose/tutorial


但是当我 运行 我的 android 设备中的应用程序时,该应用程序非常慢。 像扩展长消息和更改消息颜色这样简单的事情花费了很多时间。

我用谷歌搜索了这个问题,发现:

  1. https://www.reddit.com/r/androiddev/comments/oatiur/why_simple_app_with_jetpack_compose_is_5x_times/
  2. https://github.com/android/compose-samples/issues/21
  3. https://jetc.dev/slack/2021-03-14-why-so-slow.html
  4. Jetpack Compose Performance Issue that only occurs in multi module project


但其中 none 对我有帮助。

如有不明白之处,请在评论中指出。

我也经历过同样的事情。当前发生的事情是:-

1.) 应用启动有点慢
2.) 应用程序在启动时出现故障

好消息是:-

1.) 故障仅在您 运行 动画的前几次出现,
2.) 在你打破其中一个元素后,故障似乎从每个元素中消失了。

坏消息当然是,您必须在每次启动时重复上述步骤。我听说 运行 使用生产版本而不是调试版本可以显着提高性能。到目前为止,您无能为力。它只会随着 Compose 的发展而中断。您也可以查看官方的 Compose Samples。它们和您的应用程序一样故障。

此时你真正能做的就是等待。

根据以下评论进行编辑:-

1.) 在你打破其中一个元素后,故障似乎从每个元素中消失了。,我的意思是如果你有很多动画内容,比如可能是两个 LazyColumn 和其他一些,然后在来回滑动该列几次(将其插入)后,其他列以及动画内容的延迟就会消失。 Element 表示屏幕的元素,因此每个 LazyColumn 都是元素。

2.) 要获得生产版本,您需要做的就是单击工作室屏幕左边缘的 release 选项卡,然后单击 select release从下拉列表而不是 debug。 'Production' 被我替换为 'release',但你看到的是一回事。