【问题标题】:How to measure the layout performance in android?如何衡量android中的布局性能?
【发布时间】:2021-09-23 23:21:41
【问题描述】:

我一直在我的 android 应用程序的一个屏幕中使用嵌套视图。现在我已经删除了所有这些并使用ConstraintLayout 来提高性能,我想测量性能提高了多少。有没有办法衡量性能提升?

【问题讨论】:

    标签: android android-layout android-view android-constraintlayout android-rendering


    【解决方案1】:

    最简单的方法可能是使用分析器使用旧代码和新代码来分析应用程序,并查看两个版本在 onLayout 中花费了多少时间。

    预计差异不会像您预期的那么显着。现实情况是你的主线程大部分时间都是空闲的,提高布局效率实际上很少是影响应用程序性能的重要因素。我永远不会为此重构嵌套设计,如果使用约束布局为我的视图提供更清晰的 XML,我会重构嵌套设计。另请记住,根据您使用的功能,约束视图可能不会更快。例如,布局嵌套线性布局比计算多个内部视图上的一大堆约束要快。

    【讨论】:

    • 谢谢,@gabe-sechan。你认为我应该包括在onMeasure 中花费的时间吗?
    • @Vignesh 嵌套视图的真正问题实际上是 onDraw。因为它的调用频率远远高于其他两个。如果您要看到差异,那就是总绘制时间。但实际上它不太可能在现代硬件上看到很大的不同。当Android的绘图不太复杂并且主要阻止对图形内存的调用时,提出了很多关于这些东西的建议。这并不意味着不要使用 ConstraintView——它可能很棒。这意味着这样的重构是为了代码/设计的清晰性,而不是为了性能。
    • 谢谢@GabeSechan,你是对的。重构后,我失去了性能。无论如何,我不会恢复它,因为损失可以忽略不计(屏幕呈现像以前一样,没有明显的延迟/滞后)而且我的代码看起来更干净。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-11
    • 1970-01-01
    • 2011-01-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多