【发布时间】:2021-01-20 21:38:17
【问题描述】:
我在 Jetpack Compose 中开发了一个相当复杂的键盘布局。最初,布局工作正常,按下按键时动画运行非常流畅。不幸的是,由于事件的一些重新组合后,动画和一切都变得非常缓慢和滞后。 我尝试对 Jave 方法调用进行采样,但只能看到某些函数比平时花费的时间要长很多。
编辑:
我已经能够隔离问题。我发现性能问题只出现在多模块项目中。当我将 完全相同 撰写代码放在根 app 模块中时,问题就消失了。
我创建了一个重现该问题的项目:
如果你想在多模块项目中重现问题,你必须多次在类别之间切换,然后一切都变得非常滞后
注意:我知道 Jetpack Compose 仍处于 alpha 阶段,这个问题可能是 Jetpack Compose 中的一个错误。但我想确保这不是我的代码的错误或 Compose 的一般限制
【问题讨论】:
-
该库声明它智能地“重组”,仅更新已更改的内容。我会检查您是否没有在可变状态下运行一些无限循环。要检测屏幕“卡顿”,请使用此处解释的正常机制 - developer.android.com/topic/performance/vitals/render
-
如果您没有正确定义尺寸,xml 中的某些项目可能需要比平时更长的时间。对我来说,我曾经使用过 app:layout_constraintDimensionRatio="1:1" 导致应用程序滞后,因为它存在错误并且它正在重复计算尺寸。所以也要仔细检查xml文件
-
@Yannick 你能检查我的答案吗?如果您有任何反馈,请告诉我。谢谢
-
@Abdulrahman Abdelkader OP 询问 Jetpack Compose,这里没有 xml 内容。
标签: android android-jetpack-compose