gpt4 book ai didi

android - 性能 : ViewGroup with Children VS. 自定义绘制 View

转载 作者:太空宇宙 更新时间:2023-11-03 10:21:18 26 4
gpt4 key购买 nike

我正在开发一个包含大量自定义 View 的应用程序,但遇到了其中一个非常复杂的性能问题。他们用于测量和绘图的时间太长(>= 30ms 典型值)。提供更多详细信息:这是一个自定义 ViewGroup(扩展 RelativeLayout),带有自定义 View (虽然扩展了 RelativeLayout)作为其子项。

所以我突然想到什么可能是摆脱这种性能问题的更好/更快的方法:优化子项和布局或切换到完全自定义的绘制 View (线条、矩形和类似的东西) ?

你们中有人有这方面的经验吗?或者甚至有人做了一些基准测试并愿意分享它们?

最佳答案

简单的方法是致力于简化和扁平化当前的 View 层次结构,也许您可​​以使测量和绘图过程更便宜(或至少体面)。你没有发布布局,所以没有什么具体要说的,我看到你在 RelativeLayouts 中提到了 RelativeLayouts,也许你可以删除一个并移动 View 向上一层(即使以添加其他辅助 View 为代价),每一层都很重要(尤其是嵌套 RelativeLayouts)。您可能已经知道,布局中的 mergeinclude 标签可能非常有用。

标准 SDK 中的

RelativeLayout 是作为通用小部件构建的,因此它很可能无法实现自定义设计布局的性能。让您当前的布局扩展 RelativeLayout 以扩展 ViewGroup 并手动实现子项的测量和布局会更有意义,特别是因为您可能知道您的用例场景应用程序(例如 RelativeLayout 总是需要处理它可能存在的所有大小限制情况,另一方面,如果您知道自定义 View 将具有一定的大小限制,那么您的自定义布局可以更快地处理这个问题尺寸)。

完全自定义的绘制 View 相关,它是一个选项,但它取决于布局的复杂性。

Or even some done some benchmarks and is willing to share them?

我看不出各种 View 基准(很可能不适用于您的特定情况)有何帮助。

关于android - 性能 : ViewGroup with Children VS. 自定义绘制 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20656876/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com